Structural Operations on Polynomials
| Expand[poly] | expand out products and powers |
| Factor[poly] | factor completely |
| FactorTerms[poly] | pull out any overall numerical factor |
| FactorTerms[poly,{x,y,...}] | pull out any overall factor that does not depend on x, y, ... |
| Collect[poly,x] | arrange a polynomial as a sum of powers of x |
| Collect[poly,{x,y,...}] | arrange a polynomial as a sum of powers of x, y, ... |
Structural operations on polynomials.
Here is a polynomial in one variable.
| Out[1]= |  |
|
Expand expands out products and powers, writing the polynomial as a simple sum of terms.
| Out[2]= |  |
|
Factor performs complete factoring of the polynomial.
| Out[3]= |  |
|
FactorTerms pulls out the overall numerical factor from t.
| Out[4]= |  |
|
There are several ways to write any polynomial. The functions
Expand,
FactorTerms and
Factor give three common ways.
Expand writes a polynomial as a simple sum of terms, with all products expanded out.
FactorTerms pulls out common factors from each term.
Factor does complete factoring, writing the polynomial as a product of terms, each of as low degree as possible.
When you have a polynomial in more than one variable, you can put the polynomial in different forms by essentially choosing different variables to be "dominant".
Collect[poly, x] takes a polynomial in several variables and rewrites it as a sum of terms containing different powers of the "dominant variable"
x.
Here is a polynomial in two variables.
| Out[5]= |  |
|
Collect reorganizes the polynomial so that x is the "dominant variable".
| Out[6]= |  |
|
If you specify a list of variables, Collect will effectively write the expression as a polynomial in these variables.
| Out[7]= |  |
|
| Expand[poly,patt] | expand out poly avoiding those parts which do not contain terms matching patt |
Controlling polynomial expansion.
This avoids expanding parts which do not contain x.
| Out[8]= |  |
|
This avoids expanding parts which do not contain objects matching b[_].
| Out[9]= |  |
|
Expanding powers and logarithms.
Mathematica does not automatically expand out expressions of the form
(a b)^c except when
c is an integer. In general it is only correct to do this expansion if
a and
b are positive reals. Nevertheless, the function
PowerExpand does the expansion, effectively assuming that
a and
b are indeed positive reals.
Mathematica does not automatically expand out this expression.
| Out[10]= |  |
|
PowerExpand does the expansion, effectively assuming that x and y are positive reals.
| Out[11]= |  |
|
Log is not automatically expanded out.
| Out[12]= |  |
|
| Out[13]= |  |
|
PowerExpand returns a result correct for the given assumptions.
| Out[14]= |  |
|
| Collect[poly,patt] | collect separately terms involving each object that matches patt |
| Collect[poly,patt,h] | apply h to each final coefficient obtained |
Ways of collecting terms.
Here is an expression involving various functions f.
| Out[15]= |  |
|
This collects terms that match f[_].
| Out[16]= |  |
|
This applies Factor to each coefficient obtained.
| Out[17]= |  |
|
| HornerForm[expr,x] | puts expr into Horner form with respect to x |
Horner form.
Horner form is a way of arranging a polynomial that allows numerical values to be computed more efficiently by minimizing the number of multiplications.
This gives the Horner form of a polynomial.
| Out[18]= |  |
|