[MATLAB]多项式求导/加减/乘除
函数公式:
-
多项式的加减运算 多项式的加减运算非常简单,即相应向量相加减
-
多项式乘法 conv(p1,p2):多项式相乘函数.在这里,P1、P2是两个多项式系数向量 多项式除法 [Q,r]=deconv(P1,P2):多项式相除函数。 其中,Q返回多项式P1除以 P2的商式,r返回P1除以P2的 余式。这里,Q和r仍是多项式系数向量。 deconv是conv的逆函数,因此有 P1=conv(Q,P2)+r
>> f=[3,-5,0,-7,5,6];g=[3,5,-3];g1=[0,0,0,g]; >> f+g1 ans = 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.0000 107.6296 -43.7778 >> conv(g,Q)+r ans = 3 -5 0 -7 5 6
多项式的求导
polyder():多项式求导函数.
-
p=polyder(x):求多项式x的导函数.
-
p=polyder(P,Q):求P·Q的导函数. [p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。
例子:
>> a=[3 1 0 -6]; >> b=[1 2]; >> polyder(a) ans = 9 2 0 >> c=polyder(a,b) c = 12 21 4 -6 >> [p,q]=polyder(a,b) p = 6 19 4 6 q = 1 4 4
多项式的求值
-
polyval(p,x):代数多项式求值 * polyvalm(p,x):矩阵多项式求值
polyval(x) 其中p为多项式系数向量;x可以是标量、向量或矩阵。若x为标量,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求多项式的值。 polyvalm(p,x) 其调用格式与polyval相同,但含义不同。polyvalm函数要求x为方阵,以方阵为自变量求多项式的值。
例子:
>> a=[1,8,0,0,-10]; >> x=[-1,1.2;2,-1.8]; >> y1=polyval(a,x) y1 = -17.0000 5.8976 70.0000 -46.1584 >> y2=polyvalm(a,x) y2 = -60.5840 50.6496 84.4160 -94.3504 >>
多项式求根
roots(x):多项式求根函数. 其中,p为多项式的系数向量.
例子:
>> a=[1,8,0,0,-10]; >> x=roots(a) x = -8.0194 1.0344 -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
多项式应用
>> p=[-38.89,126.11,-3.42]; >> q=polyder(p) q = -77.7800 126.1100 >> roots(q) ans = 1.6214 >> polyval(p,1.6214) ans = 98.8154 >> x=0:0.1:2; >> plot(x,polyval(p,x),1.6214,98.8154,rp); >>