9 多項(xiàng)式的表達(dá)式及其操作
9.1 多項(xiàng)式的表達(dá)式和創(chuàng)建
1.多項(xiàng)式的表達(dá)式
MATLAB用一個行向量來表示多項(xiàng)式,此行向量就是將冪指數(shù)降序排列之后多項(xiàng)式各項(xiàng)的系數(shù)。例如,考慮下面的表達(dá)式:
這就是Wallis在他第一次在法國科學(xué)院提出牛頓法的時候所用的多項(xiàng)式。在MATLAB中,該多項(xiàng)式可以用以下命令來輸入:
>> p = [1 0 -2 -5];
這個表達(dá)式的含義就是的系數(shù)為1,的系數(shù)為0(原公式中無此項(xiàng),需補(bǔ)足為0),的系數(shù)為-2,常數(shù)項(xiàng)為-5。
2.多項(xiàng)式行向量的創(chuàng)建方法
多項(xiàng)式系數(shù)向量的直接輸入法就是按照多項(xiàng)式表達(dá)式的約定,把多項(xiàng)式的各項(xiàng)系數(shù)一次排放在行向量的元素位置上。
正如前面所提到的:多項(xiàng)式的系數(shù)要以降冪順序排列,假如多項(xiàng)式中缺少了某一冪次,那么就認(rèn)為該冪次的系數(shù)為零。
利用命令P=poly(A)生成多項(xiàng)式系數(shù)向量。若A是方陣,多項(xiàng)式P就是該方陣的特征多項(xiàng)式。若A是一個向量, A的元素就被認(rèn)為是多項(xiàng)式P的根。
【例2-36】 求 3 階方陣 A 的特征多項(xiàng)式。
>>A=[11 12 13;14 15 16;17 18 19];
>>PA=poly(A) % A的特征多項(xiàng)式
>>PPA=poly2str(PA,'s') % 以較為習(xí)慣的方式顯示多項(xiàng)式
PA =
1.0000 -45.0000 -18.0000 0.0000
PPA =
s^3 - 45 s^2 - 18 s +1.6206e-014
【例2-37】 由給定根向量求多項(xiàng)式系數(shù)向量。
>> R=[-0.5,-0.3+0.4*i,-0.3-0.4*i]; % 根向量
>> P=poly(R) % R 的特征多項(xiàng)式
P =
1.0000 1.1000 0.5500 0.1250
>> PR=real(P) % 求 PR的實(shí)部
PR =
1.0000 1.1000 0.5500 0.1250
>> PPR=poly2str(PR,'x')
PPR =
x^3 + 1.1x^2 + 0.55 x + 0.125
需要指出的是:要形成實(shí)系數(shù)多項(xiàng)式,則根向兩種的復(fù)數(shù)根必須共軛成對;含復(fù)數(shù)的根向量所生成的多項(xiàng)式系數(shù)向量(如P)的系數(shù)有可能帶在截?cái)嗾`差數(shù)量級的虛部,此時可以采用取實(shí)部的函數(shù)real來將此虛部濾掉。
9.2 多項(xiàng)式運(yùn)算函數(shù)
常用的多項(xiàng)式運(yùn)算所涉及到的函數(shù)見表2-11。
表2-11 多項(xiàng)式運(yùn)算函數(shù)
函數(shù)形式
函數(shù)功能
函數(shù)形式
函數(shù)功能
conv
卷積和多項(xiàng)式乘法
polyint
解析多項(xiàng)式積分
deconv
去卷積和多項(xiàng)式除法
polyval
按數(shù)組運(yùn)算規(guī)則計(jì)算多項(xiàng)式值
poly
求具有指定根的多項(xiàng)式
polyvalm
按矩陣運(yùn)算規(guī)則計(jì)算多項(xiàng)式值
polyder
多項(xiàng)式求導(dǎo)
residue
部分分式展開式和多項(xiàng)式系數(shù)之間轉(zhuǎn)換
polyeig
多項(xiàng)式本征值
roots
多項(xiàng)式的根
polyfit
多項(xiàng)式擬合
【例2-38】 求
的“商”及“余”多項(xiàng)式。
>> p1=conv([1,0,2],conv([1,4],[1,1])); % 計(jì)算分子多項(xiàng)式
>> p2=[1 0 1 1]; % 注意缺項(xiàng)補(bǔ)零
>> [q,r]=deconv(p1,p2);
>> cq=' 商多項(xiàng)式為 ';
>> cr=' 余多項(xiàng)式為 ';
>> disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')]) % 顯示運(yùn)算結(jié)果
運(yùn)行的結(jié)果如下:
商多項(xiàng)式為 s + 5
余多項(xiàng)式為 5 s^2 + 4 s + 3
【例2-39】 兩種多項(xiàng)式求值指令的差別示例。
>> S=pascal(4) % 生成一個 4 階方陣
S =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
>> P=poly(S);
>> PP=poly2str(P,'s')
PP =
s^4 - 29s^3 + 72 s^2 - 29 s + 1
>> PA=polyval(P,S) % 獨(dú)立變量取數(shù)組 S 元素時的多項(xiàng)式值
PA =
1.0e+004 *
0.0016 0.0016 0.0016 0.0016
0.0016 0.0015 -0.0140 -0.0563
0.0016 -0.0140 -0.2549 -1.2089
0.0016 -0.0563 -1.2089 -4.3779
>> PM=polyvalm(P,S) % 獨(dú)立變量取矩陣 S 時的多項(xiàng)式值
PM =
1.0e-010 *
-0.0013 -0.0063 -0.0104 -0.0241
-0.0048 -0.0217 -0.0358 -0.0795
-0.0114 -0.0510 -0.0818 -0.1805
-0.0228 -0.0970 -0.1553 -0.3396
從理論上講,PM應(yīng)該為零。這就是著名的“Caylay-Hamilton”定理:任何一個矩陣滿足它自己的特征多項(xiàng)式方程。本例中的PM的元素都很小,這是由截?cái)嗾`差造成的。
【例2-40】 部分分式展開示例。
>> a=[1,3,4,2,7,2]; % 分母多項(xiàng)式系數(shù)向量
>> b=[3,2,5,4,6]; % 分子多項(xiàng)式系數(shù)向量
>> [r,s,k]=residue(b,a)
r =
1.1274 +1.1513i
1.1274 -1.1513i
-0.0232 -0.0722i
-0.0232 +0.0722i
0.7916
s =
-1.7680 +1.2673i
-1.7680 -1.2673i
0.4176 +1.1130i
0.4176 -1.1130i
-0.2991
k =
[]
本例中的k是空陣,這說明分母的階數(shù)高于分子。另外從計(jì)算數(shù)學(xué)上來講,如果某些根很靠近,極點(diǎn)和留數(shù)的計(jì)算受截?cái)嗾`差的影響會比較大,此時用這種表達(dá)方式的數(shù)值穩(wěn)定性不如用狀態(tài)方程或零點(diǎn)、極點(diǎn)展開可靠。