MATLAB - 多項式



MATLAB 將多項式表示為包含係數的行向量,這些係數按降冪排序。例如,方程 P(x) = x4 + 7x3 - 5x + 9 可以表示為 -

p = [1 7 0 -5 9];

評估多項式

polyval 函式用於在指定值處評估多項式。例如,要評估我們之前的多項式 p 在 x = 4 處的值,請鍵入 -

p = [1 7 0  -5 9];
polyval(p,4)

MATLAB 執行上述語句並返回以下結果 -

ans = 693

MATLAB 還提供 polyvalm 函式用於評估矩陣多項式。矩陣多項式是多項式,其變數為矩陣。

例如,讓我們建立一個方陣 X 並評估多項式 p 在 X 處的值 -

p = [1 7 0  -5 9];
X = [1 2 -3 4; 2 -5 6 3; 3 1 0 2; 5 -7 3 8];
polyvalm(p, X)

MATLAB 執行上述語句並返回以下結果 -

ans =
      2307       -1769        -939        4499
      2314       -2376        -249        4695
      2256       -1892        -549        4310
      4570       -4532       -1062        9269

查詢多項式的根

roots 函式計算多項式的根。例如,要計算我們多項式 p 的根,請鍵入 -

p = [1 7 0  -5 9];
r = roots(p)

MATLAB 執行上述語句並返回以下結果 -

r =
   -6.8661 + 0.0000i
   -1.4247 + 0.0000i
   0.6454 + 0.7095i
   0.6454 - 0.7095i

poly 函式是 roots 函式的逆函式,並返回到多項式係數。例如 -

p2 = poly(r)

MATLAB 執行上述語句並返回以下結果 -

p2 =

   Columns 1 through 3:

      1.00000 + 0.00000i   7.00000 + 0.00000i   0.00000 + 0.00000i

   Columns 4 and 5:

      -5.00000 - 0.00000i   9.00000 + 0.00000i

多項式曲線擬合

polyfit 函式找到擬合一組資料的最小二乘意義上的多項式的係數。如果 x 和 y 是兩個分別包含要擬合到 n 次多項式的 x 和 y 資料的向量,則我們可以透過編寫以下程式碼獲得擬合數據的多項式 -

p = polyfit(x,y,n)

示例

建立一個指令碼檔案並鍵入以下程式碼 -

x = [1 2 3 4 5 6]; y = [5.5 43.1 128 290.7 498.4 978.67];   %data
p = polyfit(x,y,4)   %get the polynomial

% Compute the values of the polyfit estimate over a finer range, 
% and plot the estimate over the real data values for comparison:
x2 = 1:.1:6;          
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on

執行該檔案時,MATLAB 將顯示以下結果 -

p =
   4.1056  -47.9607  222.2598 -362.7453  191.1250

並繪製以下圖形 -

Polynomial Curve Fitting
廣告