非线性方程 · 局部直线
同一个函数,两条迭代路线
橙线与横轴相交的地方给出下一次输入。它只是切线或割线的零点;下一次还要回到函数上检查残差。
Newton · 一点与斜率
当前 x
|f(x)|
求值 f / f′
割线 · 最近两点
当前 x
|f(x)|
求值 f / f′
函数切线或割线下一点到横轴的对应位置
两张几何图分别选择视窗,不能用屏幕上的线长比较两算法的误差。曲线和直线在边界裁剪,没有把图外数值压到边界上。新点超出横轴展示范围时,会明确提示。
残差记录:把数量级摊开
Newton割线
| Newton n | xₙ | |f(xₙ)| |
|---|
| 割线 n | xₙ | |f(xₙ)| |
|---|
n 是各自的点编号:Newton 从一个初值开始,割线从两个初值开始。函数值会缓存;曲线绘图的采样不计入算法求值数。图中展示的是残差,不把机器里的 √3 当作无限精确真根来绘制“真误差”。
导数都非零,能排除循环吗?
切到 x³−2x+2,从 Newton 初值 0 出发,观察两步后的数值。
异常会单独停止:导数或割线分母为零、非有限数、重复点停滞、两点循环、最多 30 次更新,或 |x| 超过 10⁶。浮点函数值为零只记为“计算零点”;小残差本身不等于无条件的根误差保证。