Skip to main content

6. 非线性方程

Course NotesNumerical AnalysisAbout 2 minAbout 721 words

6.1 对分法

6.1.1 对分法基本思想

定理 6.1

f(x)f(x)[a,b][a, b] 内连续, 且 f(a)f(b)<0f(a) f(b) < 0, 则在 (a,b)(a, b) 内至少存在一点 ξ\xi, 使得 f(ξ)=0f(\xi) = 0.

算法 6.1
  1. 给定函数 f(x)f(x) 和求解区间 [a,b][a, b], 以及精度要求 ξ>0\xi > 0
  2. a1=aa_1 = a, b1=bb_1 = b
  3. 计算 f(a1)f(a_1)f(b1)f(b_1), 如果 \absf(a1)<ξ\abs{f(a_1)} < \xi, 则返回数值解 x=a1x = a1 并停止计算; 如果 \absf(b1)<ξ\abs{f(b_1)} < \xi, 则返回数值解 x=b1x = b_1 并停止计算; 如果 f(a1)f(b1)>0f(a1) f(b1) > 0, 则输出算法失败信息并停止计算
  4. for k=1,2,,k = 1, 2, \dots, do
  5. 计算 xk=ak+bk2x_k = \frac{a_k + b_k}{2}f(xk)f(x_k)
  6. 如果 \absf(xk)<ξ\abs{f(x_k)} < \xi 或者 \absbkak<ξ\abs{b_k - a_k} < \xi, 则返回数值解 xkx_k 并停止计算;
  7. 如果 f(ak)f(xk)<0f(a_k) f(x_k) < 0, 则令 ak+1=aka_{k + 1} = a_k, bk=xkb_k = x_k; 否则令 ak+1=xka_{k + 1} = x_k, bk+1=bb_{k + 1} = b;
  8. end for

关于对分法的几点注记

  • 适用范围: 只适合求连续函数的 单重实根奇数重实根;
  • 优点: 简单易用, 只要满足介值定理的条件, 算法总是收敛的;
  • 缺点:
    1. 收敛速度较缓慢;
    2. 不能求复根和偶数重根;
    3. 一次只能求一个根;
  • 总结: 一般可先用来计算解的一个粗糙估计, 然后再用其他方法进行加速, 如 Newton 法.

6.2 不动点迭代法

6.2.1 收敛性分析

定理 6.3 不动点的唯一存在性

φ(x)C[a,b]\varphi(x) \in C[a, b] 且满足

  1. 对任意 x[a,b]x \in [a, b], 都有 φ(x)[a,b]\varphi(x) \in [a, b],

  2. 存在常数 LL, 满足 0<L<10 < L < 1, 使得对任意 x,y[a,b]x, y \in [a, b] 都有

    \absφ(x)φ(y)L\absxy, \abs{\varphi(x) - \varphi(y)} \leqslant L \abs{x - y},

φ(x)\varphi(x)[a,b][a, b] 上存在唯一的不动点.

定理 6.4 不动点迭代的全局收敛性

φ(x)C[a,b]\varphi(x) \in C[a, b] 且满足

  1. 对任意 x[a,b]x \in [a, b], 都有 φ(x)[a,b]\varphi(x) \in [a, b],

  2. 存在常数 LL, 满足 0<L<10 < L < 1, 使得对任意 x,y[a,b]x, y \in [a, b] 都有

    \absφ(x)φ(y)L\absxy \abs{\varphi(x) - \varphi(y)} \leqslant L \abs{x - y}

则对任意初始值 x0[a,b]x_0 \in [a, b], 不动点迭代收敛, 且

\absxkxL1L\absxkxk1Lk1L\absx1x0, \abs{x_k - x_*} \leqslant \frac{L}{1 - L} \abs{x_k - x_{k - 1}} \leqslant \frac{L^k}{1 - L} \abs{x_1 - x_0},

其中 xx_*φ(x)\varphi(x)[a,b][a, b] 内存在唯一的不动点.

推论 6.5

φ(x)C1[a,b]\varphi(x) \in \mathcal{C}^1[a, b] 且对任意 x[a,b]x \in [a, b], 都有 φ(x)[a,b]\varphi(x) \in [a, b]. 如果存在常数 LL, 使得

\absφ(x)L<1,x[a,b] \abs{\varphi'(x)} \leqslant L < 1 \qc \forall x \in [a, b]

则对任意初始值 x0[a,b]x_0 \in [a, b], 不动点迭代收敛, 且

\absxkxL1L\absxkxk1Lk1L(x1x0). \abs{x_k - x_*} \leqslant \frac{L}{1 - L} \abs{x_k - x_{k - 1}} \leqslant \frac{L^k}{1 - L} \pqty{x_1 - x_0}.

定理 6.6

xx_*φ(x)\varphi(x) 的不动点, 若 φ(x)\varphi'(x)xx_* 的某个邻域内连续且

\absφ(x)<1, \abs{\varphi'(x_*)} < 1,

则不动点迭代局部收敛.

6.2.2 收敛阶