【MATLAB学习】多项式学习

  • 多项式(polynomial)

1.创建多项式

①系数矢量直接输入

例:创建多项式x³-2x²+3x+4

>> poly2sym([1 -2 3 4])
 
ans =
 
x^3 - 2*x^2 + 3*x + 4

(一共有四项,因此第一项的n-1,即3)

②特征多项式输入

(注意:n阶方阵的特征多项式系数矢量一定是n+1阶的,同时特征多项式系数的矢量的第一个元素必须为1

例:求矩阵[1 2 3;4 5 6;7 8 0]的多项式形式

>> a=[1 2 3;4 5 6;7 8 0];
>> p=poly(a)        (这个是将矩阵转化为特征多项式系数)

p =

    1.0000   -6.0000  -72.0000  -27.0000

>> pp=poly2sym(p)
 
pp =
 
x^3 - 6*x^2 - 72*x - 27

③由根矢量创建多项式

例:根据根矢量[-0.1 -0.2+0.4i -0.2-0.4i]创建多项式

> a=[-0.1 -0.2+0.4i,-0.2-0.4i];     (根矢量中,复数根应保留共轭复数成对)
>> p=poly(a)

p =

    1.0000    0.5000    0.2400    0.0200

>> pr=real(p)    (这一步的作用是含复数根的根矢量所创建的特征多项式系数中,有可能带有很小的虚部,此时用实部命令real把虚部滤除)

pr =

    1.0000    0.5000    0.2400    0.0200

>> ppr=poly2sym(pr)
 
ppr =
 
x^3 + x^2/2 + (6*x)/25 + 1/50

2.多项式运算

①求多项式的值

(这个就像我们曾经做数学题一样,当x=1,求y的值那样)

1)polyval函数

例:求多项式5x²+2x+1,在1,2,3处的值。

>> a=[5 2 1];
>> p=polyval(a,[1 2 3])

p =

     8    25    52

2)polyvalm函数

例:求多项式5x²+2x+1,在矩阵处的值。


>> a=[5 2 1];
>> p=polyval(a,[2 5;7 9])

p =

    25   136
   260   424

这两个函数,我们可以看出,polyvalm函数是计算矩阵,最终生成的是矩阵形式,而如果只单单求一两个数,这两个函数是一样的。

②求多项式的根

(roots函数)

例:求多项式x³-6x²+7x+10的根

>> a = [1 -6 7 10];
>> r = roots(a)

r =

   3.4013 + 0.9439i
   3.4013 - 0.9439i
  -0.8026 + 0.0000i

③求多项式的微积分

(polyder函数)

例:求多项式x³-6x²+7x+10的微分

>> a = [1 -6 7 10];
>> pd=polyder(a)

pd =

     3   -12     7

>> ppd=poly2sym(pd)
 
ppd =
 
3*x^2 - 12*x + 7

(polyint函数)

例:求多项式x³-6x²+7x+10的积分

>> a = [1 -6 7 10];
 
>> pi=polyint(a)

pi =

    0.2500   -2.0000    3.5000   10.0000         0

>> ppi=poly2sym(pi)
 
ppi =
 
x^4/4 - 2*x^3 + (7*x^2)/2 + 10*x

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章