第三章 非线性方程求根

3.2 根的搜索

3.2.1 数值求解的一般过程

  • 确定根的大概位置,一般称为"根的搜索";
  • 将结果精细化,通常迭代来完成。

3.2.2 根的搜索

  1. 作图法,譬如将等式两边图像画出,以此确定交点大概位置。
  2. 分析法,利用求导函数、单调性、凹凸性、零点定理等进行分析。
  3. 近似方程法,简化方程的方法,将方程中一些变化很小的量暂时忽略。
  4. 定步长搜索法,依据零点定理,划分区间,将有根区间减小到需要的长度。效率低、易操作。

3.2.3 二分法

依据也是零点定理。

理论分析:假设\(y=f(x)\in C[a,b]\)

给定有根区间\([a,b]\),且\(f(a)\cdot f(b)<0\),如果将区间进行对分,得到的\([a,\frac{a+b}{2}],[\frac{a+b}{2},b]\)中至少有一个是又跟区间。如果\(f(a)\cdot f(\frac{a+b}{2})<0\),取\([a,\frac{a+b}{2}]\)作为有根区间,新的有根区间\([a_1,b_1]\)。重复以上操作。

假设进行了\(n\)次对分,则小区间的长度变为\(\frac{b-a}{2^n}\)

那么可以选取最后一个有根区间的中点作为近似值 \(\frac{b-a}{2^{n+1}}\le\varepsilon\Rightarrow n\ge \log_2{\frac{b-a}{\varepsilon}}-1\)\(n\)一般向上取整。

3.3 不动点迭代法

3.3.1 方法介绍

满足\(x=\varphi(x)\)\(x\)称为映射\(\varphi\)的不动点。

一个不动点迭代算法需要:

  • 合适的初值
  • 恰当的不动点形式

收敛速度:不动点迭代法的收敛速度至少是线性的。设极限\(\lim\limits_{k\rightarrow \infty}\frac{|e_{k+1}|}{|e_{k}|^p}=C\)

  • \(p=1\)\(C<1\),则称迭代格式线性收敛;
  • \(p>1\),则称迭代格式是超线性收敛;

3.3.2 不动点迭代的收敛定理

\(\varphi(x)\in C^1[a,b]\)且满足:

  1. 如果\(x\in[a,b]\),则\(\varphi(x)\in[a,b]\)
  2. 存在\(L<1\),使得\(|\varphi'(x)|\le L<1\)对任意\(x\in[a,b]\)成立。

则如下结论成立:

  1. 存在唯一的\(x^*\in[a,b]\),使得\(\varphi(x^*)=x^*\)
  2. 对任意初值\(x_0\in[a,b]\),迭代\(x_{k+1}=\varphi(x_k)\)收敛且\(\lim\limits_{k\rightarrow\infty}x_{k+1}=x^*\)
  3. 事后误差估计:\(|x^*-x_k|\le\frac{L}{1-L}|x_k-x_{k-1}|\)
  4. 事前误差估计:\(|x^*-x_k|\le\frac{L^k}{1-L}|x_1-x_0|\)
  5. \(e_k=x^*-x_k\)\(\lim\limits_{k\rightarrow\infty}\frac{e_{k+1}}{e_k}=\varphi'(x^*)\),即算法至少是线性收敛。

3.4 Newton法

3.4.1 Newton法的导出

对于\(x_{k+1}=\varphi(x_k)\),若\(\varphi'(x^*)=0\),则迭代格式至少是2阶收敛。

注:已知结论\(\lim\limits_{k\rightarrow\infty}\frac{e_{k+1}}{e_k}=\varphi'(x^*)\). 由Taylor展开,

\(x^*-x_{k+1}=\varphi(x^*)-\varphi(x_k)=\varphi'(x^*)(x^*-x_k)-\frac{\varphi''(\theta_k)}{2}(x^*-x_k)^2=-\frac{\varphi''(\theta_k)}{2}(x^*-x_k)^2\)

所以\(\lim\limits_{k\rightarrow\infty}\frac{e_{k+1}}{e_k^2}=-\frac{\varphi''(x^*)}{2}\)

\(f(x)=0\)有根\(x^*\)\(f(x^*)=0\),对于一般的函数\(f(x)\)一种很容易想到的不动点格式为\(x=x+f(x)\),而一般\(1+f'(x)\)不为零。引入\(h(x)\),并设\(h(x^*)\ne0\),此时\(x=x+h(x)f(x)\)\(\varphi(x)=x+h(x)f(x)\)

求导数有\(\varphi'(x)=1+f'(x)h(x)+f(x)h'(x)\),令\(x^*\)处导数为零,有\(h(x^*)=-\frac{1}{f'(x^*)}\)

得到2阶算法\(x_{k+1}=x_k-\frac{f(x_k)}{f'(x_k)}\)

posted @ 2022-11-30 16:33  uyest  阅读(132)  评论(0)    收藏  举报