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
输出
请先写下预测,再运行。
用测试核对
用测试核对¶
测试检查初始区间必须只含一个根、区间持续嵌套、宽度按预期缩小。
适用范围
适用范围¶
该类型用于观察一个实根的逼近,不提供代数数之间的完整运算或一般相等判断。