通过MCP连接 →

输入计算

请用 x 作为变量。支持:+ - * / ^、sin cos tan asin acos atan exp ln log sqrt abs、pi、e。三角函数以弧度为单位。

数学公式

数学公式: 牛顿迭代法求根计算器

广告

结果

近似根 (x)
0.739085133215161
使 f(x) 约等于 0 的 x 值
根处的 f(x) 值 0
实际迭代次数 (n) 4
状态 converged
n x_n f(x_n)
0 1 0.45969769413186
1 0.750363867840244 0.018923073822117
2 0.739112890911362 0.000046455898991
3 0.739085133385284 0.000000000284721

什么是牛顿迭代法?

牛顿迭代法(也称牛顿-拉夫森法)是求方程数值根最快、应用最广的方法之一,所谓"根"就是使 \(f(x) = 0\) 成立的那个 \(x\) 值。它从一个初始猜测值出发,反复作出曲线的切线,并把切线与 x 轴的交点作为下一个更精确的估计值。当方法奏效时,它呈二次收敛:每迭代一步,正确的有效数字位数大致翻倍。

曲线上某点的切线与 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\);想求哪个根,就把猜测值取在它附近。

最后更新: