多項式求根的數值運算與分析
在數學與工程應用中,尋找多項式的根是核心任務之一。本多項式求根計算器專為求解次數 1 至 20 的多項式而設計,能夠精確尋找所有實數、複數及重根。不論多項式是以已展開的代數表達式呈現,還是以係數列表形式給出,本工具均能透過高效的數值演算法進行求解,並提供完整的收斂性檢查、殘差分析以及複數平面上的幾何分佈圖。
輸入格式與參數設定
使用者可根據手頭上的數據格式,選擇最適合的輸入方式:
- 多項式輸入格式:
- 已展開的表達式:輸入單變數的方程或表達式。各項可以無序排列,亦可出現在等號的任一側(例如輸入
x^5 - x = 0)。 - 係數列表:輸入以逗號、空格或換行分隔的無因次實數,順序由最高次方排列至常數項。若多項式中缺少某些次方項,必須在相應位置補上 0。
- 已展開的表達式:輸入單變數的方程或表達式。各項可以無序排列,亦可出現在等號的任一側(例如輸入
- 表達式或方程:用於輸入多項式文本或係數的文字欄位。
- 顯示小數位數:控制輸出結果的精度,可設定為 4 至 12 位小數。較多的小數位數會使停止測試更嚴格,但無法恢復因係數而失去的精度。
- 嘗試多項式:提供快速載入的預設範例,包括:
- 五個根
- 四個複數根
- 重根
輸入限制與邊界條件
為了確保數值計算的穩定性,輸入必須符合以下規則:
- 多項式的有效次數必須介於 1 至 20 之間。
- 每個係數必須為實數(例如 −2.5、3/4 或 1e-6),且其絕對值必須小於或等於 1e100(|coefficient| ≤ 1e100)。
- 允許使用分數作為係數,但分數的分母不能為 0。
- 輸入的總字元數必須保持在 600 個字元以內。
運算結果與診斷輸出
計算完成後,系統會詳細列出根的幾何與數值特徵:
- 根集合:
- 標準式:顯示整理後的標準多項式。
- 根數統計:顯示「1 個根(計入重數)」或「
‹count›個根(計入重數)」。 - 根列表:標示為「根
‹index›」,並附帶以下資訊:- 重數
‹count›:當偵測到重複的根時顯示。 - 歸一化殘差:顯示該根的無因次殘差,用以評估數值精確度。
- 重數
- 複製根:一鍵複製所有計算結果。
- 複數平面上的根:以幾何圖形直觀呈現實根與共軛複根在複數平面上的分佈位置。
- 數值檢查:
- 有效次數
- 方法:顯示「直接線性求解」或「Ehrlich–Aberth 疊代」。
- 顯示精度
- 疊代次數
- 已嘗試的初始值組合數
- 最大歸一化殘差
演算法執行步驟與數學原理
本求解器針對不同次數的多項式採用不同的數學策略。對於 1 次多項式,系統採用直接線性求解;對於 2 次至 20 次多項式,則採用 Ehrlich–Aberth 疊代法。這是一種同時更新所有根猜測值的強大數值演算法,並配合 Horner 方法來高效評估多項式及其導數。
詳細的計算與代入步驟如下:
- 步驟 1:標準式:將各項整理為標準式:
‹polynomial›。 - 步驟 2:標準化:將每個係數除以首項係數
‹leading›。 - 步驟 3:縮放:將根搜尋範圍縮放 R =
‹scale›,使初始猜測值保持在穩定範圍內。 - 步驟 4:疊代:同時更新所有根的猜測值,直到修正值低於
‹tolerance›;本次運行使用了‹iterations›次疊代。 - 步驟 5:驗證:將每個根代回多項式中;最大歸一化殘差為
‹residual›。
特殊邊界與異常處理
在特定的輸入情況下,求解器會提供明確的提示與錯誤訊息:
- 特殊多項式:
- 若輸入為非零常數,系統提示:「非零常數絕不等於 0,因此該多項式沒有根。」
- 若輸入為零多項式,系統提示:「每個複數都是零多項式的根。」
- 狀態與敏感度提示:
- 準備就緒:「輸入多項式以開始。」
- 計算中:「正在尋找並檢查每個根…」
- 計算完成:「已尋找並檢查所有
‹count›個根。」 - 敏感度警告:「已找到根,但重根或極接近的根會使部分顯示的數字對微小的係數變化非常敏感。」
- 常見錯誤訊息:
- 輸入為空:「請輸入多項式表達式或係數列表。」
- 超出字元限制:「請將輸入保持在 600 個字元以內。」
- 格式錯誤:「這不是已展開的單變數多項式。請嘗試 x^5 - x = 0 或輸入其係數。」
- 含有括號:「請先展開括號,使每個次方項都有明確的係數。」
- 多變數限制:「請僅使用一個變數。」
- 次數不符:「請使用 0 至 20 的整數次方。」
- 係數無效:「每個係數必須為實數,例如 −2.5、3/4 或 1e-6。」
- 分母為零:「分數的分母不能為 0。」
- 數值溢位:「係數或中間比例超出了支援的有限範圍。請重新調整多項式的比例並重試。」
- 精度超出範圍:「請選擇 4 至 12 位小數。」
數據隱私與處理說明
本工具非常注重數據處理的透明度。你的多項式和所有計算均保留在此瀏覽器中,絕不會上傳。所有數值運算與繪圖均在用戶本地設備上即時完成。
常見問題解答
這些是精確根嗎?
不是。除了線性方程外,顯示的根均為數值近似值。次數大於 4 的方程沒有根式解的通用公式,即使是較低次數的公式,在面對棘手的係數時也可能會失去精度。請使用殘差和敏感度警告來判斷近似值;當你需要二次方程的精確分數或根式時,請使用二次方程計算器。
我可以輸入甚麼?
請使用實數、無因次係數,以及最高 20 次方的整數次方單變數。表達式必須已經展開,但各項可以無序排列,或出現在等號的兩側。係數列表從最高次方排至常數項,且必須為缺失的次方項補上零。
如何尋找高次方的根?
求解器從幾組確定的複數猜測值開始,並使用 Ehrlich–Aberth 更新同時改進每個猜測值。Horner 方法能高效地計算多項式及其導數,並將每個返回的根代回原多項式中,進行與比例無關的殘差檢查。
為甚麼重根較不穩定?
在重根處,多項式及其導數均為零。這會削弱修正步驟,因此微小的係數變化就可能將一個重根分裂為多個鄰近的根。求解器僅在數值極為接近時才會將根分組,並保持重數可見。