首先给出一个基础的数学定理
设 在闭区间 上连续,且
则 在 与 之间至少有一个根满足
基于以上原理,我们就能提出第一种近似求根办法:二分法
二分法 The Bisection Method
首先确定范围满足,取,看
- 如果,说明根在,令;
- 如果,说明根在,令;
重复以上步骤,直到区间已经够短,则输出
误差分析 Error Analysis
通过二分法,我们得到一系列区间 ,递增有上界,递减有下界
因此极限存在且相等,也就是 的一个根。
而二分法每次区间长度减半,则
那么对于n步后,误差界即为
若误差小于半个单位(第 位小数),就称解 精确到 位小数:
代入上式,我们就可以得到
这也就是我们根据区间和精确位数来确定二分法步数n的办法
在 上求根,要求精确到 6 位小数。
代入上式
化简
因此取整数 步
不动点迭代 Fixed-Point Iteration(FPI)
定义
若 ,则称实数x 是函数 F 的不动点。
迭代中的收敛
全局收敛定理
考虑 ,F 是定义在闭区间 上的连续函数,若
- (也就是F把区间映进自己)
- 存在 ,使得对所有 ,(也就是导数全部小于 1)
则对 任意 初值 ,迭代都收敛到 在 上的 唯一 不动点 。
因此这个函数几乎处处收敛,含不动点附近
因此这个函数处处收敛,含不动点附近。
局部收敛定理
若F连续可微,,且
则只要初值足够靠近 ,不动点迭代就会局部收敛。 常称为渐近收敛因子 Asymptotic convergence factor。
若真根 ,判断下面三个函数迭代是否收敛
(a)
(b)
(c)
(a) 发散
(b) 收敛,每步大约乘
(c) 收敛,比b快
作业
用二分法求方程在 上的近似根。要使近似根与真根的误差不超过 ,需要多少步?
答案:
判断下面的迭代格式能不能用来求近似解。若不能,改成能收敛的形式。
答案:
给出一个不动点迭代格式,用来求方程在 附近的近似解。
答案:
收敛率 Convergence Rate
PPT上列出了这几种收敛率
- …(比线性慢)
- 线性收敛 Linear Convergence
- 二次收敛 Quadratic Convergence(比线性收敛更快)
- …(快于二次)
线性收敛
设 是第 步的误差(通常 )。若存在收敛率 ,使得
则称该方法 线性收敛,收敛率为 .
- 越小,线性收敛越快;
- :误差同号,从一侧靠近;
- :误差正负交替(振荡靠近);
- 不算线性,属于更快的超线性(例如等下要讲的Newton)
二次收敛
若
则称该迭代二次收敛
一般收敛率 rate of convergence
是 ,误差 。若存在 和 ,使得
则称迭代 的 收敛率为 。
由之前定义我们可知,
- 当时,线性收敛
- 当时,二次收敛
我们还可以通过连续对F进行求导来判断它是什么收敛:
设 是不动点,在邻域 内 有直到 阶的连续导数,并且
则该迭代局部 阶收敛,收敛率为 。
FPI 的线性收敛
设 连续可微,,且
则当初值足够靠近 时,不动点迭代线性收敛到该不动点,收敛率就是
解释为什么对 ,不动点迭代会收敛。
不动点满足 且其不是 或其整数倍,因此,可得
由局部收敛定理,FPI 收敛。
求函数的不动点:
解
两个不动点:和 。导数
因此:不会收敛到 ;局部收敛到
用 FPI 计算
是 的一个根,ppt给了三种写法
(1)
(2)
(3)
结论:
牛顿法 Newton’s Method
首先给出公式
当 时公式不可用。
设 ,二阶连续可微。若,则牛顿法局部二次收敛到 。渐近常数为
即
若 ,一般会退回线性收敛。
要理解这个,我们先来看重根
重根 multiplicty root
是 的 重根 当且仅当 前 阶导数在该点都为 0,第 阶不为 0:
- m=1时,单根,但 (即牛顿二次收敛的条件)
- m≥2时,重根,曲线在根处与 轴相切(甚至更平)。
若 是 次连续可微,且 是 重根,则牛顿局部线性收敛,且收敛率满足
我们可以得到
求方程的 牛顿迭代式:
由题目条件已知
代入
求 的正根 ():
由题目条件可得
代入迭代公式
求 作为函数的根的重数,并估计 Newton 要多少步才能精确到 6 位小数()
在 处逐阶求导
所以
r=0,,故
由题目条件可知,我们可得
因此步
对于函数,牛顿是否二次收敛到根 ?并求
在 处逐阶求导
所以 ,牛顿局部线性收敛,且
修正牛顿法 Modified Newton’s Method
为了解决重根只会线性收敛的问题,我们提出修正办法:步长乘上重数
若 在含根区间 上 次连续可微, 是 重根(),则
局部二次收敛到
对比:
作业
给出计算 的 Newton 迭代,且公式里 不要出现开方和除法。
答案:
设计 不用除法 的算法计算 (),再用它算 。
答案:
割线法 Secant Method
割线法和牛顿法很相似,它使用最近两点的差商代替导数,因此需要两个初值
对单根来说,割线法是超线性(superlinear)——比线性快、比二次慢。常见的收敛率是黄金比
敏感问题(感觉不太重要?)
若输入(方程)只改一点点,输出(根)却动很大,就称问题敏感(sensitive)。用 误差放大因子 和 条件数 来定量。
假设
- 原方程 ,真根为 ;
- 输入加上小扰动 ( 很小);
- 根变成 ,满足
在 处把 使用泰勒展开到一阶:
丢掉 ,并用 :
若 很小且 ,分母里的 可略,得到框中的主公式:
根的扰动与 成正比,放大倍数大约是 。越接近 0,问题越敏感。
等价地
这其实来自 ,是线性近似的另一写法
敏感性主要还是看上面的