[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);
>>
