[轉]MATLAB新手教學 – 多 項 式

多 項 式

MATLAB支援多項式的運算,除了一般的四則運算外更可以求多項式的根 多項式微分積分等工作,以及有理數等運算 非常方便使用
  多項式的表示法 輸入多項式x^4+2*x^2+5x+10
  首先必須將多項式的係數由最高向至最低項依序找出來 並存在一陣列中 注意缺項部分必須補零

P=[1 0 2 5 10] 即為以上的多項式
  多項式乘法 多項式乘法必須使用函數conv,也就是執行兩個陣列的卷積。
  如以下兩個多項式a(x)=5*x^3+2*x^2+x+1和b(x)= 2*x^3+x^2+x+10的乘積

>>a=[5 2 1 1] ; b=[2 1 1 10];
>>c=conv(a , b)
c =

    10     9     9    55    22    11    10
  結果是c(x)=10*x^6+9*x^5+9*x^4+55*x^3+22*x^2+11x+10。
  若為兩個以上的多項式的乘法需要重覆使用onv。
  多項式加法與減法 對多項式加法與減法可以使用(+)與(-)號,MATLAB並不提供一個直接的函數。如果兩個多項式向量大小相同,標準的的陣列加法有效。
  把多項式a(x)與上面給出的b(x)相加
>>d=a+b
d =

     7     3     2    11
  結果是d(x)= 7*x^3+3*x^2+2*x+11。

>>d=a-b

d =

     3     1     0    -9
  結果是d(x)= 3*x^3+x^2-9。
  注意 多項式做加法或減法對於階次不同,低階的多項式必須補零 就是剛才介紹的缺項補零 否則會出現錯誤訊息
   多項式除法 在MATLAB中,由函數deconv完成一個多項式除以另一個多項式。
>> [q,r]=deconv(c,b)
q =

     5     2     1     1

r =

     0     0     0     0     0     0     0
  這個結果是b被c除,給出商多項式q和餘數r,在現在情況下r是零,因爲b和q的乘積恰好是c。
  多項式根 找出多項式的根用函數roots找出一個多項式的根
  輸入多項式x^4+2*x^2+5x+10

>>p=[1 0 2 5 10]
>> r=roots(p)

r =

   1.0874 + 1.8254i
   1.0874 – 1.8254i
  -1.0874 + 1.0163i
  -1.0874 – 1.0163i
  因爲在MATLAB中,無論是一個多項式,還是它的根,都是向量,MATLAB按慣例規定,多項式是行向量,根是列向量。

MATLAB中給出一個多項式的根,也可以由poly命令構造相應的多項式。

>>pp=poly(r)
pp =

    1.0000   -0.0000    2.0000    5.0000   10.0000
  如果一些根有虛部,由於截斷誤差差,則poly的結果有一些小的虛部,這是很普通的。消除虛假的虛部只要使用函數real抽取實部
  多項式導數
MATLAB由polyder函數提供一個多項式的導數表示。

>>h=polyder(p)
h =

     4     0     4     5
  多項式值
MATLAB中由函數polyval來完成多項式係值

>> x=[1 2 3] ;
>>v=polyval(p , x) ;
>> v

v =

    18    44   124
  由當x為1 2 3時所對應的多項式的值 因此x=1多項式值為18
x=2多項式值為44
x=3多項式值為124
  可以將多項式畫出
plot(x , v)
title(‘多項式x^4+2*x^2+5x+10作圖’)
xlabel(‘ x ‘)
  有理多項式 在MATLAB中使用residue函數求有理多項式,有理多項式由它們的分子多項式和分母多項式表示,

>>b = [ 5 3 -2 7]
>>a = [-4 0 8 3]
[r, p, k] = residue(b,a)

r =
   -1.4167
   -0.6653
    1.3320

p =
    1.5737
   -1.1644
   -0.4093

k =
   -1.2500
  結果是餘數、極點和部分分式展開的常數項。
  這個函數也執行逆運算。

[b,a] = residue(r,p,k)

b =
   -1.2500   -0.7500    0.5000   -1.7500

a =
    1.0000   -0.0000   -2.0000   -0.7500 

未經允許不得轉載:GoMCU » [轉]MATLAB新手教學 – 多 項 式