引自Numerical Methods Using MATLAB(4版)书籍,如有侵权请联系删除
前言
这一章节主要讲述求这一方程根的不同方法。
学习总结
不动点迭代
我们假设按照这一函数迭代,初始值为
,那么我们接下来会得到序列
。如果这个序列是收敛的,那么能得到一个不动点
使得
。
当时,有以下几条定理:
1、如果满足
,
,那么
在
中有不动点
。
2、如果在
中有定义且对任意
存在
,那么
在
上有唯一不动点
。
当对所有
时,有以下几条定理:
1、如果对任意存在
,那么迭代收敛到唯一不动点,称为吸引不动点。
2、如果对任意存在
,那么迭代无法收敛到不动点,称为反叛不动点。
P46的公式14是如何得到的?
|a-b|<=|a-c|+|c-b|
方法一 二分法
二分法的过程很简单在此不过多赘述。
二分法的定理:
假设,并且存在
使得
。如果
和
符号相反,且
代表二分过程中中间点序列,那么有
且有
二分法的优点:
可以提前预估解的精确度。假设重复次二分,那么我们通过以下能够保证
近似于解,且误差少于
:
proof.
方法二 错位法
因为二分法收敛得比较慢,所以我们发明了错位法。
错位法的原理:
该方法连接和
两点,其连线在
轴的交点取为
,然后和二分法一样,
与哪个端点互为相反数,则更新区间。
其中求的公式如下:
其中,二分法的误差err=abs(b-a),错位法的误差err=abs(b-a)/2
但是错位法的误差为什么是这样的呢?证明?
逼近区域的初始化和收敛标准
上述方法都是全局收敛的,但如果在区间内有多个解,那么我们就需要更小的区间分别来寻找这些解。接下来会描述Newton-Raphson和割线法来求解,这两种方法都是求局部收敛的。这种局部收敛会收敛得更快。有部分算法会结合这两种类型的算法,在开始使用全局收敛,当接近根的时候再使用局部收敛。
作图是一种方法。但是计算机有时候也会遇到精确度不够的特殊情况,我们需要考虑到。与此同时,由于计算机精度有限,我们可能会遇到的情况,这时候我们需要判断附近
和
两点斜率是否相反,相反才行。
即,判断根,一个是两边符合相反,一个是两边斜率相反且
。
对于计算机求根,我们需要一个算法来判断什么时候循环终止,因此我们需要制定数值,防止死循环,同时也要保持一定精度。我们可以有以下两种评判标准:
(其中,第二种标准为什么不是直接除,是为了防止除0现象。)
解误差与残差的区别
如图,解误差是的误差,残差是
的误差。一般情况下我们很难得到
,所以解误差少用。
方法三 Newton-Raphson法
如果f(x),f'(x),f''(x)在根p附近连续,那么我们可以使用更快的算法来收敛,其中Newton-Raphson法就是其中最有用和最出名的算法之一。牛顿法并不能保证找到根,也会出现循环或发散的情况。
Newton-Raphson法的原理
假设,且
,
。如果
,则存在
使得序列
满足以下公式:
其中序列最终收敛到,且
。
且根据不动点迭代的原理,需满足
proof.
非常逼近
Newton-Raphson法的推论
可以用来找平方根,这个推论的重点在于函数g(x)只能有简单的加减乘除运算,如果有根号运算,可能会陷入循环,因此我们采用这种推论求根号。
假设且
,有
使得。
proof.
设,再用牛顿法求根迭代。
根的定义
假设及其
阶导数
在
上有定义且连续,并当且仅当
则我们称在
上有
个根。
且存在一个连续函数可以表达为
收敛速度
如果p是单根,那么牛顿法可以快速收敛,每次迭代精确的小数位数都可以翻倍。如果p是多根,每次后继误差都是前面误差的一部分。这里是为什么?
假设收敛到
,且有
(解误差,可以用残差代替)。如果正常量
,
存在,则
其中为序列收敛到
的阶数,
为渐进误差常量。
当时,一般有
,称为线性收敛。
当时,一般有
为常量即可,称为平方收敛。
越大,收敛得越快。
牛顿法收敛速度的定理
如果是单根,收敛速度是平方的,
。
如果是
根,收敛速度是线性的,
。
加速牛顿法的收敛速度
牛顿法是线性收敛到根的,为了加速,我们可以使用以下公式产生序列平方收敛到根:
方法四 割线法
割线法与错位法几乎是一样的,但是错位法是在缩小区间,割线法是在快速找点。其单根收敛阶数为 R ≈ 1.618033989。
方法五 Aitken's Process
牛顿法中对于多根收敛速度是线性的,而使用加速牛顿法,得提前知道根的个数。因此我们提出一些其他方法来加速。
定义
对于收敛数列,定义
。而
。
举例:。
定理
假设数列线性收敛到
,且对所有
有
。如果这里存在一个实数
,有
使得
则我们可以定义数列有
通过我们可以知道
收敛要快于
。
方法六 Muller's Method
该方法是割线法的另一种演绎,只是减去了导数的计算,但需要三个点。该方法比割线法快甚至几乎和牛顿法一样快,但会涉及复杂一点的运算。
假设是最近似
的点,定义变量
,
,
。
定义二元方程。
代入,我们可以分别得到以下式子:
通过以上式子我们求得。然后求根
。最后可得
。在之后的迭代中,我们舍去
中离
最远的点,并将
。
词汇学习
spherical 球形
corollary 必然的
oscillate 摆动
interval 间隔的
consecutive 连续的
leisure 休闲
concavity 凹
slope 坡
quotient 商
secant 割线
projectile 弹丸
elapse 过去
fitfall 健身
lemma 引理
asymptotic 渐进的
parabola 抛物线
auxiliary 辅助的