05 · 代數實根:隔離區間與二分
代數實根:隔離區間與二分¶
以一個多項式和只含一個實根的有理區間表示代數實數,逐步縮小區間。
閱讀本章前
你已知道如何精確求值多項式,並用 Sturm 序列計算區間內的根數。
完成本章後,你可以
- 用自己的話說明「代數實根:隔離區間與二分」中的數學定義
- 指出定義在 Python 資料中的表示方式
- 依據實際實作預測一段小型執行過程
數學定義
代數實數是某個非零整數或有理係數多項式的實根。這裡以多項式與恰好隔離一根的開區間指定一個根。
資料表示
`AlgebraicRoot` 保存多項式與有理端點,建立時驗證順序和根數;`RationalInterval` 保存每次收縮後的範圍。
Python 實作
`(p,(a,b))` → `AlgebraicRoot`; `Iₙ → Iₙ₊₁` → `_bisect`
與本章一起閱讀的實作與測試
數學定義
數學定義¶
代數實數是某個非零整數或有理係數多項式的實根。這裡以多項式與恰好隔離一根的開區間指定一個根。
資料表示
資料表示¶
AlgebraicRoot 保存多項式與有理端點,建立時驗證順序和根數;RationalInterval 保存每次收縮後的範圍。
Python 實作
Python 實作¶
_bisect 計算有理中點,再以根計數選擇仍含唯一根的一半;trace 重複此過程。
本課程使用的精確對應關係:
執行過程
執行過程¶
x²-2 的正根從 (1,2) 開始。每一步端點仍為有理數,區間彼此巢狀且寬度減半。
執行前預測
先算前三個中點,預測每次保留左半或右半,再與輸出比較。
實驗 · 代數實根:隔離區間與二分
尚未執行
⌘ / Ctrl + Enter
輸出
請先寫下預測,再執行。
用測試核對
用測試核對¶
測試確認初始區間必須只含一根、區間持續巢狀、寬度按預期縮小。
適用範圍
適用範圍¶
此型別用來觀察一個實根的逼近,不提供代數數之間的完整運算或一般相等判斷。