Mathematica 教程 函数 »|教程 »| 更多关于 »

# 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]=
 PowerExpand[expr] expand out (ab)c and (ab)c in expr PowerExpand[expr,Assumptions->assum] expand out expr assuming assum

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]=
PowerExpand does the expansion.
 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]=