Problem
用Matlab軟件包求解下列方程的全部實根:
Methods
roots函數
- 使用方法:
r = roots(p)
以列向量的形式返回p
表示的多項式的根。輸入p
是一個包含n+1
多項式系數的向量,以 xn 系數開頭。0
系數表示方程中不存在的中間冪。例如:p = [3 2 -2]
代表多項式。
roots
函數對格式的多項式方程求解。包含帶有非負指數的單一變量的多項式方程。
算法原理
roots 函數將 p 視為一個具有 n+1 個元素的向量,代表 n×n 矩陣 A 的 n 次特征多項式。多項式的根通過計算伴隨矩陣 A 的特征值得出。
A = diag(ones(n-1,1),-1);
A(1,:) = -p(2:n+1)./p(1);
r = eig(A)
數學原理
已知
構造矩陣
設
(x為該方程的解)
下面我們以3項來說明方便理解:
原式:
聯立以上3個方程得:
結論
- 因此,只要解出λ(特征根)的值,就得到
的解。從而,我們把解方程的根轉化成了特征根的求解。
- 只算3個容易理解,實際上n個也是同理的。
- 需要注意的是,
不能為0
4.特征根的求解:
然后用線性代數的知識解出來即可。(利用余子式的性質)
可以求得n個λ,得到n個解(包括復數)