Numberical Analysis Notes

第一章 非线性方程的解法

1.1非线性方程根的概念

$$f(x)=0$$

若$f(x)$是n次多项式,则称上式为n多项式方程 ;若$f(x)$是超越函数(包括对数、指数、三角函数),则称上式为超越方程。一般我们只需得到有一定精度要求的根的近似值就可以了。

对上述方程求根分为三个步骤:

  • 根的存在性 :方程是否有根以及根的个数
  • 根的隔离 :把有根区间分为较小的子区间,每个子区间有一个或者没有根。这样可以将有根子区间内的任一点都可以看成是该根的一个近似值。
  • 根的精确化 :对根的某个近似值逐步精确化,使满足精度要求。

1.2非线性方程求根的数值方法

1.2.1二分法


若函数$f(x)$在$[a,b]$上连续,且$f(a)f(b)<0$,根据连续函数根的存在性定理 ,方程$f(x)$在$(a,b)$ 上一定有实根,称该区间为有根区间,设$(a,b)$内只有一个根$\alpha$

计算过程及分析:

取区间$[a,b]$中点$x_0=\frac{a+b}{2}$ ,并计算中点的函数值$f(x_0)$ ,判断若$f(a)f(x_0)>0$ ,新的有根区间为$[a_1, b_1]=[a, x_0]$ ;若$f(a)f(x_0)=0$,则$x_0$即为所求的根;若$f(a)f(x_0)<0$,则新的有根区间为$[a_1, b_1]=[x_0, b]$ 。此过程一直进行下去。

$[a_n, b_n]$的区间长度为$$b_n-a_n=\frac{b_{n-1}-a_{n-1}}{2}=…=\frac{b-a}{2^n}$$

取最后一个区间的中点$x_n$作为方程根的近似值$$x_n=\frac{a_n+b_n}{2}$$

对给定的小数$\epsilon>0$ ,要使误差估计式$$|a-x_n|=\frac{b_n-a_n}{2^{n+1}}<\epsilon$$

得到$$n=[\frac{ln(b-a)-ln\epsilon}{ln2}]$$

二分法的优缺点:

  • 优点:计算过程简单;收敛性可保证;对函数的性质要求低,只要求连续
  • 缺点:收敛速度慢;不能求偶数重根、复根和虚根;对计算的函数值只利用了符号,是一种浪费

1.2.2迭代法


通过构造一个递推关系式(迭代格式)计算出根的近似值序列,并要求该序列收敛于方程的根。

将方程$f(x)=0$化为等价方程$x=\phi(x_i), i=0,1,2,…$产生序列${x_i}$。如果该序列收敛于$\alpha$,则$\alpha$一定满足上述等价方程,为方程的根。

示例:

$f(x)=xe^x-1=0$ 改写为$x=e^{-x}$ ,构造迭代格式为$x_{i+1}=e^{-x_i}$

  • 单点迭代法 :仅需一个初始值$x_0$
  • 多点迭代法:一般形式为$x_{i+1}=\phi_i(x_i,x_{i-1},…,x_{i-n+1}), i=0,1,2,…$
  • 非定常迭代 :迭代函数$\phi_i$ 随迭代次数$i$变化
  • 定常迭代:$\phi_i=\phi$不随迭代次数变化

迭代法考虑的主要问题

  1. 收敛性

    • 全局收敛性 :设$\alpha$为$f(x)=0$的根,如果$\forall x_0\in[a,b]$,由迭代法产生的序列都收敛于根$\alpha$
    • 局部收敛性 :设方程$x=\phi(x)$有根$\alpha$,如果存在$\alpha$的某个邻域$\bigtriangleup:|x-\alpha|\leq\delta$,对任意初值$x_0\in\bigtriangleup$,迭代过程所产生的序列均收敛于根$\alpha$
  2. 收敛速度

    设迭代过程产生的序列收敛于方程的根$\alpha$,记$e_k=\alpha-x_k$,若$$\lim_{k\to\infty}\frac{|e_{k+1}|}{|e_k|^p}=C\neq0$$,则称迭代过程是p阶收敛的 。特别的,当$p=1$时,成为线性收敛;当$p>1$时,称为超线性收敛 ;当$p=2$时,称为平方收敛 。$p$越大,收敛越快。

  3. 计算效率

    效率指数 :$EI=p^{\frac{1}{\theta}}$ 其中,$p$表示迭代的收敛阶,$\theta$表示每步迭代的计算量。$EI$越大,计算效率越高。

不动点迭代法(单点迭代法)

迭代公式是否收敛,与迭代函数$\phi(x)$的形式有关。例子:

求方程$9x^2-\sin x-1=0$ 在$[0,1]$内的根,可将该方程化为等价方程$x=\frac{1}{3}\sqrt{\sin x+1}$,于是迭代函数为$\phi (x)=\frac{1}{3}\sqrt{\sin x+1}$ ,在区间内任取一个初始值$x_0$,如0.4,迭代可收敛于根$\alpha=0.391846907$ 。然而当原方程写为$x=arcsin(9x^2-1)$ 时,迭代却是发散的。

