当前课程知识点:数值分析 >  第八章 非线性方程的求解 >  8.1 Romberg求积公式、Gauss型求积公式 >  Romberg求积公式、Gauss型求积公式

返回《数值分析》慕课在线视频课程列表

Romberg求积公式、Gauss型求积公式在线视频

下一节:简单迭代法的加速、牛顿法与弦截法

返回《数值分析》慕课在线视频列表

Romberg求积公式、Gauss型求积公式课程教案、知识点、字幕

大家好

我是北京理工大学的满洪英老师

今天我们来学习第八章非线性方程求根

在本章 我们主要讨论这样一些方程

f(x)=0的根

其中fx是一个非线性函数

如f(x)是这样的一个五次多项式

或者f(x)=e2x+1-xln(sinx)-2这样的非线性函数

我们首先给出一个方程重根的概念

如果一个函数

f(x)在a点等于零

即f(a)=0

f在a点的一阶导数等于0

二阶导数等于0 一直到k-1阶导数等于0

但是 它在a点的k阶导数不等于0

这样的话 我们就称

x=a是方程的一个k重根

或者是函数f(x)的一个k重零点

如果a是f(x)的k重根

等价于我们可以把函数f(x)分解为

(x-a)的k次方乘以Ф(x)

其中Ф在a点的函数值不等于0

首先我们来讨论求解非线性方程的

对分区间法 即二分法

对分法的原理是

如果一个函数f(x)在闭区间上连续

它在区间的两个端点的函数值异号

即f(a)·f(b)<0

根据根的存在性定理

f在(a b)上必然有一个根

而这个区间[a b]我们称为方程f(x)=0的一个有根区间

在下文中

我们假设x*是方程f(x)=0它的一个根

二分法是怎么来进行的

首先 我们不妨假设f(a)<0 f(b)>0

我们取区间ab的中点为x0等于2分之a+b

如果f(x₀)=0

x0即为这个方程的根

即x*=x0

如果f(x0)<0

那这个时候

我们取a₁=x0 b₁=b

那这个时候

a₁ b₁就是我们一个新的有根区间

如果f(x0)>0

我们取a₁=a b₁=x0

那这个时候

a₁ b₁也是我们的一个有根区间

我们可以继续做下去

以[a₁ b₁]作为新的有根区间

我们来取它的中点

为x₁=(a₁+b₁)/2

我们通过判断x₁这个点

它的函数值是否是等于零

或者大于零 或者小于零

得到新的有根区间[a₂ b₂]

依次下去我们可以得到一个有根区间序列

即ab包含a₁ b₁

包含a₂ b₂

一直包含an bn

这个时候我们即可以取xn

等于(an+bn)/2

即an bn这个区间的中点

作为第n个近似值

我们分析一下

如果我们选择有根区间的中点作为根的近似的话

误差是什么样子的

我们首先来看第0步产生的误差

这时候x0是(a+b)/2

那因此x0-x*

即近似解和真解 它的差的绝对值是小于等于(b-a)/2

第k步产生的近似解xk

与真解x*的误差

应该是小于等于

[ak bk]这个小区间

它的长度的一半

即2的k+1次方分之b-a

有了这个误差估计之后

对于给定的一个精度ε

我们即可以由误差来估计二分法所需要的

对分的步数k

即求解这个不等式

b-a除以2的k+1次幂

小于ε就可以得到

这个需要对分的步数k

应该大于[ln(b-a)-lnε]除以ln2减掉1

这个 就是我们来求解

一个方程f(x)=0的二分法

二分法 它的优点是非常简单

而且

对函数f(x)它的要求不高

只需要是一个连续函数即可

它的缺点

是无法来求复数根

以及偶数重根的情况

第二个缺点

是这个方法它的收敛速度比较慢

因此二分法主要用于给出

其它近似迭代方法的初值

下面我们来看一个例子

我们用二分法来求方程f(x)=x³+10x-20=0

它的唯一实根

要求误差超不过0.5乘以10的-4次方

我们要用二分法 首先

要给出一个有根区间

我们这里验证f(1)是小于0 f(2)是大于0

那因此[1 2]就是它的一个有根区间

我们说这个有根区间上的根

是不是单根

我们来验证一下

如果我们来求f的导数

它是3x²+10>0

因此这个函数在区间上面 是单调增加的

方程 在区间[1 2]上有唯一的根

