在 Matlab 中獲取多項式的根

Ammar Ali 2023年1月30日
  1. 使用 MATLAB 中的 roots() 函式獲取多項式的根
  2. 使用 MATLAB 中的 solve() 函式獲取多項式的根
在 Matlab 中獲取多項式的根

本教程將介紹如何使用 MATLAB 中的 roots()solve() 函式求多項式的根。

使用 MATLAB 中的 roots() 函式獲取多項式的根

如果要查詢多項式的根,可以使用 MATLAB 中的 roots() 函式。此函式的此輸入是包含多項式係數的向量。如果多項式中不存在冪,則將使用 0 作為其係數。此函式的輸出是一個列向量,其中包含給定多項式的實根和虛根。例如,讓我們找到二次多項式的根:2x^2 - 3x + 6 = 0。我們必須從最高的冪開始定義多項式係數,如果沒有冪,我們將使用 0 作為其係數。請參考下面的程式碼。

poly = [2 -3 6];
p_roots = roots(poly)

輸出:

p_roots =

   0.7500 + 1.5612i
   0.7500 - 1.5612i

在上面的程式碼中,我們只使用了多項式的係數,從最高的冪開始。你可以根據給定的多項式更改多項式的係數。知道了,讓我們找出一個四次多項式的根:2x^4 + 1 = 0。看下面的程式碼。

poly = [2 0 0 0 1];
p_roots = roots(poly)

輸出:

p_roots =

  -0.5946 + 0.5946i
  -0.5946 - 0.5946i
   0.5946 + 0.5946i
   0.5946 - 0.5946i

我們在上面程式碼中的兩個多項式之間使用了三個 0,因為缺少三個冪。檢視此連結以獲取有關 roots() 函式的更多資訊。

使用 MATLAB 中的 solve() 函式獲取多項式的根

如果要查詢多項式的根,可以使用 MATLAB 中的 solve() 函式。此函式的此輸入是多項式。此函式的輸出是一個列向量,其中包含給定多項式的實根和虛根。例如,讓我們找出二次多項式的根:2x^2 - 3x + 6 = 0。我們必須定義多項式。請參考下面的程式碼。

syms x
poly = 2*x^2 -3*x +6 == 0;
p_roots = solve(poly,x)
p_roots = vpa(p_roots,2)

輸出:

p_roots =
 
 0.75 - 1.6i
 0.75 + 1.6i

在上面的程式碼中,我們定義了整個多項式,並使用了 vpa() 函式來改變結果的精度。你可以根據給定的多項式和精度根據你的要求更改多項式。知道了,讓我們找出一個四次多項式的根:2x^4 + 1 = 0。看下面的程式碼。

syms x
poly = 2*x^4 +1 == 0;
p_roots = solve(poly,x);
p_roots = vpa(p_roots,2)

輸出:

p_roots =
 
 - 0.59 - 0.59i
 - 0.59 + 0.59i
   0.59 - 0.59i
   0.59 + 0.59i

在上面的程式碼中,我們定義了整個多項式並使用 vpa() 函式來改變結果的精度。你可以根據給定的多項式和精度根據你的要求更改多項式。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook