介绍
我们这个章节主要针对的是解的近似值,对于$n<5$的n次多项式来说,我们总是可以得到他的解析解,但$5$次以上的方程是不存在解析解的,具体的情况可以在我的github上的抽象代数(群2\wcfcbkj.pdf中找到答案。)但,我们给计算机输入一个方程后,他可以给出一个精度不错的零点,这意味着虽然没有准确的解析解,但我们还是可以通过一些方法得到解的近似值。
在基本的微积分课程上我们学过了线性化近似了,实际上那个我们也叫做牛顿法,它的极限叫微分。它是这样操作的:
- 选择一个靠近解的点$z_0$,设为$s$
- 然后定义$z_1 = z_0 - f(z_0)/f’(z_0)$,并归纳的定义$z_{n+1} = z_n - f(z_n)/f’(z_n)$
这意味着若$z_0$足够靠近根$s$,则序列$\{z_n\}$收敛到$s$
从几何上看,若我们尝试用$s$去近似方程$f(x)=0$,则我们有一个不错的解释。设$(x_0,f(x_0))$是位于函数$y=f(x)$上的点$P$,则函数在$P$上的切线由等式$L(x) = f(x_0)+f’(x_0)(x-x_0)$给出。因此$x_1 = x_0 - f(x_0)/f’(x_0)$。
所以,$x_{n+1}$就是$y= f(x)$在$(x_n,f(x_n))$处 的切线,一般来说这是收敛的,但问题在于。如果序列收敛,它的收敛速度有多快,$x_0$如何足够的接近根$s$,并且为什么这个几何解释在复平面上有效?
不动点迭代
我们给定一个方程$z = g(z)$,则它的解$s$是一个$g$上的不动点。在适当的条件下,近似不动点是可以通过定义$z_{n+1} = g(z_n)$的递归实现,这个过程我们称为不动点迭代。
引理1
令$s$是等式$z = g(z)$的根,对某个解析函数$g$,设$z_0$在圆盘$D(s; r)$中。其中$s$是圆心而$r$是半径。且始终有$\mid g’(z)\mid \leq K$,令$z_1 = g(z_0) $。则$\mid z_1 - s\mid \leq K\mid z_0-s\mid $
证明: 我们记$\mid z_1 - s\mid = \mid g(z_0) - g(s)\mid $,利用复版本上的微积分定理,则
我们选择积分路径为$s$到$z_0$的直线,利用$M-L$方程就可以得到了。
定理
令$s$是$z = g(z)$的根,对某个解析函数$g$,设$z_0$在$D(s;r)$中。且始终有$\mid g’(z)\mid \leq K < 1$,定义序列$\{z_n\}$定义为如下递归:$z_{n+1} = g(z_n);n =0,1\cdots$,则$n\to\infty$ 有$\{z_n\} \to s$
证明: 利用上述引理,我们有
因此,利用归纳法,当我们迭代了$n$次之后就可以得到不等式$\mid z_n-s\mid \leq K^n\mid z_0 - s\mid $。由于$K < 1$,这意味着当$n\to\infty$,则$\mid z_{n+1}-s\mid \to 0$,因此$\{z_n\} \to s$
推论
令$s$为等式$z=g(z)$的根,对某个解析函数$g$有$\mid g’(s)\mid < 1$,则这里存在一个形如$D(s;r)$的圆盘使得若$z_0 \in D(s;r)$并且定义$\{z_n\}$是由递归$z_{n+1} = g(z_n)$得到的序列,其中$n=0,1,\cdots$。若$n\to \infty$则 $\{z_n\} \to s $
证明 由于$\mid g’(s)\mid < 1$,则存在一个常数$K$使得$\mid g’(s)\mid < K < 1$。由于$g’$是解析的,则这里存在一个圆盘$D(s;r)$使得$\mid g’(z)\mid < K$
我们令$\epsilon_n = \mid z_n-s\mid $表示第$n$个误差项,那么我们知道在适当的值$z_0$下,误差序列满足不等式
若我们选择$K = \frac{1}{2}$,在3或4次迭代后,误差将减少$\frac{1}{10}$。满足上述不等式的迭代方案我们称为线性收敛。获得第$n$个小数位精度所需要的迭代次数大致与$n$成正比。
并且我们发现,收敛的一个重要条件是$\mid g’(s)\mid < 1$。那么有一个问题,我们如何让一个我们熟悉的方程$f(z) =0$可以被重写为一个关于不动点的方程$z = g(z)$。简单的方法就是我们将$z$添加到等式两边,但我们如何在未知解处$s$添加初始条件$\mid g’(s)\mid < 1$呢,答案就是利用一开始我们提出的牛顿法。那么令不动点算法是牛顿法,我们就结束了这个证明。
引理2
若$f$是解析函数且在$z =s$上有一个$k$重零点,再令$g(z) = z-f(z)/f’(z)$。则$g$在$s$处也是可解析的并且$g’(s) = 1-\frac{1}{k}$
证明: 由题设,$f(z) = (z-s)^k h(z)$,其中$h(s)\neq 0$,那么
因此$f/f’$在$s$是解析的,那么它在$s$处的展开是$\frac{1}{k}(z-s)+a_2(z-s)^2+\cdots$,$g’(z) =\frac{dg}{dz}(z-\frac{f(x)}{f’(x)}) $,利用展开我们就得到了$g’(s) =1- \frac{1}{k}$
定理
令$s$是$f(z)$的根,再令$g(z) = z-f(z)/f’(z)$并且有$g’(s)=0$。并定义$\{z_n\}$是由$z_{n+1} = g(z_n)$递归得到的,其中$n =0,1,\cdots$,则这里存在圆盘$D(s;r)$使得$z_0\in D(s;r)$可以推出$n\to \infty$有$\{z_n\} \to s$
若$f(z)$有一个单根(重数为1)则利用引理2,就有$g’(s) = 1-1/1 = 0$。
引理3
令$s$是$z = g(z)$的根,它对某个解析函数$g$使得$g(s)=0$。设$z_0$在圆盘$D(s;r)$中始终满足
且再令$z_1 =g(z_0)$。则$\mid z_1 -s\mid \leq \frac{1}{2}M\mid z_0-s\mid^2$
证明: 由引理1,我们注意有$z_1-s = g(z_0)-g(s) = \int^{z_0}_s g’(z)dz$,而对于任意位于线$[s,z_0]$上的点$z$,我们可以写为
令$\Delta z = (z_0-s)/n$并写为
我们应用$M-L$方程在这个方程级数上,并且使用我们一开始(2)得到的估计值表明了$\int^{z_0}_s g’(z)dz$是有界的。那么我们已经得到这个二阶导的积分是$M\mid z-s\mid $,利用引理1,我们把积分的下限放缩到$s$,所以我们实际上有
$dz$近似为$\Delta z$,则我们得到
令$n\to \infty$,就得到我们想要的证明了。
定义 二次收敛
若$\epsilon_n = \mid z_n-s\mid $满足$\epsilon_{n+1} \leq K\epsilon^2_n$,则我们说序列$\{z_n\}$二次收敛到$s$
定理
若$f(z)$在$s$上存在简单根(重数为1),并且$z_0$足够的接近$s$,牛顿法将得到一个二次收敛到$s$的序列。