现在我们来估计一下对分区间的次数

根据这个估计式

n应该大于等于ln(2-1)

减掉ln0.5乘以10的-4次方

再除以ln2 减1

这个值 大约是13.288

因此这个时候我们取n=14即可

即做14次对分

就可以保证我们的这个近似解的精度达到要求

计算的流程如下

首先第一个有根区间是[1 2]

我们取它的中点是1.5

1.5的函数值是-1.6小于0

因此我们得到

下一个的有根区间是[1.5 2]

它的中点是1.75

对应的函数值2.8大于0

第二个有根区间即为[1.5 1.75]

再取它的中点1.625

对应的函数值大于0

我们可以一直这样计算下去

经过14次对分我们得到

第14个有根区间是[1.5945436 1.5946046]

这个时候我们即可以取这个有根区间的中点

1.5945741作为

我们这个方程它的根的一个近似

以上 我们就是二分法的介绍

接下来 我们来介绍求解非线性方程的简单迭代法

简单迭代法的一般形式

我们对一个方程f(x)=0

首先构造它的一个等价变换

把它变形成x=φ(x)的形式

由等价形式

我们可以构造相应的一个迭代格式

xn+1=φ(xn)

那这个时候

我们如果给定初值x0

代入迭代公式的右端

即可以计算出φ(x0)即为x1

我们可以一直这样做下去

逐次代入就可以迭代产生一个序列xn

可以以xn来作为方程f(x)=0

它的根的一个近似

而其中的这个函数φ 我们称为迭代函数

我们有这样一个结论

如果我的迭代序列{xn} 收敛于一个点x*

迭代函数φ在x*处连续

这个时候我们可以证明x*即是方程的根

即f(x*)=0

这个很容易证明

我们在迭代格式xn+1等于φ(xn)的两端同时取极限

令n趋向于无穷大

即得x*等于φ(x*) 即f(x*)=0

接下来 我们来看这样一个例子

用简单迭代法来求方程f(x)=x³+10x-20=0的根

要求精确到0.5乘以10的-6次方

我们要构造一个迭代格式

首先要对方程做一个等价变形

变形成x等于φ(x)的形式

我们来看第一种变形

我们在方程的两端同时加上x

即可以得到x=x³+11x-20

因此对应的迭代格式

即为xn+1=x³n+11xn-20

我们来取

这个有根区间[1 2]它的一个中点

即x0=1.5作为初值代入计算

可以得到x₁=-0.125

x₂=-21.376953

x₃=-10023.861

通过这几步简单的迭代我们可以看出来

由这个迭代格式产生的迭代序列是发散的

下面 我们再对这个方程来做一个等价变形

我们把刚才变形的式子

减掉17.75x再除以-16.75

它也是等于x

那所以由此即可以得到迭代格式

xn+1=xn³+11xn-20

减掉17.75xn 再除以-16.75

我们以初值x0还是取1.5

即可以计算得到

x₁ 1.5970149 x₂ x₃

x₄ x₅ x₆

我们会发现迭代六次之后啊

这个序列已经收敛了

我们会发现

我们第二种变形形式构造的迭代格式

所产生的迭代序列

就是收敛的

这时候我们即可以取x₅=1.5945621

作为这个非线性方程的根

下面我们对

这个方程再做一种等价变形

我们这里是把x³+10x提取一个公因子x

把20移到方程的右端

即可以得到x等于20除以x²+10

对应的迭代格式 是xn+1等于20除以xn²+10

还是取初值x0=1.5

代入计算

我们会发现 当我们迭代15次之后

我们得到的第14个近似值x₁₄和

第15个近似值x₁₅

它们之间的误差

小于二分之一乘以10的-6次方

那因此这个时候 我们就可以取

x₁₅=1.5945622

作为这个方程根的一个近似

对于格式三我们可以看出来

这个迭代格式 也是收敛的

我们经过15次迭代 即可以达到精度的要求

我们再来对它做一种等价变形

这个时候

我们是把10x留在左端

20和x³这两项移到右端

然后 两边再同时除以10

即可以得到x等于2减掉10分之x³

对应的迭代格式 是

xn+1等于2减xn³除以10

还是取初值x0=1.5

那这个时候 我们

进行迭代我们会发现

需要迭代48次才能达到我们的精度的要求

通过这个例子我们会发现

