You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

牛顿法重根附近收敛速率误差界证明:等式推导细节问询

牛顿法在m重根附近的误差界推导细节

没问题,我来一步步拆解这个推导细节,帮你理清楚为什么这个分式能简化到后面的误差项。首先我们先明确前提和符号定义,再逐步展开计算:


前提与符号对齐

  • 假设 ( r ) 是方程 ( f(x)=0 ) 的m重根,因此我们可以将 ( f(x) ) 分解为 ( f(x)=(x-r)^m g(x) ),其中 ( g(r) \neq 0 ),且 ( g(x) ) 在 ( r ) 的邻域内足够光滑(保证泰勒展开成立)。
  • 误差项定义为 ( e_n = x_n - r ),即第n次迭代值与根的偏差。
  • 牛顿迭代公式为 ( x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} ),因此误差递推式为:
    $$ e_{n+1} = e_n - \frac{f(x_n)}{f'(x_n)} $$

第一步:推导你给出的初始分式

先计算 ( \frac{f(x_n)}{f'(x_n)} ):

  • 代入 ( f(x_n) = e_n^m g(r+e_n) ),( f'(x_n) = m e_n^{m-1} g(r+e_n) + e_n^m g'(r+e_n) = e_n^{m-1} \left[ m g(r+e_n) + e_n g'(r+e_n) \right] )
  • 因此 ( \frac{f(x_n)}{f'(x_n)} = \frac{e_n g(r+e_n)}{m g(r+e_n) + e_n g'(r+e_n)} )
  • 代入误差递推式:
    $$ e_{n+1} = e_n - \frac{e_n g(r+e_n)}{m g(r+e_n) + e_n g'(r+e_n)} = e_n \cdot \frac{(m-1)g(r+e_n) + e_n g'(r+e_n)}{m g(r+e_n) + e_n g'(r+e_n)} $$

接下来对 ( g(r+e_n) ) 和 ( g'(r+e_n) ) 做一阶泰勒展开(因为 ( e_n \to 0 ),高阶项可以合并为大O符号):

  • ( g(r+e_n) = g(r) + e_n g'(r) + O(e_n^2) )
  • ( g'(r+e_n) = g'(r) + O(e_n) )(一阶展开到常数项即可,因为后面乘以 ( e_n ) 后是 ( O(e_n^2) ))

将泰勒展开代入分子分母:

  • 分子:( (m-1)\left[ g(r) + e_n g'(r) + O(e_n^2) \right] + e_n \left[ g'(r) + O(e_n) \right] = (m-1)g(r) + e_n g'(r) + O(e_n) )
    (注:这里把 ( O(e_n^2) ) 和 ( O(e_n^2) ) 合并为 ( O(e_n) ),因为低阶大O包含高阶项)
  • 分母:( m\left[ g(r) + e_n g'(r) + O(e_n^2) \right] + e_n \left[ g'(r) + O(e_n) \right] = m g(r) + e_n g'(r) + O(e_n) )

这就得到了你给出的初始等式:
$$ e_{n+1}= rac{(m-1)g(r)+e_ng'(r)+O(e_n)}{mg(r)+e_ng'(r)+O(e_n)}e_n $$


第二步:分式化简到最终误差项

现在我们要处理这个分式 ( \frac{(m-1)g(r)+e_n g'(r)+O(e_n)}{m g(r)+e_n g'(r)+O(e_n)} ),核心技巧是提取常数因子+利用几何级数展开:

步骤2.1:提取分母的常数因子

令 ( C = m g(r) )(因为 ( g(r) \neq 0 ),所以 ( C \neq 0 )),将分子分母同时除以 ( C ):
$$
\frac{(m-1)g(r)/C + e_n g'(r)/C + O(e_n)/C}{1 + e_n g'(r)/C + O(e_n)/C} = \frac{\frac{m-1}{m} + e_n \cdot \frac{g'(r)}{m g(r)} + O(e_n)}{1 + e_n \cdot \frac{g'(r)}{m g(r)} + O(e_n)}
$$

步骤2.2:利用几何级数展开分母

当 ( \epsilon \to 0 ) 时,我们有泰勒展开式:
$$ \frac{1}{1+\epsilon} = 1 - \epsilon + O(\epsilon^2) $$

这里令 ( \epsilon = e_n \cdot \frac{g'(r)}{m g(r)} + O(e_n) ),显然当 ( e_n \to 0 ) 时 ( \epsilon \to 0 ),满足展开条件。将分式拆分为分子乘以分母的倒数:
$$
\left( \frac{m-1}{m} + k e_n + O(e_n) \right) \cdot \left( 1 - k e_n + O(e_n^2) \right)
$$
其中 ( k = \frac{g'(r)}{m g(r)} ),简化符号。

步骤2.3:展开乘积并合并同类项

现在展开两个括号的乘积:
$$
\begin{align*}
& \frac{m-1}{m} \cdot 1 + \frac{m-1}{m} \cdot (-k e_n) + (k e_n) \cdot 1 + \frac{m-1}{m} \cdot O(e_n^2) + (k e_n) \cdot (-k e_n) + O(e_n) \cdot O(e_n^2) \
=& \frac{m-1}{m} + k e_n \left( 1 - \frac{m-1}{m} \right) + O(e_n^2) \
=& \frac{m-1}{m} + k e_n \cdot \frac{1}{m} + O(e_n^2)
\end{align*}
$$
这里所有交叉项(如 ( e_n^2 ) 项、高阶大O项)都合并为 ( O(e_n^2) ),因为它们的阶数不低于 ( e_n^2 )。

步骤2.4:代入误差递推式

将化简后的分式乘以 ( e_n ),得到:
$$
e_{n+1} = \left( \frac{m-1}{m} + \frac{k}{m} e_n + O(e_n^2) \right) e_n = \frac{m-1}{m} e_n + \frac{k}{m} e_n^2 + O(e_n^3)
$$

最后,因为 ( \frac{k}{m} e_n^2 ) 是 ( O(e_n^2) ),( O(e_n^3) ) 也包含在 ( O(e_n^2) ) 中,所以最终简化为:
$$ e_{n+1} = \frac{m-1}{m} e_n + O(e_n^2) $$


针对你尝试的补充说明

你提到用泰勒展开 ( g(r) ) 和 ( g'(r) ) 没得到结果,可能是因为你误展开了 ( g(r) )(它是常数,展开后就是自身),而应该对 ( g(x_n)=g(r+e_n) ) 做泰勒展开,也就是在 ( r ) 点展开到 ( e_n ) 的一阶项,这样才能代入分子分母得到含 ( e_n ) 的项。另外,处理分式时记得用几何级数展开倒数项,这是把分式转化为多项式形式的关键步骤。

内容的提问来源于stack exchange,提问作者james black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:03:26