要計算多項式的值,可用 polyval 指令,例如:
在上述範例中,x 和 y 都是長度為 31 的向量,y(i) 的值即為 $p(x)= x^2+2x+1$ 在 x = x(i) 的函數值。
若要計算 p(A),A 為一方陣,可用 polyvalm 指令如下:
此結果和 B = A^2 + 2*A + 1 是一樣的。
若上式改為 B = polyval(p, A),則其結果和 B = A.^2 + 2*A + 1 是一樣的。(請注意:A^2 和 A.^ 2 的意義完全不同,前者是矩陣 A*A,後者是對矩陣 A 的每一個元素平方。)
欲求多項式的根,可用 MATLAB 的 roots 指令,例如,若要計算多項式 $p(x)= x^4 +3 x^3 + x^2 + 5x - 1$ 的根,可見下列範例:
欲驗證此四根為多項式 $p(x)$ 的解,可輸入如下:
上述結果顯示將四個根帶入多項式求值的結果,都非常接近於零。
MATLAB 的 polyder 指令可用於多項式的微分,例如:
此即表示 $p(x)= x^3 +3x^2 + 3x + 1$ 微分後的結果為 $q(x) = 3x^2 + 6x + 3$。
MATLAB 6.x 以後的版本已經提供 polyint 指令,以便對多項式進行積分,例如
此即表示 $p(x)= 4x^3 +3x^2 + 2x + 1$ 積分後的結果為 $q(x) = x^4 + x^3 + x^2 + x + 8$。(請注意,在此我們假設積分後的不定常數為 k。)
MATLAB 5.x 並無對多項式積分的指令,但我們可以很快的用其它方法達成積分的目的,例如:
以下列出如何使用 MATLAB 來進行多項式的求值、求根、微分、積分:
函數 說明 q = polyval(p, x) 計算 p(x) 的值 q = polyvalm(a, A) 計算 p(A),A 為一方陣 r = roots(p) 計算 p(x) 的根 q = polyder(p) q(x) 為 p(x) 的微分 q = polyint(p, k) q(x) 為 p(x) 的積分,其中 k 為任意常數 q = [p./length(p):-1:1, k] 同上一列(polyint 指令不存在時的替代方案)
MATLAB程式設計:進階篇![]()