注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

Mathematica 多项式运算  

2012-01-14 15:42:29|  分类: M&M |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.测试多项式
PolynomialQ[表达式]或者PolynomialQ[表达式,变量]
检验是否为多项式,是则返回True,否则为False
对于单变量的式子可以省略变量,而对于多变量式子则需要指定对那个变量的测试,例如:
输入:
f1 = x^2 + 3 x - 2;
f2 = x^2 y + Sin[y] x + 1;
PolynomialQ[f1]
PolynomialQ[f2]
PolynomialQ[f2, x]
PolynomialQ[f2, y]
输出:
True
True
True
False

2.提取多项式中的变量
Variables[多项式]将多项式中的变量提取出来并组成一个列表,还是以前面的两个函数为例子:
输入:
Variables[f1]
Variables[f2]
输出:
{x}
{x, y, Sin[y]}
注意第二个多项式中,对于非多项式项,会直接作为变量给出。

3.项的系数
Coefficient[多项式,项]列出多项式给定项的系数,Coefficient[多项式,项,n]则给出多项式中项的n次幂的系数
输入:
f1 = (3 x + 4 y)^6;
f2 = x^3 - 3 z^2 y x^2 + x y^2 - x^2 z^2 y^2 + x y z;
Coefficient[f1, x^2 y^4]
Coefficient[f2, x, 2]
输出:
34560
-3 y z^2 - y^2 z^2
CoefficientList[多项式,变量]则是给出该变量的各次幂的系数组成的列表
输入:
CoefficientList[f1, x]
CoefficientList[f2, z]
输出:
{4096 y^6, 18432 y^5, 34560 y^4, 34560 y^3, 19440 y^2, 5832 y, 729}
{x^3 + xy^2, x y, -3 x^2 y - x^2 y^2}
按照Mathematica的老规矩,使用升幂排列。

4.多项式求根
使用Roots[多项式方程,变量]或者NRoots[多项式方程,变量],后者使用的数值解。
输入:
f = x^4 + x^3 - 6 x^2 + 7 x - 3 == 0;
Roots[f, x]
NRoots[f, x]
输出:
x == 1/3 (-2 -
     16 (2/(169 - 3 Sqrt[1353]))^(1/3) - (1/2 (169 - 3 Sqrt[1353]))^(
     1/3)) ||
x == -(2/3) + 8/3 (1 + I Sqrt[3]) (2/(169 - 3 Sqrt[1353]))^(1/3) +
   1/6 (1 - I Sqrt[3]) (1/2 (169 - 3 Sqrt[1353]))^(1/3) ||
x == -(2/3) + 8/3 (1 - I Sqrt[3]) (2/(169 - 3 Sqrt[1353]))^(1/3) +
   1/6 (1 + I Sqrt[3]) (1/2 (169 - 3 Sqrt[1353]))^(1/3) || x == 1

x == -3.42408 || x == 0.712038\[VeryThinSpace]- 0.607577 I ||
 x == 0.712038\[VeryThinSpace]+ 0.607577 I || x == 1.
这里给出的解是使用逻辑运算符||表示的,如果要提取结果中具有某些特征的值,例如正根等。

5.多项式四则运算
加减法可以直接使用+和-:
输入:
f1 = (x + 2)^4;
f2 = x^6 - 2 x^5 + 4 x^4 - 7 x^3 + 2 x^2 + 3 x - 5;
f1 + f2 // Simplify
f1 - f2 // Simplify
输出:
11 + 35 x + 26 x^2 + x^3 + 5 x^4 - 2 x^5 + x^6
21 + 29 x + 22 x^2 + 15 x^3 - 3 x^4 + 2 x^5 - x^6
注意需要使用Simplify才能合并同类项,否则只是简单的加减
乘法也是类似的,这里就不啰嗦了
比较麻烦一点的是除法,由于多项式不一定能够“整除”,所以会有两个结果,一个是多项式商,另一个是多项式余数,分别使用
PolynomialQuotient[被除数多项式,除数多项式,变量],PolynomialRemainder[被除数多项式,除数多项式,变量]
输入:
q = PolynomialQuotient[f2, f1, x]
r = PolynomialRemainder[f2, f1, x]
输出:
60 - 10 x + x^2
-965 - 1757 x - 1134 x^2 - 279 x^3,可以验算一下结果:
输入:
f2 == q*f1 + r // Simplify
输出:
True

6.多项式的展开和因式分解
分别使用Expand[多项式]和Factor[多项式]
输入:
Expand[(x + 2)^4]
Factor[x^8 - 1]
输出:
16 + 32 x + 24 x^2 + 8 x^3 + x^4
(-1 + x) (1 + x) (1 + x^2) (1 + x^4)
Factor在整数环上进行分解,如果不能分解就保持不变。如果需要在复数范围内分解,可以使用GaussianIntegers->True显示
输入:
Factor[x^8 - 1, GaussianIntegers -> True]
输出:
(-1 + x) (-I + x) (I + x) (1 + x) (-I + x^2) (I + x^2)
Collect[多项式,变量]能够整理多项式,使其变为关于某个变量的多项式,而将其他变量作为常数项。
输入:
Collect[x^3 - 3 z^2 y x^2 + x y^2 - x^2 z^2 y^2 + x y z, x]
输出:
x^3 + x (y^2 + y z) + x^2 (-3 y z^2 - y^2 z^2)

7.最大公因式和最小公倍式
使用PolynomialGCD[p1,p2,...]和PolynomialLCM[p1,p2,...]
输入:
Product[(x - i)^i, {i, 1, 4}];
f2 = (x - 1)^3 (x - 2)^2 (x^2 - 7 x + 12);
PolynomialGCD[f1, f2]
PolynomialLCM[f1, f2]
输出:
(-4 + x) (-3 + x) (-2 + x)^2 (-1 + x)
(-2 + x)^2 (-1 + x)^3 (12 - 7 x + x^2) (-576 + 816 x - 460 x^2 + 129 x^3 - 18 x^4 + x^5)

8.有理函数
即分子和分母均为多项式的函数
Numerator[分式]和Denominator[分式]分别返回分式的分子和分母
Cancel[分式]实现约分
Apart[分式]把分式表示为部分分式
Together[分式]实现通分,并会自动约去公因式
ExpandNumerator[分式]和ExpandDenominator[分式]只展开分子/分母,ExpandAll[分式]则是都展开

 

  评论这张
 
阅读(4464)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016