小龙的数学手记MATH, CODE & LITTLE DISCOVERIES
← 返回数学手记
数值分析

Newton 方法:沿着切线寻找答案

从一个简单的求根问题出发,理解 Newton 迭代的几何意义与收敛条件。

2026-09-17 · 5 分钟阅读 · 示例手记

从切线开始

假设我们要解 f(x)=0f(x)=0。在当前近似值 xkx_k 处,用切线近似曲线,再把切线与横轴的交点作为下一次近似。

xk+1=xkf(xk)f(xk).x_{k+1}=x_k-\frac{f(x_k)}{f'(x_k)}.

这就是 Newton 迭代。它把局部的一阶信息,转化为一次向根靠近的行动。

用它计算平方根

f(x)=x22f(x)=x^2-2,迭代可以写成:

xk+1=12(xk+2xk).x_{k+1}=\frac{1}{2}\left(x_k+\frac{2}{x_k}\right).

x0=1x_0=1 出发,前几步约为 1.5、1.416667、1.414216,逐渐接近 2\sqrt{2}

def sqrt_two(x=1.0, tol=1e-12, max_iter=100):
    for _ in range(max_iter):
        next_x = 0.5 * (x + 2.0 / x)
        if abs(next_x - x) < tol:
            return next_x
        x = next_x
    raise RuntimeError("迭代次数超过限制")

快速收敛的前提

对于足够光滑的函数,如果根是单根,且初值足够靠近根,Newton 方法通常具有局部二次收敛性。这不意味着任意初值都能成功:导数太小、初值太远,都可能导致迭代失效。

实际计算中,应同时检查残差、步长与最大迭代次数,而不只观察一个停止条件。

留给下一次实验

比较不同初值的迭代轨迹,并尝试加入阻尼或区间保护。快速的方法,也需要可靠的边界。