我们对这样的一个非线性方程可以做

各种不同的变形形式

得到不同的迭代格式

而这些迭代格式有的是收敛的

有的是发散的

同是收敛的迭代格式

而有的收敛的速度快 有的收敛的速度慢

那这样的话就说明

我们对同一个方程可以构造不同的迭代格式

产生迭代序列的收敛性也就不同

那这也就一个问题

迭代法的收敛性与什么有关

我们怎样构造具有收敛性的迭代法

我们要希望这个迭代序列收敛的话

实际上我们就是来看一下我们

迭代得到的这个xk+1

和根x*它们之间的距离

因此 我们这时候需要讨论xk+1-x*

根据迭代格式的表达

它就等于φ(xk)-φ(x*)

由此我们可以看出

迭代格式的收敛性

和这个迭代函数φ是有关系的

接下来我们就给出迭代法的收敛条件

第一个定理叫压缩映象原理

设函数φ在区间[a b]上满足

对任意的x属于[a b]

φ(x)都是大于等于a 小于等于b

第二个 是存在一个常数L大于0小于1

使得对任意的x y属于闭区间[a b]

都有φ(x)-φ(y)的绝对值小于等于L

乘上x-y的绝对值

这个条件 我们通常称为压缩条件

即像经过这个映射φ之后

像的距离

它小于等于L乘以原像的距离

由这两个条件我们即可以得出来

方程x=φ在[a b]内有唯一的根

而且对任意的初值x0属于闭区间[a b]

迭代格式

所产生的序列收敛于x*

而且 我们有下述这样的两个误差估计

我们要证明这个定理

需要证明以下几个问题

第一个结论就是 根存在是唯一的

第二个

我们这个迭代序列收敛

第三 我们要证明这样两个误差估计

我们来看一下 证明

先证根的存在性

由于φ在闭区间[a b]上连续

我们令ψ=x-φ

ψ也是连续的

ψ(a)=φ-φ(a)

它就应该小于等于0

φ(b)=b-φ(b)大于等于0

我们有连续函数的介值定理

即可以知道

ψ这个函数在闭区间[a b]上

肯定有一个0点

这个0点我们记为x*

它即是方程的根

下面我们再证明根的唯一性

假设我们这里有两个根

x*和x∽

x*就等于φ(x*)

x∽等于φ(x∽)

那这个时候x*减掉x∽的绝对值

就等于φ(x*)减掉φ(x∽)它的绝对值

我们由压缩条件即可以知道它小于等于L

乘上x*减掉x∽的绝对值

而L 小于1

那因此我们这时候就得到了一个矛盾

即x*减掉x∽的绝对值

小于x*减掉x∽的绝对值

那说明我们的假设不成立

根的唯一性 我们即得到了证明

接下来我们来证明这个迭代序列的收敛性

我们设方程x等于φ(x)在闭区间上有根x*

我们由迭代公式就可以知道

xn减掉x*的绝对值

等于φ(xn-1)减掉φ(x*)的绝对值

那它应该小于等于L

乘上xn-1减掉x*的绝对值

以此类推我们即可以得到

xn减掉x*的绝对值

小于等于L的n次方乘上x0减掉x*的绝对值

由于L是一个大于0小于1的常数

那因此啊

我们令n趋向于无穷大

即可以得到xn 当n趋向于无穷大的极限

即为x*

也即我们的迭代序列是

收敛于方程的根

接下来我们来证明这个误差估计

第一个误差估计是

近似解和真解的误差小于等于L的n次方除以1-L

乘上行x₁-x₀的绝对值

我们由前面

刚刚得到xn-x*的绝对值

小于等于L的n次方乘以x₀-x*的绝对值

这个式子不能给我们误差估计 因为x*

在实际当中我们是未知的

我们把x₀-x*利用三角不等式

小于等于x₀减掉x₁的绝对值

加上x₁-x*的绝对值

然后我们再利用

第一式子

我们即可以得到它小于等于x₁-x₀的绝对值

加上L乘上x₀-x*的绝对值

由这个不等式我们

把右端的L乘上x₀-x*的绝对值移过去

就可以得x₀-x*的绝对值小于

1-L分之1 乘上x₁-x₀的绝对值

我们把这个估计式(2)代入估计式(1)

即可以得到我们要的误差估计

即近似解和真解的误差小于等于

L的n次方除以1-L

