透過 MCP 連接 →

輸入計算

a0 為 x^n 的係數(最高次項,不得為零);常數項為 a(n)。用不到的係數可保留為 0。

數學公式

廣告

結果

找到的根數量
5
roots (real & complex) via Durand-Kerner
Value (re ± i·im)
x_1 2.6817925684442003E-15
x_2 1.3368995720865E-15
x_3 -1.5843433783877E-15
x_4 -2.1505841279553E-15
x_5 1.1330769043639002E-16

這個求根器能做什麼

N 次多項式方程式求根器能找出實係數多項式方程式 \(\text{a}_0\,x^{n} + \text{a}_1\,x^{n-1} + \cdots + \text{a}_{n-1}\,x + \text{a}_n = 0\) 的所有根,包含實根與複根。它採用 Durand-Kerner 法(又稱 Weierstrass 法,是 DKA/Durand-Kerner-Aberth 系列的基礎),這是一種同時迭代的演算法,會一次性地對每一個根的估計值進行修正。它是通用的數學工具,不受任何國家或單位限制。

複平面上以點表示的多項式根,包含共軛對
多項式的根以點的形式出現在複平面上,複數根構成互為鏡像的共軛對。

係數的排列慣例

本工具採用最高次項在前的方式為係數編號:a0 是 \(x^{n}\) 的係數(即最高次項係數,不得為零),而 an 是常數項。這與教科書上常見的「a_k 對應 x^k」慣例剛好相反,因此請依此規則輸入您的係數。索引大於 n 的係數會被自動忽略。

使用方式

先選擇次數 n(1 至 16),接著依序輸入係數 a0 到 an(用不到的欄位保留 0 即可),再設定要顯示的有效位數,最後送出即可。實根會以虛部為零的形式顯示;實係數多項式的複根則會以共軛對的形式出現(re + i·im 與 re − i·im)。

Advertisement

計算公式

先將每個係數都除以 a0,化為首一多項式 \(p(x)=x^{n}+b_1\,x^{n-1}+\cdots+b_n\),接著用以下公式更新每個估計值:

$$z_i \leftarrow z_i - \frac{p(z_i)}{\displaystyle\prod_{j \ne i}(z_i - z_j)}$$

從圓周上分散的相異起始點出發,這些估計值會同時收斂到 n 個根。

杜蘭德-肯納迭代示意圖,圓上的初始估計逐漸收斂到真實根
DKA 方法將所有根的初始估計放在一個圓上,並同時迭代更新直至收斂。

實例演練

以 \(x^3 - 6x^2 + 11x - 6 = 0\) 為例,輸入 n=3、a0=1、a1=−6、a2=11、a3=−6。此多項式可因式分解為 \((x-1)(x-2)(x-3)\),迭代過程會收斂到根 1、2 與 3(皆為實根)。

Advertisement

常見問題

為什麼 a0 不能為零?如果最高次項係數為零,這個方程式的次數其實就不是 n;因此本工具會把 a0=0 視為無效輸入。

為什麼複根會成對出現?實係數多項式的複根一定以共軛對的形式存在,所以您會看到對應的 +i·im 與 −i·im 兩個數值。

能處理重根嗎?可以,但重根(重複的根)收斂速度較慢,因此本求根器允許較多次迭代並放寬容許誤差;極微小的虛部殘差會自動歸零。

最後更新: