matlab实现复化梯形公式,复化simpson公式以及romberg积分.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:5 大小:36KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

matlab实现复化梯形公式,复化simpson公式以及romberg积分.doc

matlab实现复化梯形公式,复化simpson公式以及romberg积分.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验目的熟悉并掌握数值积分的方法,重要训练复化梯形公式,复化simpson公式以及romberg积分。问题描述问题三数值积分椭圆周长的计算。考虑椭圆,为计算其周长,只要计算其第一象限的长度即可.用参数方程可以表示为,计算公式为为计算方便,我们可以令,即计算下面的积分(可以归结为上面的形式)采用复化梯形公式,复化Simpson公式以及Romberg积分的方法计算积分给出通用程序,该通用程序可以计算任何一个函数在任意一个区间在给定的精度下的数值积分。程序输出为计算出的数值积分值以及计算函数值的次数。算法介绍首先利用给出的各迭代公式,设计程序。在matlab对话框中输入要计算的函数,给出区间和精度。复化梯形的迭代公式为:abf(x)dx=h/2fa+2j=1n-1fxj+f(b);复化simpson迭代公式为:abf(x)dx=h/3fa+2j=1(n2)-1fx2j+4j=1(n2)fx2j-1+f(b);Romberg迭代公式为:Rk,j=Rk,j-1+Rk,j-1—Rk-1,j-14j-1-1。程序对于复化梯形公式和复化simpson公式,我们放在jifenn.m中。(%标记后的程序可用来把b看为变量时的算法实现)%复化梯形公式functiony=jifenn(f,n,a,b)(说明:f表示任一函数,n精度,a,b为区间)fi=f(a)+f(b);h=(b-a)/n;d=1;%functionf=jifen(n,a,b,c)%symst%y=sqrt(1+(c^2-1)*cos(t)^2);%ya=subs(y,t,a);%yb=subs(y,t,b);%fi=ya+yb;fori=1:n-1x=a+i*h;fi=fi+2*f(x);d=d+1;%yx=subs(y,t,x);%fi=fi+2*yx;endf4=h/2*fi,d%复化simposon公式f1=0;f2=0;dd=1;fori=1:n-1dd=dd+1;ifrem(i,2)~=0;x1=a+i*h;f1=f1+f(x1);elserem(i,2)==0;x2=a+i*h;f2=f2+f(x2);endendf3=(h/3)*(f(a)+4*f1+2*f2+f(b)),dd对于romberg积分,建立romberg.m文件。functiony=romberg(f,n,a,b)(说明:f表示任一函数,n精度,a,b为区间)z=zeros(n,n);h=b-a;z(1,1)=(h/2)*(f(a)+f(b));f1=0;fori=2:nfork=1:2^(i-2)f1=f1+f(a+(k-0.5)*h);endz(i,1)=0.5*z(i-1,1)+0.5*h*f1;h=h/2;f1=0;forj=2:iz(i,j)=z(i,j-1)+(z(i,j-1)-z(i-1,j-1))/(4^(j-1)-1);endendz,n运行结果对于复化梯形公式和复化simpson公式,我们运行下列语句并得到结果:>>fun=inline('sqrt(1+(0.5^2-1).*cos(t).^2)');>>jifenn(fun,8,0,pi/2)f4=1.2111d=8f3=1.2111dd=8>>1.2111*4ans=4.8444>>1.2111*4ans=4.8444(说明:在本题中将椭圆中的未知量a取为1,b取为0.5。f4为复化梯形公式得到的椭圆周长,f3为复化simpson公式得到的椭圆周长)。对于romberg,运行下列语句并最终得到结果为:>>fun=inline('sqrt(1+(0.5^2-1).*cos(t).^2)');>>romberg(fun,8,0,pi/0.5)z=3.141600000003.14163.14160000004.71245.23605.3756000004.83984.88234.85874.850500004.84424.84574.84324.84304.84290004.84424.84424.84414.84414.84424.8442004.84424.84424.84424.84424.84424.84424.844204.84424.84424.84424.84424.84424.84424.84424.8442ans=4.8442n=8(说明:其中最终结果为4.8442)。结果分析我们计算了当椭圆长轴为1,短轴为0.5时的周长。通过上述三种方法的计算可以看到,结果相差不大。根据椭圆周长的一