乘上x₁-x₀的绝对值

通过这个误差估计我们可以看出来

L越小

迭代序列xn收敛于x*的速度也就越快

最后我们来证明

x*-xn的绝对值小于1-L分之1

乘上xn减掉xn-1的绝对值

由于我们前面得到了

x*-x的绝对值小于等于L乘上x*减掉xn-1的绝对值

我们把x*减掉xn-1的绝对值

利用三角不等式

小于等于x*减掉xn的绝对值

加上xn减xn-1的绝对值

我们再利用式子(3)它小于等于

L倍的x*减xn-1的绝对值

加上xn减xn-1的绝对值

然后把右端的L倍x*减xn-1的绝对值移到左端

然后再把1-L给它除过去

即可以得到x*减xn-1的绝对值

小于1-L分之1 xn减掉xn-1的绝对值

然后我们把它代入(3)式

即可以得到我们需要的估计

x*-xn的绝对值

小于L除以1-L乘上xn减xn-1的绝对值

那L是严格小于1的

因此它小于1-L分之1

xn减掉xn-1的绝对值

这个误差估计说明什么

说明近似解和真解的误差它是

可以小于1-L分之1乘以xn减xn-1的绝对值

也即我们可以用相邻两次计算结果的误差来

作为真解和近似解的误差的一个估计的标准

那所以在实际计算当中啊

只要前后两次计算的结果的误差足够小

我们即可以保证xn具有足够的精度

这里有一个问题是

定理当中的压缩条件

φ(x)- φ(y)的绝对值

小于等于L乘上x-y的绝对值

在实际当中不容易验证

那因此我们在实际当中啊

通常是把

这个条件转换成φ的导数的一个性质

这即定理8.2

定理8.2为

φ也是要求它在闭区间上满足第一个条件

和定理8.1是一样的

我们把第二个压缩条件转换成了

存在L大于0小于1

使得对任意的x属于闭区间[a b]

φ它的导数

是绝对值小于等于L

在这两个条件之下

方程存在唯一的根

而且对任意的初值x0属于[a b]迭代格式都收敛

而且有相同的这个误差估计

我们这里要证明定理8.2

只需要证明如果定理8.2的条件满足

定理8.1的条件也即成立

我们来看一下对任意的x属于闭区间[a b]

