《2022年matlab实现复化梯形公式,复化simpson公式以及romberg积分 .pdf》由会员分享,可在线阅读,更多相关《2022年matlab实现复化梯形公式,复化simpson公式以及romberg积分 .pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、(一)实验目的熟悉并掌握数值积分的方法,重要训练复化梯形公式,复化simpson 公式以及 romberg 积分。(二)问题描述问题三数值积分椭圆周长的计算。考虑椭圆, 为计算其周22221xyab长, 只要计算其第一象限的长度即可.用参数方程可以表示为,cos(0/ 2)sinxattybt计算公式为/222220sincosatbtdt为计算方便 , 我们可以令, 即计算下面的积分1a/22220sincostbtdt/ 22201(1)cosbtdt (可以归结为上面的/ 222220sincosatbtdt/ 22220sin() cosbattdta形式)采用复化梯形公式,复化Sim
2、pson公式以及 Romberg积分的方法计算积分/ 2220( )1(1)cosI bbtdt给出通用程序,该通用程序可以计算任何一个函数在任意一个区间在给定的精度下的数值积分。程序输出为计算出的数值积分值以及计算函数值的次数。(三)算法介绍首先利用给出的各迭代公式,设计程序。在matlab 对话框中输入要计算的函数,给出区间和精度。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 复化梯形的迭代公式为:;?(?)?= ?/2?
3、 (? ) + 2? ? 1? = 1?(?)+ ?(?)复化 simpson 迭代公式为:;?(?)?= ?/3? (? ) + 2(?2) ? 1? = 1?(?2?)+ 4(?2)? = 1?(?2? ? 1)+ ?(?)Romberg迭代公式为:。?,?= ?,? 1+?,? 1? ? 1,? ? 14? ? 1-1(四)程序对于复化梯形公式和复化simpson 公式,我们放在 jifenn.m中。(% 标记后的程序可用来把b 看为变量时的算法实现)% 复化梯形公式function y=jifenn(f,n,a,b) (说明: f 表示任一函数, n精度, a,b为区间)fi=f(a)
4、+f(b);h=(b-a)/n;d=1;%function f=jifen(n,a,b,c)%syms t%y=sqrt(1+(c2-1)*cos(t)2);%ya=subs(y,t,a);%yb=subs(y,t,b);%fi=ya+yb;for i=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;for i=1:n-1dd=dd+1;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
5、- - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - ifrem(i,2)=0;x1=a+i*h;f1=f1+f(x1);else rem(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文件。function y=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;for i
6、=2:nfor k=1:2(i-2)f1=f1+f(a+(k-0.5)*h);end z(i,1)=0.5*z(i-1,1)+0.5*h*f1; h=h/2; f1=0;for j=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.52-1).*cos(t).2); jifenn(fun,8,0,pi/2)f4 =1.2111名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
7、- - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - d =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.52-1).*cos(t).2); romberg(fun,8,0,pi/0.5)z =
8、 3.1416 0 0 0 0 0 0 0 3.1416 3.1416 0 0 0 0 0 0 4.7124 5.2360 5.3756 0 0 0 0 0 4.8398 4.8823 4.8587 4.8505 0 0 0 0 4.8442 4.8457 4.8432 4.8430 4.8429 0 0 0 4.8442 4.8442 4.8441 4.8441 4.8442 4.8442 0 0 4.8442 4.8442 4.8442 4.8442 4.8442 4.8442 4.8442 0 4.8442 4.8442 4.8442 4.8442 4.8442 4.8442 4.844
9、2 4.8442ans = 4.8442n = 8(说明:其中最终结果为4.8442) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - (六)结果分析我们计算了当椭圆长轴为1,短轴为 0.5 时的周长。通过上述三种方法的计算可以看到,结果相差不大。根据椭圆周长的一个计算公式我们可以得到 L=4.283。因此三种? = 2?(长轴) + 4(? ? ? )方法都较好的接近真值。(七)心得体会应该熟练掌握这三种方法,才能在编程时正确快速的写出迭代公式。同时在一种思想的前提下可以寻找多种方法实现算法,互相验证。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -