当前课程知识点:计算方法 > 第9章 数值积分与数值微分 > 9.3 复合牛顿-柯特斯公式 > 9.3 复合牛顿-柯特斯公式(下)
大家好
我们今天继续
来看看柯特斯公式在应用过程中间
有什么一些变化
对于符合
牛顿柯特斯公式
我们前面已经看过了
它们的误差项呢
是有一定项的
比如说
我们的复合梯形公式
他们的误差项呢
主要的时候是h平方
这么一个阶段数
这个阶数呢
按照误差的这个项h平方
这项呢
我们就可以给出来
一个
更简单更快的一个处理方法
比如说我们可以看看
把步长呢
如果缩小成原来的一半
也就相当是原来n等分
改成了2n等分
等分完以后呢
我们注意一下误差项
误差项现在的时候
是2分之b-a是一样的
h改成了h除以2
然后导数可能也变化了
但是如果说我们这个导数呢
在我整个区间上的时候
变化不是特别大的时候
N等分的过程中间
和2n等分的过程中间呢
他的这个误差项呢
差不多是四倍
我们就可以利用这个四倍
利用误差抵消误差
然后我们把这边的误差呢
我们给它削掉三倍
削掉三倍以后呢
比如说我四倍的这个Tn
减掉1倍的Tn
比如说在T的2n基础上的时候
我加上了
前后的T2n
和Tn的大概三分之一
这个三分之一呢
刚好的时候
是T2n的误差
因为它是这两者误差
本来是四倍啊
剪完以后了就变成三倍
我们给他除了一个3
然后我们现在给
出这个公式来的时候
就说利用
n等分或2n等分的
这种现象
我们只需要
控制误差小于某个数值的时候
这个数值我只要前后的
2n等分和n等分的时候
这两组数据的误差非常小
小于我给定的@@@@就可以
这样的就说
基本上了
在
误差给定以后了
我们是一般怎么来进行求的呢
刚才我们讲的是梯形公式
它是误差是h的平方
如果是
@的抛物线公式
它的误差项的是4次方
这样的话
如果在步长的缩短的过程中间
的时候了
我们也有类似的一个结论
这个结论的就前后两次的误差呢
大概的时候
相差是16倍
2的4次方16倍
所以我们可以利用的
前后的这个差值
然后呢、
除以15,这个15分之1呢
就基本上是S2n的
他的一个误差项
把这误差项呢我们给它补充全
就更准确了
更准确了
然后柯特斯公式也是类似的啊
我们假定它是六阶导数的时候
变化不是特别大的时候
同样的地方
也会有一个
类似这样的一个公式
这个公式呢
给出来的时候
它的数字应该是2的6次方
步长缩为原来的一半
步长缩为原来的一半的时候呢
我们这个误差项
是缩小为原来的2的6次方分之1
也就是64分之1
这样那就是我们的误差
抵消误差的时候了
我们需要做一个
除以63
就说类似这样的一些公式的时候
我们利用误差抵消误差
这样来计算的时候
就会控制的比较方便啊
我不需要的时候
是人为的说我先去给他算出来
到底需要
多大的这个n
我才去照这个n等分去分
实际上
这个n等分
刚才说过了他不一定是
最佳的啊
不一定最佳的有可能还没算到
因为我们计算过程中间
多多少少了计算机呢
会出现这样或者那样的一些毛病啊
比如说加的数值都多的时候了
有些累计的误差
会造成误差变得更大
比如说来
我们现在一个非常简单的例子
我们找一个椭圆
椭圆的这个
长半轴都是3
短半轴是2
它的那个
就是
这个椭圆面积很好求
πab
πab
这是整个算起来
就是就是六倍的π
但是说
边长的
就是整个的这个椭圆的周长
周长
我们怎么来求
这个求的时候就不太好求
这个因为他所所做的时候
本身就是一个椭圆积分
写出来以后的根据对称性呢
我们可以把它写出来是四倍的
这么一个积分
从0到2分之π这么一个积分
里头是根号9减掉
五倍的sin平方
θ
整个这个开根号然后积分
积分的时候
我们要用到的复化的这个
辛普森公式
最开始的时候就是
零到二分之派
整个一个区间上的辛普森公式
就抛物线
直接给出来
将给出来的数值算出来是
15.91534926
差不多的时候
十位有效数字的时候差不多
是这个数字这个数值
这个数值的时候
当然我们不知道这个误差多大
然后在把他做
等分下去
就说我现在刚刚一等分不行
二等分再继续做
做的时候能这样就说
把
零到2分之π的时候
实际上是相当分成
零到四分之π和四分之π到
二分之π之间
分成两个区间
分别去用辛普森公式
这样的算出来数值呢
稍微的
小了一点点
变成15.86608383
这也是十位有效数字稍微的
离我们的准确是更近了一点
但是我们现在要求的
不是精确到那个
到这个地方就为止了啊
我们要精确到的时候
一百万分之一这么一个级别
现在的时候
n等于1
n等于2
它并没有达到我们所需要的要求
现在要求的这个误差的时候大概还有
八个
5%左右
还很大
那不行的话
就我们就是这个原则
n等分不行
我就换到2n等分
2n等分不行
再换3n等分
一直换下去
按照四等分的数据的时候
我们再重新算
算以后呢是
15.86543994
这个时候
离n=2
n=4两个数值
它的误差
两者之间的差距
现在缩短一点点大概的时候
到了小数点后面第四位了
比如说大概万分之一左右
这么一个级别
但是还没有达到我的要求
我达到是一百万分之一
这么一个级别
然后这样不行
我们再继续往后写啊
在做的时候坐成八等分
八等分以后呢
做的这个辛普森公式的
现在算一下数据呢
和n=4的时候基本是一致的
我们可以看到是
15.86543959
只是在
十位有效数字后
两位的有区别
一个是94
一个是59
也就说误差的时候
这个时候已经实际上
也达到了差不多10的负7次方啊
真实的值呢
我们可以看一看
他得到的时候是
差不多的
是15.865439258
我们看到
θ前面的十位有效数字
3959
最后几位3959
它是3958但舍五入以后了
这样就是3959
函数
就说有的时候变化的规律
比较奇怪
有的地方的时候
可能快
有变化了
非常抖动的非常厉害
有的地方的时候可能一马平川
比较缓的一个过程
变化不是特别大
那如果说把这些
变化非常大的区间呢
拿过来做的话
我们如果用刚才的
那个
就是等分区间的方式
方式来进行做的话
有可能需要等分成
非常非常小的区间
才能达到要求
而我们现在如果是
比较平缓的地方
变化不是特别大的地方
我就不需要选择那么
很密的这个地方
只要稍微把那个区间
可以拉的稍微长一点
拉的长一点的时候呢
我们照样的地方的时候
是可以来进行
计算的
我如果说给你一个
非常非常长的区间
你要去做计算啊
这样做的话就有可能会把
中间有变得快的
也有变得慢的
然后这个时候了
我们就不能用刚才那种手法了
那才那种手法
不管三七二十一就是
二等分四等分八等分
一直等下去
等到的最后的时候
实际上就是把最密的地方等分出来
才合适
这样实际上造成的在
在比较缓慢的地方的时候
实际上不需要那么多等分
我们可以看看我们可以做一个
自适应的等分
仍然拿
我们刚才的
复合的辛普森公式来看看
所用的时候怎么做呢
我们说是把整个区间
一部分一部分的过关
先拿整个区间来看
a到b这个区间来看
a到b区间拿出来以后
先算出来
它的辛普森公式的
就一个区间上
它的一个S1
就是它的所有的辛普森公式S1
然后分成两个区间做的
另外一个同样的辛普森公式
这个计算S2
S1和S2如果小于
15倍的ε的时候
这个S2呢
和真实的值
差不多的时候就ε
可能稍微有点区别
但是一般不会特别大
按说我们说一个区间过@@@公式
如果说判断这个原则判断对了
这个就是这个区间能满足这个条件
我给你一个限制
你这个区间中间我只能误差有多大
你现在达到我这个误差的要求了
那就我这个区间就通过了
区间通过了
然后去取这个S2呢
对应的S2呢
就作为我这部分积分的
这个数值
但是如果出现的时候不符合
这种情况
也就说我这个
算出来S1,S2的话
可能非常误差非常大
误差非常大的时候那怎么办呢
那就说我们现在就
把a到b这个区间呢
本身是不通过的
不通过以后了呢
然后把它分开成为
两个区间
一般情形下说的是
左边一半右边一半两个区间
就是a到2分之a+b
这算一个新的区间
二分之一a+b
到b呢是另外一个区间
就分成两个等距的区间
然后这两个等距长区间的时候呢
我们把它的误差的控制了一人一半
一人一半因为后面我还要把他的这
两个部分的全加起来
一人一半的误差
你达到一半误差我达到一般为误差
加起来以后最多的误差
也不会超过一倍的误差
就像这种方法
我们一个一个去看
如果说你分成两半的这个区间
还没通过那继续分
好了
我们可以看看一个
比较变化比较大的例子
就是e的x次方
这是一个指数函数
指数函数的时候
我们知道在0的附近的时候
增长是比较慢的
但是到了后面呢
指数增长嘛
增长的非常非常快
我们这里还显得比较小啊
只选到到5
选到5选到5的地方
那我们可以看看我现在要求
整个的数据的也是能达到
最后
最准的误差要达到
一百万分之一
现在我们就先一个一个来
来把这个区间过关
第一个区间
最开始的区间就有一个区间
就是a等于0
a等于0,b等于5
这样它算出来S1
165多一点点
S2呢149
这个很明显没通过
两个差距差太大了
没通过的时候能让这时候
就要开始往下掐了
掐的时候掐成前面的一半
我们先看前面的一半
来看它能不能过关
a等于0
b先换成2.5
就是前面前半截区间
算出S1呢
11.3099
S2呢
11.1915
注意到这个时候了
误差的控制的应该缩小
成为一百万分之1的一半
一半一半这个肯定还不行
虽然它误差已经降得比较低
降到大概是
小数点
后面一位了
大概是零点一左右的误差
但达不到我的要求
达不到要求的时候
这个时候再继续往下做
那就说我再把它
分成两个区间
有零到1.25
和1.25到2.5
这两个区间
我们先
比如说就照这种方法了
陆陆续续的
往下去进行做
做到什么时候为止呢
第一个能通过的区间
是A等于0
B呢
等于0.078125
也就是64分之5
这么一个级别
第一个这个区间是通过的
这个区间里头的时候呢
就0到64分之5
这个区间中间的S1
大概是0.0812578
后面是0848
S2给出来的时候类似
基本是一样的
0.08125780755
S1S2和S1的差距的时候
大概算出来以后
相对误差是比较小的
它达到的时候@@@的时候
是十的负十次方左右
然后这些通过的地方
陆陆续续的时候就是说
前面的
比较大区间是变得比较缓
它64分之1的这个
原始的区间的长度了
差不多就通过了
但越往后的时候的这个区间长度
就会变得越来越
少一小一点
最后的时候都通过了一个区间
的时候了才比较靠5的
这边的通过的区间
它的长度
实际上说到的是
128分之5
整个这个数据的时候了
但是中间的时候
本身还有一些计算的技巧
这些做的时候
就说
大概的时候可能有一半
是64分之5
有一半是128分之5
大概可能是有60
前面有64个数据
后面的地方的求一下
差不多所有也是一百多个数据
加起来可能也算到
不到二百个数据算出来就完事了
但如果用原来的
那个
单独的
就是我n等分
2n等分4n等分
8n等分这么等分下去的话
二百等分是绝对不够的
所以这个运算量呢
它比原来的运算量要小得多啊
但具体这个数值到底多少了
你们回去给自己
算一算啊
我就留给大家当习题了
-1.1 引言
--1.1 引言
-1.2 算法与效率
-1.3 计算机数系与浮点运算
-1.4 误差与有效数字
-1.5 四则运算与函数求值的误差
-1.6 问题的性态与条件数
-1.7 算法数值稳定性
-第1章 作业
--第一章 作业
-2.1 引言 2.2 线性空间
-2.3 内积空间与元素的夹角
-2.4 赋范线性空间
-2.5 向量范数与向量序列极限
-2.6 矩阵范数
--2.6 矩阵范数
-第二章 作业
--第二章 作业
-3.1 引言
--3.1 引言
-3.3 不动点迭代法
--3.2 二分法
-3.4 不动点迭代法的收敛条件
-3.5 牛顿迭代法及其变形
-3.6 迭代法收敛阶
-3.7 重根的计算与加速收敛
-3.8 数值实验
--3.8 数值实验
-第3章 作业
--第3章 作业
-4.1 引言
--4.1 引言
-4.2 Lagrange插值
-4.3 Lagrange插值余项
-4.4 Newton差商插值
-4.5 Hermite插值
-4.6 分段多项式插值
-4.7 三次样条插值
-4.8 数值实验
--4.8 数值实验
-第4章 作业
--第4章 作业
-5.1 函数逼近与曲线拟合基本概念
-5.2 连续函数的最佳平方逼近
-5.3 曲线拟合的最小二乘法
-第5章 作业
--第5章 作业
-6.1 引言 6.2 高斯消元法
-6.3 矩阵分解与应用
-6.4 误差分析 6.5 数值实验
-第6章 作业
--第6章 作业
-7.1 引言 7.2 线性方程组的迭代法(上)
-7.2 线性方程组的迭代法
-7.3 非线性方程组的迭代法
-7.4 数值实验
--7.4 数值实验
-第7章 作业
--第7章 作业
-8.1 引言
--8.1 引言
-8.2 幂法与反幂法
-8.3 矩阵的正交分解
-8.4 QR方法
--8.4 QR方法
-8.5 Jacobi方法
-第8章 作业
--第8章 作业
-9.1 引言
-9.2 牛顿-柯特斯公式
-9.3 复合牛顿-柯特斯公式
-9.4 龙贝格算法
-9.5 高斯型求积公式
-9.6 数值微分
--9.6 数值微分
-10.1 引言
--10.1 引言
-10.2 梯形公式和改进的欧拉方法
-10.3 单步法的误差与稳定性收敛性
-10.4 高阶单步方法
-10.5 线性多步法
-10.6 多步法的误差与稳定性
-10.7 一阶微分方程组与高阶微分方程
-第10章 作业
--第10章 作业