什么是牛顿迭代法?
牛顿迭代法(也称牛顿-拉夫森法)是求方程数值根最快、应用最广的方法之一,所谓"根"就是使 \(f(x) = 0\) 成立的那个 \(x\) 值。它从一个初始猜测值出发,反复作出曲线的切线,并把切线与 x 轴的交点作为下一个更精确的估计值。当方法奏效时,它呈二次收敛:每迭代一步,正确的有效数字位数大致翻倍。
如何使用本计算器
请用 \(x\) 作为变量输入你的函数 \(f(x)\)。由于本工具不会自动求导,你还需要自己输入解析导数 \(f'(x)\)。接着选择初始猜测值 \(x_0\) 以及最大迭代次数。计算器会返回近似根、该根处的 \(f\) 值(应接近于零,用以确认收敛)、实际使用的迭代次数,以及逐步迭代的历史记录表。支持的语法:幂运算用 + - * / ^、括号,函数包括 sin、cos、tan、asin、acos、atan、exp、ln、log、sqrt、abs,常量 pi 和 e。三角函数以弧度为单位。
公式详解
迭代公式为 $$x_{n+1} = x_{n} - \frac{f(x_{n})}{f^{\prime}(x_{n})}$$ 每一步都在当前点计算函数值及其斜率,然后沿切线方向移动到它与 x 轴的交点。如果某一步的导数为零,切线就变成水平线,方法会因除以零而失败。
实例演示
取 \(f(x) = x - \cos(x)\),其导数为 \(f'(x) = 1 + \sin(x)\),初始值 \(x_0 = 1\)。第一步得到 $$x_1 = 1 - \frac{1 - \cos 1}{1 + \sin 1} = 0.75034$$ 第二步得到 \(0.73912\),第三步得到 \(0.73909\),仅需几次迭代便收敛到 \(x = 0.7390851332151607\)——这就是著名的"道蒂数"(Dottie number),即满足 \(x = \cos x\) 的那个值。此时 \(f(x)\) 基本上等于零。
常见问题
为什么需要我自己输入导数? 本工具只负责求解表达式的值,并不进行符号求导,因此 \(f'(x)\) 需要你手动输入。导数填错会导致求出错误的根,甚至无法收敛。
为什么没有收敛? 当初始猜测值选得不好、靠近拐点,或者根本不存在实根时,牛顿迭代法可能发散或来回振荡。可以换一个 \(x_0\),或者提高迭代次数上限再试。
方程有多个根时会求出哪一个? 最终求出的根取决于初始猜测值 \(x_0\);想求哪个根,就把猜测值取在它附近。