在 Matlab 中獲取多項式的根
Ammar Ali
2023年1月30日
2021年7月4日
本教程將介紹如何使用 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()
函式來改變結果的精度。你可以根據給定的多項式和精度根據你的要求更改多項式。
Author: Ammar Ali