数值计算方法第五章第二节-复化求积公式课件_第1页
数值计算方法第五章第二节-复化求积公式课件_第2页
数值计算方法第五章第二节-复化求积公式课件_第3页
数值计算方法第五章第二节-复化求积公式课件_第4页
数值计算方法第五章第二节-复化求积公式课件_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二节复化求积公式复化求积公式的基本思想:

将区间[a,b]

分为若干个小子区间,在每个小子区间上使用低阶的Newton-Cotes公式。然后把它们加起来,作为整个区间上的求积公式。

一、复化求积公式第二节复化求积公式复化求积公式的基本思想:1

1、复化梯形公式复化梯形公式为1、复化梯形公式复化梯形公式为2截断误差分析:截断误差分析:32、复化Simpson公式复化Simpson公式的截断误差为复化Simpson公式为2、复化Simpson公式复化Simpson公式的截断误差为4Example1ApproximatetheintegralUsingtheCompositeTrapezoidalruleandCompositeSimpson’srulex=eps:0.01:pi;y=sin(x)./x;plot(x,y);legend('f(x)=sin(x)/x');Example15functionrs=trapezoid(f,a,b,n)h=(b-a)/n;r=(feval(f,a)+feval(f,b))/2;forj=1:n-1x=a+j*h;r=r+feval(f,x);endrs=r*h;

