快捷搜索: 王者荣耀 脱发

[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);
>>
经验分享 程序员 微信小程序 职场和发展