Next: , Previous: Rational Expression, Up: Algebra


2.4 Polynomials

— Operator: degree poly var

Returns the degree of polynomial or equation poly in variable var. — Operator: degree poly

Returns the total-degree, the degree of its highest degree monomial, of polynomial or equation poly.

          e26 : degree(a*x*x + b*y*x + c*y*y + d*x + e*y + f, y);
          
          e26: 2
          
          e27 : degree(a*x*x + b*y*x + c*y*y + d*x + e*y + f);
          
          e27: 3
— Operator: coeff poly var
— Operator: coeff poly var deg
— Operator: coeffs poly var

The command coeff is used to determine the coefficient of a certain power of a variable in a given polynomial. Here poly is a polynomial and var is a variable. If the optional third argument is omitted, then Jacal returns the coefficient of the variable var in poly. Otherwise it returns the coefficient of var^deg in poly. The function coeffs returns a list of all of the coefficients. For example,

          e14 : coeff((x + 2)^4, x, 3);
          
          e14: 8
          
          e15 : (x + 2)^4;
          
                               2      3    4
          e15: 16 + 32 x + 24 x  + 8 x  + x
          
          e16 : coeff((x + 2)^4, x);
          
          e16: 32
          
          e18 : coeffs((x + 2)^4, x);
          
          e18: [16, 32, 24, 8, 1]
— Operator: poly var vect
— Operator: poly var coeff1 ...

The function poly provides an inverse to the function coeffs, allowing one to recover a polynomial from its vector or list of coefficients.

          e15 : poly(y, [16, 32, 24, 8, 1]);
          
                               2      3    4
          e15: 16 + 32 y + 24 y  + 8 y  + y
          
          e16 : poly(y, 16, 32, 24, 8, 1);
          
                               2      3    4
          e16: 16 + 32 y + 24 y  + 8 y  + y
— Operator: poly eqn

The function poly returns the expression equal to 0 in equation eqn. Be aware that the sign and scaling of the returned polynomial will not necessarily match those in the equation creating eqn.

          e17 : 2*a = 4*c;
          
          e17: 0 = - a + 2 c
          
          e18 : poly(e17);
          
          e18: - a + 2 c
— Operator: content poly var

Returns a list of content and primitive part of a polynomial with respect to the variable. The content is the GCD of the coefficients of the polynomial in the variable. The primitive part is poly divided by the content.

          e24 : content(2*x*y+4*x^2*y^2,y);
          
                               2
          e24: [2 x, y + 2 x y ]
— Operator: divide dividend divisor var
— Operator: divide dividend divisor

The command divide treats divident and divisor as polynomials in the variable var and returns a pair ‘[quotient, remainder]’ such that dividend = divisor * quotient + remainder. If the third argument var is omitted Jacal will choose a variable on its own with respect to which it will do the division. In particular, of dividend and divisor are both numerical, one can safely omit the third argument.

          e5 : divide(x^2+y^2,x-7*y^2,x);
          
                      2    2       4
          e5: [x + 7 y , y  + 49 y ]
          
          e6 : divide(-7,3);
          
          e6: [-2, -1]
          
          e11 : divide(x^2+y^2+z^2,x+y+z);
          
                                 2              2
          e11: [- x - y + z, 2 x  + 2 x y + 2 y ]
          
          e14 : divide(x^2+y^2+z^2,x+y+z,y);
          
                                 2              2
          e14: [- x + y - z, 2 x  + 2 x z + 2 z ]
          
          e15 : divide(x^2+y^2+z^2,x+y+z,z);
          
                                 2              2
          e15: [- x - y + z, 2 x  + 2 x y + 2 y ]
— Command: mod poly1 eqn var
— Command: mod poly1 poly2 var
— Command: mod poly1 poly2

Returns poly1 reduced with respect to poly2 (or eqn) and var. If poly2 is univariate, the third argument is not needed. — Command: mod poly1 n

Returns poly1 with all the coefficients taken modulo n. — Command: mod poly1

Returns poly1 with all the coefficients taken modulo the current modulus.

If the modulus (n or the current modulus) is negative, then the results use symmetric representation.

          e19 : x^4+4 mod 3;
          
                    4
          e19: 1 + x
          
          e20 : x^4+4 mod x^2=2;
          
          e20: 8
          
          e22 : mod(x^3*a*7+x*8+34, -3);
          
                          3
          e22: 1 - x + a x
          
          e23 : mod(5,2);
          
          e23: 1
          
          e24 : mod(x^4+4,x^2=2,x);
          
          e24: 8
— Command: gcd poly_1 poly_2

The Jacal function gcd takes as arguments two polynomials with integer coefficients and returns a greatest common divisor of the two polynomials. This includes the case where the polynomials are integers.

          e1 : gcd(x^4-y^4,x^6+y^6);
          
               2    2
          e1: x  + y
          
          e2 : gcd(4,10);
          
          e2: 2
— Command: discriminant poly var

Here poly is a polynomial and var is a variable. This function returns the square of the product of the differences of the roots of the polynomial poly with respect to the variable var.

          e7 : discriminant(x^3 - 1, x);
          
          e7: -27
— Command: resultant poly_1 poly_2 var

The function resultant returns the resultant of the polynomials poly_1 and poly_2 with respect to the variable var.

          e2 : resultant(x^2 + a, x^3 + a, x);
          
               2    3
          e2: a  + a
— Command: equatecoeffs z1 z2 var

Returns the list of equations formed by equating each coefficient of variable var^n in z1 to the corresponding coefficient of var^n in z2. z1 and z2 can be polynomials or ratios of polynomials.