多项式计算

  • 格式:pptx
  • 大小:152.92 KB
  • 文档页数:13

下载文档原格式

  / 13
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

n2
1
0
则在MATLAB中,p(x)表示为向量形式:
Biblioteka Baidu
an , an1, an2 ,, a1, a0
在MATLAB中创建多项式向量时,要注意三点: 1 多项式系数向量的顺序是从高到低。 2多项式系数向量包含0次项系数,所以其长度为多项式最高次数 加1 。 3 如果有的项没有,系数向量相应位置应用0补足。
例2 已知两个多项式:
a(x) 3x3 x2 6
b(x) x 2
计算两个多项式的乘积的导函数、商的导函数。
>> a=[3 1 0 -6]; >> b=[1 2]; >> polyder(a) ans =
92 0 >> c=polyder(a,b) c=
12 21 4 -6
这个语句等价于: >> d=conv(a,b) d=
polyvalm(p,x):矩阵多项式求值,其调用格式与polyval相同,但含 义不同。polyvalm函数要求x为方阵,以方阵为自变量求多项式的值。
设A为方阵,P代表多项式x3-5x2+8,那么polyvalm(P,A)的含义是: A*A*A-5*A*A+8*eye(size(A))
而polyval(P,A)的含义是: A.*A.*A-5*A.*A+8*ones(size(A))
5.2 多项式计算 多项式的表示 多项式的四则运算 多项式的求导 多项式的求值 多项式的求根
专题五 数据分析与多项式计算
1. 多项式的表示
在MATLAB中,n次多项式用一个长度为n+1的行向量表示。如有n次多项式:
p(x) a xn a xn1 a xn2 a x a
n
n1
3 -5 0 -4 10 3 >> f-g1 ans =
3 -5 0 -10 0 9 >> conv(f,g) ans=
9 0 -34 -6 -20 64 15 -18 >> [Q,r]=deconv(f,g) Q=
1.0000 -3.3333 6.5556 -16.5926 r=
0 0 0 0 107.6296 -43.7778 >> conv(g,Q)+r ans =
>> p=[-38.89,126.11,-3.42]; >> q=polyder(p) q=
-77.7800 126.1100 >> roots(q) ans =
例4 某工业过程需要对工件进行高温加热,热量由一个燃烧装置产生。该装置中共有两条输送管 道,一条管道按固定量提供燃料,一条管道注入空气。空气能够帮助燃烧,但是过高的空气流量 又会带走热量,降低加热效率。经过数十次空气流量实验,技术部门取得了相应的结果数据,并 通过曲线拟合得知空气流量与加热效率在[0, 2]范围内基本满足多项式p(x)=-38.89x2+126.11x3.42(x表示空气流量),请推算空气流量在[0, 2]范围内什么水平时,加热效率为最高。
思考:polyval(p,x)与polyvalm(p,x)有没有可能相等?如果有可 能,在什么情况下相等?
例3 以多项式x4+8x3-10为例,取一个2×2矩阵为自变量,分别用 polyval和polyvalm计算该多项式的值。
>> a=[1,8,0,0,-10]; >> x=[-1,1.2;2,-1.8]; >> y1=polyval(a,x) y1=
2. 多项式的四则运算 1 多项式的加减运算
多项式的加减运算非常简单,即相应向量相加减。 2 多项式乘法
conv(P1,P2):多项式相乘,其中,P1、P2是两个多项式系数向量。 3 多项式除法
[Q,r]=deconv(P1,P2):多项式相除,其中Q返回多项式P1除以P2的商式,r返 回P1除以P2的余式。这里,Q和r仍是多项式系数向量。deconv是conv的逆函 数,因此有下式成立。
3.0000 -5.0000 0 -7.0000 5.0000 6.0000 =f
3. 多项式的求导 在MATLAB中,多项式求导函数为polyder(),其调用格式为: 1 p=polyder(P):求多项式P的导函数。 2 p=polyder(P,Q):求P×Q的导函数。 (3)[p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母 存入q。
-17.0000 5.8976 70.0000 -46.1584
>> y2=polyvalm(a,x) y2=
-60.5840 50.6496 84.4160 -94.3504
5. 多项式的求根
在MATLAB中,多项式求根函数为roots(p),其中p为多项式的系数向量 。 例如,求多项式 x4+8x3-10的根。
P1=conv(Q,P2)+r
例1 设 f ( x ) 3 x 5 5 x 4 7 x 2 5 x 6,g(x) 3x2 5x 3 ,求
f(x)+g(x),f(x)-g(x),f(x)×g(x),f(x)/g(x)。
>> f=[3,-5,0,-7,5,6]; g=[3,5,-3]; g1=[0,0,0,g]; >> f+g1 ans =
3 7 2 -6 -12 >> polyder(d) ans =
12 21 4 -6
>> [p,q]=polyder(a,b)
p= 6 19 4 6
q= 14 4
思考:对于[p,q]=polyder(a,b),如 果换成先求商再求导,结果一样吗?
4. 多项式的求值
polyval(p,x):代数多项式求值,其中,p为多项式系数向量,x可 以 是标量、向量或矩阵。若x为标量,则求多项式在该点的值;若x 为向 量或矩阵,则对向量或矩阵中的每个元素求多项式的值。
>> a=[1,8,0,0,-10]; >> x=roots(a) x=
-8.0194 + 0.0000i 1.0344 + 0.0000i
-0.5075 + 0.9736i -0.5075 - 0.9736i
若已知多项式的全部根,则可以用poly函数建立起该多 项式,其调用格式为:
p=poly(x) 例如,在以上语句之后,继续输入命令: >> p=poly(x) p= 1.0000 8.0000 0.0000 0.0000 -10.0000 =a