【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

 

 

 

 

 

 

 

 

 

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