-
多項式(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