定理1.1(不动点迭代法的整体收敛性) 设$\phi(x)$在$[a,b]$上具有一阶导数,且

(1)当$x\in[a,b]$ 时,$\phi (x)\in [a,b]$

(2)$\forall x \in [a,b]$ ,有$|\phi’(x)|\leq L<1$

则对任意初值$x_0\in[a,b]$,迭代过程$x_{k+1}=\phi (x_k)$ 收敛于$x=\phi(x)$ 在$[a,b]$上的唯一根

定理1.2(不动点迭代法的整体收敛性) 设$\phi(x)$满足

(1)当$x\in[a,b]$时,$\phi(x)\in[a,b]$

(2)$\forall x_1,x_2\in[a,b]$有:$\phi(x_1)-\phi(x_2)\leq L|x_1-x_2|, L<1$

则对任意初值$x_0\in[a,b]$,迭代过程$x_{k+1}=\phi(x_k)$ 收敛于$x=\phi(x)$ 在$[a,b]$上的唯一根,且有误差估计式

$$\begin{cases}|\alpha-x_k|\leq \frac{L}{1-L}|x_k-x_{k-1}|\|\alpha-x_k|\leq \frac{L}{1-L}|x_1-x_0|\end{cases} $$

例1:求方程$xe^x-1=0$ 在$[\frac{1}{2}, ln2]$中的根

解:改写方程为$x=e^{-x}$,构造迭代格式$x_{i+1}=e^{-x_i}$ ,迭代函数为$\phi(x)=e^{-x}$ 。$\because \phi’(x)=-e^{-x}<0 \therefore \phi(x)$是单调下降函数,得$\phi(x)\in[\frac{1}{2},ln2]$ ,而$|\phi’(x)|=|-e^{-x}|\leq e^{-\frac{1}{2}}<1$ ,根据定理1.1,方程在区间$[\frac{1}{2}, ln2]$上存在唯一的根切迭代收敛。取初值为$x_0=0.5$ ,迭代计算结果为$x_0=0.50000,x_1=0.606531,x_2=0.545239,…,x_23=0.567143$

定理1.3(不动点迭代法的局部收敛性) 若$\phi(x)$在方程$x=\phi(x)$的根$\alpha$的邻域内有一阶连续的导数,且$|\phi’(\alpha)|<1$ ,则迭代过程$x_{k+1}=\phi(x_k)$具有局部收敛性。

定理1.4(不动点迭代法的局部收敛阶) 若$\phi(x)$ 在方程$x=\phi(x)$的根 $\alpha$ 的邻域内有充分阶连续的导数,则迭代过程$x_{k+1}=\phi(x_k)$在$\alpha$邻域是$p$阶收敛的充分必要条件是$$\phi^{(j)}(\alpha)=0, j=1,2,,…,p-1 \ \phi^{(p)}(\alpha)\neq 0$$

例2:能否用迭代法求解方程$x=4-2^x$ ,若不能,将方程改写为能用迭代法求解的形式

解:方程为$x-4+2^x=0$ ,设$f(x)=x-4+2^x$ ,则$f(1)<0, f(2)>0, f’(x)=1+2^xln2>0$,所以方程$f(x)=0$在区间$(1,2)$内有唯一根。题目中$\phi(x)=4-2^x$,当$x\in[1,2]$时,$|\phi’(x)|=|-2^xln2|\geq2ln2>1$,根据定理1.3,不能用来迭代求根。

把原方程改写为$x=ln(4-x)/ln2$ ,此时$\phi(x)=ln(4-x)/ln2$ ,则有当$x\in[1,2]$时,$\phi(x)\in[1,ln3/ln2]\subset[1,2]$ 且$\forall x\in[1,2]$ ,有$|\phi’(x)|=|\frac{-1}{4-x}\cdot\frac{1}{ln2}|\leq\frac{1}{4-2}\cdot\frac{1}{ln2}=\frac{1}{2ln2}<1$ ,由定理1.3知可用迭代公式$x_{k+1}=ln(4-x_k)/ln2$ 来求解

Newton迭代法

设有方程$f(x)=0$,在其根$\alpha$附近任取一点$x_0$作为初始近似根,由迭代公式$$x_{k+1}=x_k-\frac{f(x_k)}{f’(x_k)} (k=0,1,2,…)$$ 逐次逼近方程的根,又称切线法

定理1.5(Newton迭代法的全局收敛性) 设$f(x)$在有根区间$[a,b]$上二阶导数存在,且满足:

(1)$f(a)f(b)<0$ (保证根的存在)

(2)$f’(x)\neq0, x\in[a,b]$ (单调,根唯一)

(3)$f’’(x)$不变号,$x\in[a,b]$ (凹凸性不变)

(4)初值$x_0\in[a,b]$且使$f’’(x_0)f(x_0)>0$ (保证$x\in[a,b]$时,$\phi(x)=x-\frac{f(x)}{f’(x)}\in[a,b]$ )

则Newton迭代法收敛于$f(x)=0$在$[a,b]$内的唯一根f