收藏 分享(赏)

第四章数值积分.ppt

上传人:无敌 文档编号:333704 上传时间:2018-03-30 格式:PPT 页数:45 大小:549.50KB
下载 相关 举报
第四章数值积分.ppt_第1页
第1页 / 共45页
第四章数值积分.ppt_第2页
第2页 / 共45页
第四章数值积分.ppt_第3页
第3页 / 共45页
第四章数值积分.ppt_第4页
第4页 / 共45页
第四章数值积分.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、第四章 数值积分,4.1 梯形求积公式、Simpson求积公式和Newton-Cotes公式4.2 复化求积公式4.3 自动选取积分步长4.4 求积公式的误差4.5 龙贝(Romberg)方法,引 言,工程上经常用到积分运算,但用牛顿莱布尼兹公式计算定积分时常遇到如下情况:,因此要求建立积分的近似计算方法。,常用插值多项式来构造数值求积公式,这样建立的求积公式称作插值求积公式,(4.1),4.1 梯形求积公式、Simpson求积公式和Newton-Cotes公式,并计算,作为积分值的近似值,得,(4.2),即梯形求积公式,一、梯形公式:,二、辛卜生求积公式:,从而求得求积公式,(4.3)称为辛

2、卜生(Simpson)公式(或抛物线求积公式)。,(4.3),三、牛顿柯特斯公式:,(4.4),4.2 复化求积公式,当积分区间a,b较大时,直接使用上述公式所得近似值的精度很低,实际应用中往往采用复合求积的方法。,一、定义:将积分区间分成几个小区间,在每个小区间上用上述公式计算积分的近似值,即为复化求积。,二、复化梯形求积公式:,由梯形公式,在第i个小区间上,称为复化梯形公式,(4.5),三、复化辛卜生公式,(4.6),四、复化牛顿柯特斯公式:,则有复化牛顿柯特斯公式:,(4.7),例计算:,解:,其中,= 3.138988494,其中,= 3.141592502,都需调用9次函数,但精度差

3、别很大,故常用复化 辛卜生公式。,上机时,可以通过循环来实现公式4.6。,4.3 自动选取积分步长,复化求积方法对提高精度是行之有效的,但是使用复化求积公式之前必须给出合适的步长,步长取的太大精度难以保证,步长太小则会导致计算量的增加。而事先给出一个恰当的步长是困难的。实际计算时通常采用变步长的求积方案,即在步长逐次折半(或称步长二分)的过程中,反复利用复化的求积公式进行计算,直到二分前后两次积分近似值相当符合为止。下面以梯形公式为例,探求变步长的计算规律。,(4.8),(4.9), 算法设计与流程图:,算法:1 输入初值;2 按公式(4.9)求二分后的积分值,从第一个分点出发取h为步长,逐步

4、向右跨,即可依次确定(4.9)中的各个分点,并将所得分点暂存于单元x中;3 控制精度;4 修改步长。流程图:(略),练习:分别用复化梯形法和复化辛甫生法计算下列积分:,(1) ,4等分积分区间;(2) ,8等分积分区间 ;(3) ,6等分积分区间。,(1),(2),(3),答案:,4.4 求积公式的误差,一、梯形公式:,证明:由第二章余项公式,有:,(4.10),于是(4.10)成立。,2、复化梯形求积公式 (4.5)截断误差:,(4.11),(4.12),二、辛卜生公式:,1、辛卜生公式(4.3)截断误差:,2、复化辛卜生公式(4.6)截断误差:,(4.13),(4.14),(4.15),1

5、、牛顿柯特斯公式(4.4)截断误差:,三、牛顿柯特斯公式:,(4.16),2、复化牛顿柯特斯公式(4.7)截断误差:,(4.17),4.5 龙贝(Romberg)方法,复化的柯特斯公式,结构简单,易于上机实现,但收敛速度慢,为节约计算工作量,产生龙贝方法。Romberg算法是在积分区间逐次分半的过程中,对用复化梯形法产生的近似值进行加权平均,以获得准确程度较高的近似值的一种方法。优点:公式简练,使用方便,结果可靠。,一、基本原理:,由上节的误差估计式 (4.11),由公式 (4.11),则由上两式求得:,前已说过(见2.2),这种直接用计算结果估计误差的方法称为事后估计法。,(4.18),按估

6、计式(4.18),,可能是更好的结果。,(4.19),例计算: (4.2 例题),解法一:利用复化梯形公式变步长的方法,,解法二:利用公式( 4.19),二、龙贝求积公式:,(公式4.8),(公式4.5),代入前式:,(4.20),(4.21),(4.22),(4.23),(4.24),综上,可以在积分区间逐次分半的过程中,利用上述公式,将粗糙的近似值逐步精确,得到,这种算法称为龙贝算法。,例利用龙贝算法计算:,解,其中加速运算,只需作少量的四则运算,不涉及 求函数值。,在前述推导过程中,我们都假设函数的各阶导数 在积分区间内变化不大,但龙贝算法的成立,并 不需要上述假设。,三、算法与流程图:

7、,1、龙贝公式的简化:,如上例中,各近似值可以表示如下表:,前述龙贝公式可统一为:,(4.25),2、流程图:(略),3、C+源代码:,#include #include using namespace std;const double E = 2.718281828;const double PI = 3.1415926;const double EPS = 1e-5;const int ROW_COL = 100;double matrixROW_COLROW_COL;,void InitialMatrix() int i; for (i=0; iROW_COL; i+) int j; f

8、or (j=0; jROW_COL; j+) matrixij = 0.0; return;inline double function(double x) /此处修改被积函数/ return 2 / sqrt(PI) * (pow(E, -x); return x * sqrt(1 + pow(x, 2);,void PrintMatrix(int x) int i; for (i=0; ix; i+) int j; for (j=0; jx; j+) cout matrixij ; cout endl; return;,int Romberg(double a, double b) / a

9、为积分下界, b为上界 double h = b - a; matrix00 = (h / 2) * (function(b) + function(a);int k = 0; int divideNum = 2; int i;,do k+; double sum = 0; double stepLen = h / (divideNum); double temp = a; for (i=0; idivideNum - 1; i+) temp += stepLen; sum += function(temp); divideNum *= 2; matrixk0 = stepLen / 2 *

10、(function(a) +function(b) + 2 * sum);,for (i=0; i EPS); return k;,int main() cout.setf(ios:fixed,ios:floatfield); cout.precision(7); InitialMatrix(); int x = Romberg(0, 3); PrintMatrix(x + 1); return 0;,3、Mathematica数值积分函数:,Integrate与NIntegrate函数均可计算定积分,前者是用准确的公式推导计算问题的精确解,即符号计算;后者是用近似的数值解求解,即数值计算。, 调用格式:,NIntegratef,x,a,b, 函数功能:, 课后练习:,要求:用9个点上的函数值即将积分区间8等分计算,答案:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报