由微分中值定理可以知道φ(x)-φ((y)

等于φ'(ξ)乘以(x-y)

这个ξ 介于x y之间

两边取绝对值 我们就可以得到

φ(x)-φ((y)的绝对值

小于等于

L乘上x-y的绝对值

也就说只要定理8.2的条件满足定理8.1的条件

即成立

那由定理8.1我们即可以证明结论

但是 一般来说

构造迭代函数使其在较大区间上满足定理比较困难

所以在实际当中

我们转为讨论在根附近的情况

即定理8.3局部收敛性定理

如果我的迭代函数在根的附近邻域内

一阶连续可微

而且x*=φ(x*)

φ'(x*)的绝对值 严格小于1

那这个时候我们可以找到一个正数δ

小于等于δ*

使得对任意的x₀属于x*的δ邻域

迭代序列都收敛于x*

这个证明也比较简单

我们由

极限的保号性

可以证明由φ'(x*)的绝对值小于1可以得到

存在一个δ大于0

使得只要x在x*的δ领域上

φ'(x)的绝对值小于等于L小于1

另外φ(x)-x*的绝对值

它等于φ(x)-φ(x*)的绝对值

那这个时候

我们利用第一个性质

我们即可以得到

它小于等于L乘上x-x*的绝对值

那应该是小于δ的

那所以这样的话我们也证明了

φ(x)属于x*-δ

到x*+δ

由此我们就可以得出来

定理8.3在x*的一个小的δ邻域上

满足定理8.2的条件一和条件二

那由定理8.2我们可以知道迭代序列

是收敛于x*的

下面我们利用这些定理来看一下

我们前面所构造迭代格式的收敛性

对于第一种方法

我们的迭代函数是x³+11x-20

那它的导数 是3x²+11

它在整个区间上 都是大于11的

它不满足定理8.2

但是定理8.2是个充分条件不满足

也不一定不收敛

那我们在后面会讨论

实际上只要在真解x*这一点

它迭代函数的一阶导数

严格大于1

这时候得到的迭代序列一定是发散的

对于我们的算法三

我们的迭代函数是20除以x²+10

那这个时候

迭代函数在[1 2]上它的值域是

大于1 小于2的

而且它的导数φ’

它是-40x除以x²+10²

那它的绝对值在[1 2]这个区间上是

小于等于80除以11²

这个值大约是0.6611

严格小于1

那因此我们可以看出来这个迭代函数在区间[1 2]上

满足定理8.2因此迭代收敛

对于方法四我们的迭代函数是

2减掉10分之x³

它的导数 是10分之3倍的x²

这个迭代函数在[1 2]上不满足定理8.2的条件

但是如果我们把这个区间给它压缩一下

在[1.5 1.7]这个区间上

我们可以验证它的迭代函数的导数

是小于等于0.867 严格小于1

而且迭代函数在这个区间上也是大于1.5小于1.7

这个迭代函数

它在区间[1.5 1.7]上满足定理8.2

因此迭代格式收敛

但是由于这里的这个L压缩因子

它是0.867

我们的方法三要大

那因此 它的收敛的速度要比方法三要慢

数值分析课程列表:

第一章 误差

-1.1 误差的概念

--误差的概念

-1.2 误差的传播

--误差的传播

-第一章 习题

--第一章 习题

第二章 解线性方程组的直接解法

-2.1 Gauss消去法

--Gauss消去法

-2.2 矩阵的三角分解

--矩阵的三角分解

-2.3 直接三角分解法

--直接三角分解法

-2.4 平方根法和改进的平方根法

--平方根法和改进的平方根法

-2.5 误差分析(1)向量和矩阵范数

--误差分析(1)向量和矩阵范数

-2.6 误差分析(2)条件数

--误差分析(2)条件数

-第二章 习题

--第二章 习题

第三章 解线性方程组的迭代法

-3.1 Jacobi迭代法和Gauss-Seidel 迭代法

--Jacobi迭代法和Gauss-Seidel 迭代法

-3.2 迭代法收敛性的判别

--迭代法收敛性的判别

-3.3 误差分析

--误差分析

-第三章 习题

--第三章 习题

第四章 矩阵特征值与特征向量的计算

-4.1 幂法

--幂法

-4.2 反幂法

--反幂法

-第四章 习题

--第四章 习题

第五章 插值法

-5.1 多项式插值理论

--多项式插值理论

-5.2 Lagrange 插值多项式

--Lagrange 插值多项式

-5.3 Newton 插值多项式(1)差商型

--Newton 插值多项式(1)差商型

-5.4 Newton 插值多项式(2)差分型

--5.4 Newton 插值多项式(2)差分型

-5.5 分段线性插值

--分段线性插值

-5.6 Hermite 插值

--Hermite 插值

-第五章 习题

--第五章 习题

第六章 函数逼近

-6.1 数据拟合的最小二乘法(1)多项式拟合

--数据拟合的最小二乘法(1)多项式拟合

-6.2 数据拟合的最小二乘法(2)其他函数拟合

--数据拟合的最小二乘法(2)其他函数拟合

-6.3 正交多项式

--正交多项式

-6.4 函数的最佳平方逼近

--函数的最佳平方逼近

-第六章 习题

--第六章 习题

第七章 数值微分与数值积分

-7.1 数值微分

--数值微分

-7.2 Newton-Cotes求积公式(1)数值积分的基本思想、Newton-Cotes公式

--Newton-Cotes求积公式(1)数值积分的基本思想、Newton-Cotes公式

-7.3 Newton-Cotes求积公式(2)误差估计

--Newton-Cotes求积公式(2)误差估计

-7.4 复化求积公式

--复化求积公式

-7.5 Romberg求积公式、Gauss型求积公式

--Romberg求积公式、Gauss型求积公式

-第七章 习题

--第七章 习题

第八章 非线性方程的求解

-8.1 Romberg求积公式、Gauss型求积公式

--Romberg求积公式、Gauss型求积公式

-8.2 简单迭代法的加速、牛顿法与弦截法

--简单迭代法的加速、牛顿法与弦截法

-第八章 习题

--第八章 习题

第九章 常微分方程数值解法

-9.1 常微分方程数值解法概述

--常微分方程数值解法概述

-9.2 Euler方法及其改进方法

--Euler方法及其改进方法

-第九章 习题

--第九章 习题

Romberg求积公式、Gauss型求积公式笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。