数值分析复习(二)——非线性方程的求解

本文详细介绍了非线性方程的求解方法,包括根的搜索与精确化。在根的搜索阶段,通过图解法和解析法分析根的分布,而定步长搜索法利用了连续函数的介值定理。在根的精确化阶段,二分法是一种常用方法,通过不断将区间分半找到根的近似值。此外,简单迭代法和Newton迭代法也被讨论,讨论了它们的收敛性和加速技巧。Newton法在满足一定条件时能实现二阶局部收敛,而在大范围内也能确保收敛。文章还提到了一些Newton法的变形,如割线法和拟Newton法,以及Steffenson法等高级迭代技术。

二、非线性方程的求解

概述

求根的方法一般分为 2 步:

  • 根的搜索,分析方程存在多少个实根,找出每个根所在的区间
    • 图解法:通过画函数的图形,了解根的分布情况
    • 解析法:用微积分基本理论来分析
    • 定步长搜索法:利用连续函数的介值定理
  • 根的精确化,求满足给定精度的根的近似值

二分法

  • 思想:依据连续函数的介值定理,反复将区间分半,在足够小的区间内,方程有且仅有一根
  • 按此方法得到一系列区间 [a0,b0]⊃[a1,b1]⊃[a2,b2]⊃⋯⊃[ak,bk]⊃⋯[a_0, b_0] \supset [a_1, b_1] \supset [a_2, b_2] \supset \cdots \supset [a_k, b_k] \supset \cdots[a0,b0][a1,b1][a2,b2][ak,bk],而且有
    • bk−ak=12(bk−1−ak−1)=12k(b−a)b_k - a_k = \frac{1}{2}(b_{k-1} - a_{k-1}) = \frac{1}{2^k}(b-a)bkak=21(bk1ak1)=2k1(ba)
    • f(ak)f(bk)<0f(a_k)f(b_k) \lt 0f(ak)f(bk)<0
  • 对于给定精度 ϵ\epsilonϵ,若取 kkk 使得

12k+1(b−a)≤ϵ \frac{1}{2^{k+1}}(b-a) \le \epsilon 2k+11(ba)ϵ

则有 ∣x∗−xk∣≤ϵ|x^* - x_k| \le \epsilonxxkϵ

简单迭代法

  • 思想:通过递推产生一个序列,使其极限为方程的根(逐次逼近)
  • 设方程 f(x)=0f(x) = 0f(x)=0,在 [a,b][a, b][a,b] 内有一根 x∗x^*x,将方程改写为 x=φ(x)x = \varphi(x)x=φ(x),任取 x0∈[a,b]x_0 \in [a, b]x0[a,b] 得到递推公式 xk+1=φ(xk),k=0,1,2,...x_{k+1} = \varphi(x_k), k=0, 1, 2, ...xk+1=φ(xk),k=0,1,2,...,从而得到序列 {xk}k=0∞\{ x_k \}_{k=0}^{\infty}{xk}k=0
  • 📖若任取 x0∈[a,b]x_0 \in [a, b]x0[a,b] 迭代序列 {xk}k=0∞\{ x_k \}_{k=0}^{\infty}{xk}k=0 收敛,则称迭代格式 xk+1=φ(xk)x_{k+1} = \varphi(x_k)xk+1=φ(xk) 收敛,否则称迭代格式发散
  • ek=x∗−xke_k = x^* - x_kek=xxk 为第 kkk 次迭代误差
  • x∗=φ(x∗)x^* = \varphi(x^*)x=φ(x)x∗x^*x 称为不动点
