欢迎来到天天文库
浏览记录
ID:39577494
大小:58.50 KB
页数:5页
时间:2019-07-06
《实验三数值积分与数值微分》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《数值分析》课程设计实验报告实验三数值积分与数值微分一、问题提出选用复合梯形公式,复合Simpson公式,Romberg算法,计算(1)(2)(3)二、问题分析由上可知这几个积分找不到用初等函数表示的原函数,直接计算起来很困难,因此我们考虑利用函数在若干点得函数值,近似地计算该函数在一个区间上得定积分。这里采用的方法有三种:复合梯形公式,复合Simpson公式,Romberg算法。三、实验步骤1、复合梯形公式MATLAB程序:functionI=T_quad(x,y)n=length(x);m=length(y);ifn~=merror('thele
2、ngthofXandYmustbeequal!');return;endh=(x(n)-x(1))/(n-1);a=[12*ones(1,n-2)1];I=h/2*sum(a.*y);2、复合Simpson公式MATLAB程序:functionI=S_quad(x,y)n=length(x);m=length(y);ifn~=merror('thelengthofXandYmustbeequal!');return;endifrem(n-1,2)~=0%如果n-1不能被2整除,则调用复化梯形公式I=T_quad(x,y);return;endN=(n
3、-1)/2;h=(x(n)-x(1))/N;a=zeros(1,n);fork=1:Na(2*k-1)=a(2*k-1)+1;a(2*k)=a(2*k)+4;a(2*k+1)=a(2*k+1)+1;endI=h/6*sum(a.*y);3、Romberg算法MATLAB程序:functionI=R_quad_iter(fun,a,b,ep)ifnargin<4ep=1e-5;endm=1;h=b-a;I=h/2*(feval(fun,a)+feval(fun,b));T(1,1)=I;while1N=2^(m-1);h=h/2;I=I/2;fori=
4、1:N;I=I+h*feval(fun,a+(2*i-1)*h);endT(m+1,1)=I;M=2*N;k=1;whileM>1;T(m+1,k+1)=(4^k*T(m+1,k)-T(m,k)/(4^k-1));M=M/2;k=k+1;endifabs(T(k,k)-T(k-1,k-1))5、un,b));while1h=h/2;I=T/2;fork=1:N;I=I+h*feval(fun,a+(2*k-1)*h);endifabs(I-T)6、');I=R_quad_iter(fun,0,1)%调用龙贝格算法可得积分值I=0.498711118445678x=0:1/400:1/4;y=sqrt(4-(sin(x)).^2);I=T_quad(x,y)%调用复化梯形公式求得积分值I=0.49871105466684I=S_quad(x,y)%调用复化辛普森公式求得积分值I=0.49871111757532%对求解:x=0.1:0.1:1;y=sin(x)./x%可以得到y值,由题可知f(0)=1。y=[10.998334166468280.993346653975310.9850673557、537800.973545855771630.958851077208410.941070788991730.920310981768130.896695113624400.870363232919430.84147098480790];x=0:0.1:1;I=T_quad(x,y)%调用复化梯形公式可以求得I=0.94583207186691I=S_quad(x,y)%调用复化辛普森公式求得积分值I=0.94608316883807x=0.01:0.01:1;%x使用不同的步长y=sin(x)./xI=T_quad(x,y)%调用复化梯形公式可以求8、得I=0.94608266887360I=S_quad(x,y)%调用复化辛普森公式求得积分值I=0.946
5、un,b));while1h=h/2;I=T/2;fork=1:N;I=I+h*feval(fun,a+(2*k-1)*h);endifabs(I-T)6、');I=R_quad_iter(fun,0,1)%调用龙贝格算法可得积分值I=0.498711118445678x=0:1/400:1/4;y=sqrt(4-(sin(x)).^2);I=T_quad(x,y)%调用复化梯形公式求得积分值I=0.49871105466684I=S_quad(x,y)%调用复化辛普森公式求得积分值I=0.49871111757532%对求解:x=0.1:0.1:1;y=sin(x)./x%可以得到y值,由题可知f(0)=1。y=[10.998334166468280.993346653975310.9850673557、537800.973545855771630.958851077208410.941070788991730.920310981768130.896695113624400.870363232919430.84147098480790];x=0:0.1:1;I=T_quad(x,y)%调用复化梯形公式可以求得I=0.94583207186691I=S_quad(x,y)%调用复化辛普森公式求得积分值I=0.94608316883807x=0.01:0.01:1;%x使用不同的步长y=sin(x)./xI=T_quad(x,y)%调用复化梯形公式可以求8、得I=0.94608266887360I=S_quad(x,y)%调用复化辛普森公式求得积分值I=0.946
6、');I=R_quad_iter(fun,0,1)%调用龙贝格算法可得积分值I=0.498711118445678x=0:1/400:1/4;y=sqrt(4-(sin(x)).^2);I=T_quad(x,y)%调用复化梯形公式求得积分值I=0.49871105466684I=S_quad(x,y)%调用复化辛普森公式求得积分值I=0.49871111757532%对求解:x=0.1:0.1:1;y=sin(x)./x%可以得到y值,由题可知f(0)=1。y=[10.998334166468280.993346653975310.985067355
7、537800.973545855771630.958851077208410.941070788991730.920310981768130.896695113624400.870363232919430.84147098480790];x=0:0.1:1;I=T_quad(x,y)%调用复化梯形公式可以求得I=0.94583207186691I=S_quad(x,y)%调用复化辛普森公式求得积分值I=0.94608316883807x=0.01:0.01:1;%x使用不同的步长y=sin(x)./xI=T_quad(x,y)%调用复化梯形公式可以求
8、得I=0.94608266887360I=S_quad(x,y)%调用复化辛普森公式求得积分值I=0.946
此文档下载收益归作者所有