数值试验复化梯形公式Matlab程序将此程序存于work目录中functionrs=trapezoid(f,a,b,n6数值试验

数值试验7n=8,tp=1.84784230644461n=16,tp=1.85091414036536n=32,tp=1.85168137241373n=64,tp=1.85187313510989n=128,tp=1.85192107295303n=256,tp=1.85193305723690n=512,tp=1.85193605329681n=1024,tp=1.85193680231110n=2048,tp=1.85193698956462n=4096,tp=1.85193703637800n=8192,tp=1.85193704808136复化梯形公式数值实验结果n=8,tp=1.848functionrs=simpson(s,a,b,n)h=(b-a)/n;r=feval(s,a)+feval(s,b);

forj=1:2:n-1x=a+j*h;r=r+4*feval(s,x);

endforj=2:2:n-2x=a+j*h;r=r+2*feval(s,x);

end

rs=r*h/3;复化Simpson公式Matlab程序

数值试验

将此程序存于work目录中functionrs=simpson(s,a,b,n)复9>>formatlong>>f=inline('sin(x)/x');>>a=eps;b=pi;n=8;

%eps是Matlab最小正数

>>sp=simpson(f,a,b,n)在Matlab命令窗口中,进行如下操作:

数值试验>>formatlong在Matlab命令窗口中,进行如10数值试验数值试验11n=8,sp=1.85195370083255n=16,sp=1.85193808500560n=32,sp=1.85193711642985n=64,sp=1.85193705600861n=128,sp=1.85193705223407n=256,sp=1.85193705199819n=512,sp=1.85193705198345n=1024,sp=1.85193705198253n=2048,sp=1.85193705198247n=4096,sp=1.85193705198246n=8192,sp=1.85193705198247复化Simpson公式数值实验结果n=8,sp=1.8519512

数值试验结果用复化Simpson公式求解,当区间分成64份时,计算结果:sp=1.85193705600861比用复化梯形公式,当区间分成8192份时的计算结果:tp=1.85193704808136还要精确。启发:寻求精度更高的求解方法!数值试验结果用复化Simpson公式求解,当区间分成613数值计算方法第五章第二节-复化求积公式课件14数值计算方法第五章第二节-复化求积公式课件15利用复合梯形公式、复合simpson公式、复合Cotes公式等计算定积分时,需根据精度要求确定节点数,即步长的大小,需要笔算求高阶导数解决办法:采用变步长算法通常采取将区间不断对分的方法,即取n=2k

,反复使用复合求积公式,直到相邻两次计算结果之差的绝对值小于指定的精度为止。利用复合梯形公式、复合simpson公式、复合Cotes公式16二、变步长复化求积公式变步长复化求积公式的基本思想:将区间[a,b]逐次分半,建立递推公式,按递推公式计算,直到满足精度要求。1.变步长复化梯形公式二、变步长复化求积公式变步长复化求积公式的基本思想:1.变步17下面推导由n到2n的复化梯形公式下面推导由n到2n的复化梯形公式18数值计算方法第五章第二节-复化求积公式课件19变步长复化梯形公式的递推公式:(由n到2n)变步长复化梯形公式的递推公式:(由n到2n)20数值计算方法第五章第二节-复化求积公式课件21变步长复化梯形求积公式的算法变步长复化梯形求积公式的算法22数值计算方法第五章第二节-复化求积公式课件232.变步长复化Simpson公式2.变步长复化Simpson公式24同理可得变步长复化柯特斯公式同理可得变步长复化柯特斯公式25二、龙贝格(Romberg)方法龙贝格(Romberg)算法是将理查逊(Richardson)外推法应用于数值积分,由低精度求积公式推出高精度求积公式的算法。二、龙贝格(Romberg)方法26数值计算方法第五章第二节-复化求积公式课件27数值计算方法第五章第二节-复化求积公式课件28数值计算方法第五章第二节-复化求积公式课件29数值计算方法第五章第二节-复化求积公式课件30龙贝格算法的计算公式龙贝格算法的计算公式31k01234误差龙贝格序列计算流程k01234误差龙贝格序列计算流程32龙贝格算法的计算过程龙贝格算法的计算过程33数值计算方法第五章第二节-复化求积公式课件34逐次外推计算流程如下:k0123逐次外推计算流程如下:k012335function

R=romberg(s,a,b,n)h=b-a;R(1,1)=h*(feval(s,a)+feval(s,b))/2;fori=2:nx=linspace(a,b,2^(i-1)+1);sm=0;fork=2:2:2^(i-1)sm=sm+feval(s,x(k));

endR(i,1)=R(i-1,1)/2+h*sm/2;forj=2:iR(i,j)=R(i,j-1)+(R(i,j-1)-R(i-1,j-1))/(4^(j-1)-1);

endh=h/2;end

%Romberg.mRomberg算法functionR=romberg(s,a,b,n)36例2使用Romberg积分法计算>>formatlong>>f=inline('sin(x)/x');>>a=0.0+eps;b=pi;n=4;>>R=romberg(f,a,b,n)例2使用Romberg积分法计算37数值计算方法第五章第二节-复化求积公式课件38R=

1.570796326794900001.785398163397451.85693210893163001.835508123280791.852211443241901.8518967321959201.847842306444611.851953700832551.851936518005261.85193714952605比较:n=2048,tp=1.85193698956462;sp=1.85193705198247Romberg算法程序运行结果:R=比较:n=2048,tp=1.851939第二节复化求积公式复化求积公式的基本思想:

将区间[a,b]

分为若干个小子区间,在每个小子区间上使用低阶的Newton-Cotes公式。然后把它们加起来,作为整个区间上的求积公式。

一、复化求积公式第二节复化求积公式复化求积公式的基本思想:40

1、复化梯形公式复化梯形公式为1、复化梯形公式复化梯形公式为41截断误差分析:截断误差分析:422、复化Simpson公式复化Simpson公式的截断误差为复化Simpson公式为2、复化Simpson公式复化Simpson公式的截断误差为43Example1ApproximatetheintegralUsingtheCompositeTrapezoidalruleandCompositeSimpson’srulex=eps:0.01:pi;y=sin(x)./x;plot(x,y);legend('f(x)=sin(x)/x');Example144functionrs=trapezoid(f,a,b,n)h=(b-a)/n;r=(feval(f,a)+feval(f,b))/2;forj=1:n-1x=a+j*h;r=r+feval(f,x);endrs=r*h;

数值试验复化梯形公式Matlab程序将此程序存于work目录中functionrs=trapezoid(f,a,b,n45数值试验

数值试验46n=8,tp=1.84784230644461n=16,tp=1.85091414036536n=32,tp=1.85168137241373n=64,tp=1.85187313510989n=128,tp=1.85192107295303n=256,tp=1.85193305723690n=512,tp=1.85193605329681n=1024,tp=1.85193680231110n=2048,tp=1.85193698956462n=4096,tp=1.85193703637800n=8192,tp=1.85193704808136复化梯形公式数值实验结果n=8,tp=1.8447functionrs=simpson(s,a,b,n)h=(b-a)/n;r=feval(s,a)+feval(s,b);

forj=1:2:n-1x=a+j*h;r=r+4*feval(s,x);

endforj=2:2:n-2x=a+j*h;r=r+2*feval(s,x);

end

rs=r*h/3;复化Simpson公式Matlab程序

数值试验

将此程序存于work目录中functionrs=simpson(s,a,b,n)复48>>formatlong>>f=inline('sin(x)/x');>>a=eps;b=pi;n=8;

%eps是Matlab最小正数

>>sp=simpson(f,a,b,n)在Matlab命令窗口中,进行如下操作:

数值试验>>formatlong在Matlab命令窗口中,进行如49数值试验数值试验50n=8,sp=1.85195370083255n=16,sp=1.85193808500560n=32,sp=1.85193711642985n=64,sp=1.85193705600861n=128,sp=1.85193705223407n=256,sp=1.85193705199819n=512,sp=1.85193705198345n=1024,sp=1.85193705198253n=2048,sp=1.85193705198247n=4096,sp=1.85193705198246n=8192,sp=1.85193705198247复化Simpson公式数值实验结果n=8,sp=1.8519551

数值试验结果用复化Simpson公式求解,当区间分成64份时,计算结果:sp=1.85193705600861比用复化梯形公式,当区间分成8192份时的计算结果:tp=1.85193704808136还要精确。启发:寻求精度更高的求解方法!数值试验结果用复化Simpson公式求解,当区间分成652数值计算方法第五章第二节-复化求积公式课件53数值计算方法第五章第二节-复化求积公式课件54利用复合梯形公式、复合simpson公式、复合Cotes公式等计算定积分时,需根据精度要求确定节点数,即步长的大小,需要笔算求高阶导数解决办法:采用变步长算法通常采取将区间不断对分的方法,即取n=2k

,反复使用复合求积公式,直到相邻两次计算结果之差的绝对值小于指定的精度为止。利用复合梯形公式、复合simpson公式、复合Cotes公式55二、变步长复化求积公式变步长复化求积公式的基本思想:将区间[a,b]逐次分半,建立递推公式,按递推公式计算,直到满足精度要求。1.变步长复化梯形公式二、变步长复化求积公式变步长复化求积公式的基本思想:1.变步56下面推导由n到2n的复化梯形公式下面推导由n到2n的复化梯形公式57数值计算方法第五章第二节-复化求积公式课件58变步长复化梯形公式的递推公式:(由n到2n)变步长复化梯形公式的递推公式:(由n到2n)59数值计算方法第五章第二节-复化求积公式课件60变步长复化梯形求积公式的算法变步长复化梯形求积公式的算法61数值计算方法第五章第二节-复化求积公式课件622.变步长复化Simpson公式2.变步长复化Simpson公式63同理可得变步长复化柯特斯公式同理可得变步长复化柯特斯公式64二、龙贝格(Romberg)方法龙贝格(Romberg)算法是将理查逊(Richardson)外推法应用于数值积分,由低精度求积公式推出高精度求积公式的算法。二、龙贝格(Romberg)方法65数值计算方法第五章第二节-复化求积公式课件66数值计算方法第五章第二节-复化求积公式课件67数值计算方法第五章第二节-复化求积公式课件68数值计算方法第五章第二节-复化求积公式课件69龙贝格算法的计算公式龙贝格算法的计算公式70k01234误差龙贝格序列计算流程k01234误差龙贝格序列计算流程71龙贝格算法的计算过程龙贝格算法的计算过程72数值计算方法第五章第二节-复化求积公式课件73逐次外推计算流程如下:k0123逐次外推计算流程如下:k012374function

R=romberg(s,a,b,n)h=b-a;R(1,1)=h*(feval(s,a)+feval(s,b))/2;fori=2:nx=linspace(a,b,2^(i-1)+1);sm=0;f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论