迭代法的收敛性
  • 📖设 φ(x)\varphi(x)φ(x)[a,b][a, b][a,b] 内存在一阶连续导数,且满足:

    • x∈[a,b]x \in [a, b]x[a,b] 时,φ(x)∈[a,b]⇒\varphi(x) \in [a, b] \Rightarrowφ(x)[a,b] 函数值不超过范围
    • 存在正常数 L<1L \lt 1L<1,使得 max⁡a≤x≤b∣φ′(x)∣≤L<1⇒\max_{a \le x \le b}|\varphi^{'}(x)| \le L \lt 1 \Rightarrowmaxaxbφ(x)L<1 导数值不超过范围

    则有以下 2 个结论(部分内容要求证明)

    • x=φ(x)x=\varphi(x)x=φ(x)[a,b][a, b][a,b] 上有唯一实根,记为 x∗x^*x
    • 对任意初值 x0∈[a,b]x_0 \in [a, b]x0[a,b],迭代格式 xk+1=φ(xk)x_{k+1} = \varphi(x_k)xk+1=φ(xk) 收敛,且 lim⁡k→∞xk=x∗\lim_{k \rightarrow \infty}x_k = x^*limkxk=x。且有:

∣x∗−xk∣≤L1−L∣xk−xk−1∣, k=1,2,3,...(3.4)∣x∗−xk∣≤Lk1−L∣x1−x0∣, k=1,2,3,...(3.5)lim⁡k→∞x∗−xk+1x∗−xk=φ′(x∗)(3.6) \begin{aligned} &|x^* - x_k| \le \frac{L}{1-L}|x_k - x_{k-1}|,\ k=1, 2, 3,... && (3.4) \\ &|x^* - x_k| \le \frac{L^k}{1-L}|x_1 - x_0|,\ k=1, 2, 3,... && (3.5) \\ &\lim_{k \rightarrow \infty}\frac{x^* - x_{k+1}}{x^* - x_k} = \varphi^{'}(x^*) && (3.6) \end{aligned} xxk1LLxkxk1, k=1,2,3,...xxk1LLkx1x0, k=1,2,3,...klimxxkxxk+1=φ(x)(3.4)(3.5)(3.6)

  • 😄设方程 x=φ(x)x = \varphi(x)x=φ(x) 在区间 [a,b][a, b][a,b] 上有根,且 min⁡a≤x≤b∣φ′(x)∣>1\min_{a \le x \le b}|\varphi^{'}(x)| \gt 1minaxbφ(x)>1,则对任意 x0∈[a,b]x_0 \in [a, b]x0[a,b],且 x0≠x∗x_0 \ne x^*x0=x,迭代格式发散
  • 对于方程 x=φ(x)x = \varphi(x)x=φ(x),若在 x∗x^*x 的某个邻域 S={x∣∣x−x∗∣≤δ}S = \{ x| |x-x^*| \le \delta \}S={xxxδ} 内,对任意初值 x0∈Sx_0 \in Sx0S 迭代格式 xk+1=φ(xk)x_{k+1} = \varphi(x_k)xk+1=φ(xk) 都收敛,则称迭代法在 x∗x^*x 的附近局部收敛
  • 📖设方程 x=φ(x)x = \varphi(x)x=φ(x) 有根 x∗x^*x,且在 x∗x^*x某个邻域 S={x∣∣x−x∗∣≤δ}S = \{ x| |x-x^*| \le \delta \}S={xxxδ}φ(x)\varphi(x)φ(x) 一阶连续可导,则:
    • ∣φ′(x∗)∣<1|\varphi^{'}(x^*)| \lt 1φ(x)<1 时,迭代格式局部收敛
    • ∣φ′(x∗)∣>1|\varphi^{'}(x^*)| \gt 1φ(x)>1 时,迭代格式发散
  • 设序列 {xk}k=0∞\{ x_k \}_{k=0}^{\infty}{xk}k=0 收敛于 x∗x^*x,并记 ek=x∗−xke_k = x^* - x_kek=xxk。如果存在常数 p≥1p \ge 1p1非零常数 CCC,使得 lim⁡k→∞ek+1ekp=C\lim_{k \rightarrow \infty}\frac{e_{k+1}}{e_k^p} = Climkekpek+1=C,则称该序列是 ppp 阶收敛的
    • ppp 越大,收敛越快
    • p=1p = 1p=10<∣C∣<10 \lt |C| \lt 10<C<1 时,称为线性收敛
    • p>1p \gt 1p>1超线性收敛,特别当 p=2p=2p=2 时,称平方收敛
    • 若迭代序列是 ppp 阶收敛的,则称对应的迭代格式是 ppp 阶收敛的
  • 😄设 φ(x)\varphi(x)φ(x)x∗x^*x 附近的某个邻域内有 p(p≥1)\pmb{p(p \ge 1)}p(p1)p(p1)p(p1) 连续导数,且 φ(k)(x∗)=0,k=1,2,..,p−1; φ(p)(x∗)≠0\pmb{\varphi^{(k)}(x^*) = 0, k=1, 2, .., p-1;\ \pmb{\varphi^{(p)}(x^*) \ne 0}}φ(k)(x)=0,k=1,2,..,p1; φ(p)(x)=0φ(p)(x)=0φ(p)(x)=0φ(k)(x)=0,k=1,2,..,p1; φ(p)(x)=0φ(p)(x)=0φ(p)(x)=0φ(k)(x)=0,k=1,2,..,p1; φ(p)(x)=0φ(p)(x)=0φ(p)(x)=0,则迭代格式在 x∗x^*x 附近是 p\pmb{p}ppp 阶局部收敛的,且有:

lim⁡k→∞x∗−xk+1(x∗−xk)p=(−1)p−1φ(p)(x∗)p! \lim_{k \rightarrow \infty} \frac{x^* - x_{k+1}}{(x^* - x_k)^p} = (-1)^{p-1}\frac{\varphi^{(p)}(x^*)}{p!} klim(xxk)pxxk+1=(1)p1p!φ(p)(x)

:若 p=1p=1p=1,要求 ∣φ′(x∗)∣<1|\varphi^{'}(x^*)| \lt 1φ(x)<1

迭代法的加速(Aitken)

设方程 x=φ(x)x=\varphi(x)x=φ(x) 有根 x∗x^*x,且在 x∗x^*x 附近 φ(x)\varphi(x)φ(x)2 阶连续导数,若迭代格式 xk+1=φ(xk)x_{k+1} = \varphi(x_k)xk+1=φ(xk) 线性收敛,则迭代格式 xk+1=Φ(xk)x_{k+1} = \Phi(x_k)xk+1=Φ(xk) 平方收敛,其中
Φ(x)=xφ(φ(x))−φ2(x)x−2φ(x)+φ(φ(x)) \Phi(x) = \frac{x\varphi(\varphi(x)) - \varphi^2(x)}{x - 2\varphi(x) + \varphi(\varphi(x))} Φ(x)=x2φ(x)+φ(φ(x))xφ(φ(x))φ2(x)

Newton 迭代格式

📖将 f(x)f(x)f(x)xkx_kxk 处 Taylor 展开,整理后可得 Newton 迭代格式
f(x)=0⇒f(x)≈f(xk)+f′(xk)(x−xk)f(xk)+f′(xk)(x−xk)=0⇓xk+1=xk−f(xk)f′(xk), k=0,1,... \begin{aligned} &f(x) = 0 \Rightarrow f(x) \approx f(x_k) + f^{'}(x_k)(x-x_k) \\ &f(x_k) + f^{'}(x_k)(x-x_k) = 0 \Downarrow \\ &\pmb{x_{k+1} = x_k - \frac{f(x_k)}{f^{'}(x_k)},\ k = 0, 1, ...} \end{aligned} f(x)=0f(x)f(xk)+f(xk)(xxk)f(xk)+f(xk)(xxk)=0xk+1=xkf(xk)f(xk), k=0,1,...xk+1=xkf(xk)f(xk), k=0,1,...xk+1=xkf(xk)f(xk), k=0,1,...

  • x∗x^*x 是方程 f(x)=0f(x) = 0f(x)=0m\pmb{m}mmm 重根,则
    • m=1m = 1m=1,即 x∗x^*x 为方程单根时,Newton 迭代二阶局部收敛
    • m≥2m \ge 2m2 时,Newton 迭代一阶(线性)局部收敛

😄证明
f(x)=(x−x∗)mg(x), g(x∗)≠0f′(x)=(x−x∗)m−1(mg(x)+(x−x∗)g′(x))φ(x)=x−(x−x∗)g(x)mg(x)+(x−x∗)g′(x), φ(x∗)=x∗φ′(x∗)=lim⁡x→x∗φ(x)−φ(x∗)x−x∗=lim⁡x→x∗1x−x∗(x−(x−x∗)g(x)mg(x)+(x−x∗)g′(x)−x∗)=1−1m \begin{aligned} f(x) &= (x - x^*)^mg(x), \ g(x^*) \ne 0 \\ f^{'}(x) &= (x - x^*)^{m-1}(mg(x)+(x-x^*)g^{'}(x)) \\ \varphi(x) &= x - \frac{(x-x^*)g(x)}{mg(x) + (x-x^*)g^{'}(x)},\ \varphi(x^*) = x^* \\ \varphi^{'}(x^*) &= \lim_{x \rightarrow x^*} \frac{\varphi(x) - \varphi(x^*)}{x - x^*} \\ & = \lim_{x \rightarrow x^*} \frac{1}{x-x^*}(x - \frac{(x-x^*)g(x)}{mg(x) + (x-x^*)g^{'}(x)} - x^*) \\ & = 1 - \frac{1}{m} \end{aligned} f(x)f(x)φ(x)φ(x)=(xx)mg(x), g(x)=0=(xx)m1(mg(x)+(xx)g(x))=xmg(x)+(xx)g(x)(xx)g(x), φ(x)=x=xxlimxxφ(x)φ(x)=xxlimxx1(xmg(x)+(xx)g(x)(xx)g(x)x)=1m1
所以,当 m=1m=1m=1 时,φ′(x∗)=0⇒\varphi^{'}(x^*)=0 \Rightarrowφ(x)=0 Newton 迭代至少二阶局部收敛;当 m≥2m \ge 2m2 时,∣φ′(x∗)∣<1⇒|\varphi^{'}(x^*)| \lt 1 \Rightarrowφ(x)<1 至少一阶局部收敛

重根处理
  • 😄若 mmm 重根的 m\pmb{m}mmm 已知,迭代可改为

xk+1=xk−mf(xk)f′(xk), k=0,1,... x_{k+1} = x_k - m\frac{f(x_k)}{f^{'}(x_k)},\ k = 0, 1,... xk+1=xkmf(xk)f(xk), k=0,1,...

  • 😄若 m\pmb{m}mmm 未知,记 u(x)=f(x)f′(x)u(x) = \frac{f(x)}{f^{'}(x)}u(x)=f(x)f(x),此时 x∗x^*x 是方程 u(x)=0u(x)=0u(x)=0 的单根,迭代格式如下

xk+1=xk−u(xk)u′(xk), k=0,1,... x_{k+1} = x_k - \frac{u(x_k)}{u^{'}(x_k)},\ k = 0, 1,... xk+1=xku(xk)u(xk), k=0,1,...

Newton 迭代的大范围收敛性

😄设函数 f(x)f(x)f(x) 在区间 [a,b][a, b][a,b]2 阶连续可导,且满足:

  • f(a)f(b)<0⇒f(a)f(b) \lt 0 \Rightarrowf(a)f(b)<0 存在
  • x∈[a,b]x \in [a, b]x[a,b] 时,f′(x)≠0⇒f^{'}(x) \ne 0 \Rightarrowf(x)=0 和下面 f′′(x)f^{''}(x)f(x) 结合起来知道 f(x)f(x)f(x) 单调递增或单调递减
  • x∈(a,b)x \in (a, b)x(a,b) 时,f′′(x)f^{''}(x)f(x) 保号 ⇒\Rightarrow f′(x)f^{'}(x)f(x) 单调
  • a−f(a)f′(a)≤ba - \frac{f(a)}{f^{'}(a)} \le baf(a)f(a)bb−f(b)f′(b)≥ab - \frac{f(b)}{f^{'}(b)} \ge abf(b)f(b)a ⇒\Rightarrow 值在一定范围

则对 ∀x0∈[a,b]\forall x_0 \in [a, b]x0[a,b],Newton 迭代格式
xk+1=xk−f(xk)f′(xk), k=0,1,... x_{k+1} = x_k - \frac{f(x_k)}{f^{'}(x_k)},\ k = 0, 1, ... xk+1=xkf(xk)f(xk), k=0,1,...
收敛到方程 f(x)=0f(x)=0f(x)=0[a,b][a, b][a,b] 内的唯一实根

Newton 法的变形
  • 😄割线法

xk+1=xk−f(xk)f(xk)−f(xk−1)(xk−xk−1), k=1,2,... x_{k+1} = x_k - \frac{f(x_k)}{f(x_k)-f(x_{k-1})}(x_k - x_{k-1}),\ k=1, 2,... \\ xk+1=xkf(xk)f(xk1)f(xk)(xkxk1), k=1,2,...

  • 拟 Newton 法

xk+1=xk−f2(xk)f(xk)−f(xk−f(xk)), k=0,1,... x_{k+1} = x_k - \frac{f^2(x_k)}{f(x_k)-f(x_k - f(x_k))},\ k=0, 1,... \\ xk+1=xkf(xk)f(xkf(xk))f2(xk), k=0,1,...

  • Steffenson 法

xk+1=xk−f2(xk)f(xk+f(xk))−f(xk), k=0,1,... x_{k+1} = x_k - \frac{f^2(x_k)}{f(x_k+f(x_k))-f(x_k)},\ k=0, 1,... \\ xk+1=xkf(xk+f(xk))f(xk)f2(xk), k=0,1,...

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值