第三章 非线性方程求根
3.2 根的搜索
3.2.1 数值求解的一般过程
- 确定根的大概位置,一般称为"根的搜索";
- 将结果精细化,通常迭代来完成。
3.2.2 根的搜索
- 作图法,譬如将等式两边图像画出,以此确定交点大概位置。
- 分析法,利用求导函数、单调性、凹凸性、零点定理等进行分析。
- 近似方程法,简化方程的方法,将方程中一些变化很小的量暂时忽略。
- 定步长搜索法,依据零点定理,划分区间,将有根区间减小到需要的长度。效率低、易操作。
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]\)且满足:
- 如果\(x\in[a,b]\),则\(\varphi(x)\in[a,b]\)
- 存在\(L<1\),使得\(|\varphi'(x)|\le L<1\)对任意\(x\in[a,b]\)成立。
则如下结论成立:
- 存在唯一的\(x^*\in[a,b]\),使得\(\varphi(x^*)=x^*\);
- 对任意初值\(x_0\in[a,b]\),迭代\(x_{k+1}=\varphi(x_k)\)收敛且\(\lim\limits_{k\rightarrow\infty}x_{k+1}=x^*\);
- 事后误差估计:\(|x^*-x_k|\le\frac{L}{1-L}|x_k-x_{k-1}|\)
- 事前误差估计:\(|x^*-x_k|\le\frac{L^k}{1-L}|x_1-x_0|\)
- \(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)}\)

浙公网安备 33010602011771号