资源描述:
《数值分析实验 张永强 08》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数值分析》实验报告册姓名:张永强学号:201004230108专业:信息与计算科学班年级:10级数学与计算机科学学院2012-12-21数值分析实验用不同的数值方法计算积分∫01√x㏑xdx=-4/9。1.去不同的h,分别用复合梯形公式及辛普森公式求积计算积分,给出误差中的关于h的函数,并与积分精确值比较两个公式的精度,是否存在一个最小的h,使得精度不能再被改善?1.用龙贝格求积计算完成问题。解:复合梯形公式:Tn=h/2*[f(a)+2f(xk)+f(b)]误差关于h的函数:Rn(f)=(a-b)/12*h*h*f(2)(ξ)复合辛普森公式:Sn
2、=h/6[f(a)+4f(xk+1/2)+2f(xk)+f(b)]误差关于h的函数Rn(f)=(a-b)/180*(h/2)4*f(4)(ξ)龙贝格求积用到的公式:T2n=1/2(Tn)+h/2[f(xk+1/2)]Tm(k)=(4m*Tm-1(k+1)-Tm-1(k))/(4m-1)第二个公式可以改写为Tm+1(k+1)=(4m*Tm(k+1)-Tm(k))/(4m-1)这两个公式只是形式不同,本质是一样的。Matlab代码如下%复合梯形公式求积functions=T(n)a=0.0000001;b=1;h=(b-a)/n;s=h*(f(a)+f(
3、b))/2;ifn>1fork=1:n-1x=a+k*h;s=s+h*f(x);endend%复合辛普森公式求积functions=S(n)a=0.0000001;b=1;h=(b-a)/n;s=h*(f(a)+f(b))/6;fork=0:n-1x0=a+(k+0.5)*h;x1=a+k*h;ifk==0s=s+4*f(x0)*h/6;elses=s+(4*f(x0)+2*f(x1))*h/6;endend%龙贝格求积序列functions=Ro(k)a=0.0000001;b=1;R(1,1)=(b-a)*(f(a)+f(b))/2;ifk>0f
4、ori=1:kn=2^i;s=0;h=(b-a)/n;forj=0:n-1x=a+h*(j+0.5);s=s+h*f(x)/2;endR(i+1,1)=R(i,1)/2+s;form=1:kR(i+1,m+1)=(4^m*R(i+1,m)-R(i,m))/(4^m-1);endendends=R(k+1,k+1);%本题函数表达式functiony=f(x)y=sqrt(x)*log(x);%main函数,当n变化时,步长h随之变化,n=1:1:100;h=0.01:0.01:1;t0=1:1:100;t1=1:1:100;s0=1:1:100;s1
5、=1:1:100;n2=0:1:9;h2=0.1:0.1:1;r0=1:1:10;r1=1:1:10;n1=1:0.1:100;h1=0.001:0.001:1;y=-4/9;fori=1:100h(101-i)=1/i;t0(i)=T(i);t1(101-i)=T(i);endfori=1:100s0(i)=S(i);s1(101-i)=S(i);endfori=0:9h2(10-i)=1/(2^i);r0(i+1)=Ro(i);r1(10-i)=Ro(i);endplot(n,t0,'r',n,s0,'k',n2,r0,'g',n1,y,'b')
6、plot(h,t1,'r',h,s1,'k',h2,r1,'g',h1,y,'b')legend('复合梯形公式','¸´辛普森公式','龙贝格序列','精确值')grid;最后画图的两个函数分别注释运行(每次注释掉一个,保留一个)1.得到关于n各种公式求积的图表如下:(对于梯形公式,辛普森公式n代表份数,龙贝格公式n表示从1开始的序列号)2.关于步长h的各种公式求积的图表如下(其中龙贝格序列步长h=(b-a)/2k):观察两幅图表h越小,精度越高。当h足够小时,精度没有必要再被改善。附(部分表格):表1:份数n125102030405080100步
7、长h10.50.20.10.051/301/401/501/800.01梯形公式结果-0.0025-0.2463-0.3794-0.4173-0.4334-0.4379-0.4400-0.4411-0.4427-0.4431辛普森结果-0.3276-0.3962-0.4300-0.4387-0.4422-0.4432-0.4436-0.4438-0.4441-0.4442表2:序号n12345678910步长h11/21/41/81/161/321/641/1281/2561/512龙贝格结果-0.0025-0.3149-0.3890-0.4190-
8、0.4325-0.4388-0.4417-0.4431-0.4438-0.4441