欢迎来到天天文库
浏览记录
ID:34071854
大小:246.34 KB
页数:10页
时间:2019-03-03
《计算方法第二次上机作业》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算方法第二次上机作业Gegebao摘要:程序基于MATLAB,包括问题陈述、算法与程序、结果与分析、讨论四个部分。一、问题陈述数学上已经证明了:0141+x2dx=π成立,所以可以通过积分来计算π的近似值。(1)分别使用矩形、梯形和Simpson复合求积公式计算π的近似值。选择不同的h,对于每种求积公式,试将误差刻画成h的函数,并比较各方面的精度。是否存在某个h值,当低于这个值之后,再继续减少h的值,计算不再有所改进?为什么?(2)实现Romberg求积方法,并重复上面的计算。(3)使用自适应求积方法重复上面的计算。二、算法与程序1.矩形求积法考虑到对于具体的某一个h,不一定能整数个地
2、覆盖积分空间,将会严重地影响算法精度。于是我们用n代替h,即将积分区间划分为n个区间,h=1/n。函数将输出积分结果Rec和这个结果对于精确的π的误差的对数值r。function[Recr]=rec(n)h=1/n;%求出对应的hRec=0;fori=1:nx0=h*(i-1/2);%求出每一区间的中心点的横坐标Rec=Rec+h*4/(1+x0^2);endr=log10(abs(Rec-pi));%取其误差的对数end2.梯形求积法和矩形法一样,采用n来标度取点密度。同样输出积分结果Lad和这个结果对于精确的π的误差的对数值r。function[Ladr]=lad(n)h=1/n;L
3、ad=0;fori=1:nx0=h*(i-1);x1=x0+h;取得每个区间的端点的横坐标Lad=Lad+h/2*(4/(1+x0^2)+4/(1+x1^2));endr=log10(abs(Lad-pi));end3.Simpson求积法输入取点数目n,h=1/n,输出积分结果Simp和这个结果对于精确的π的误差的对数值r。function[Simp,r]=simp(n)h=1/n;Simp=0;fori=1:nx0=h*(i-1);x1=x0+h/2;x2=x1+h/2;Simp=Simp+h/6*(4/(1+x0^2)+4*4/(1+x1^2)+4/(1+x2^2));endr=l
4、og10(abs(Simp-pi));end4.Romberg求积法输入最初取点数目n(h=1/n)和需求递推下去的步数k,输出积分结果Rom和这个结果对于精确的π的误差的对数值r。function[Rom,r]=rom(n,k)fori=1:k;[a(i,1)c]=lad(2^(i-1)*n);%调用lad函数,求出递推矩阵第一列的数值endfori=2:kforj=1:k-i+1a(j,i)=(a(j+1,i-1)-4^(1-i)*a(j,i-1))/(1-4^(1-i));endendRom=a(1,k);r=log10(abs(Rom-pi));end5.分别基于前几种算法的自适
5、应算法(1)基于矩形法输入初始的取点数n(h=1/n)和所需要的精度∈的对数值e,输出积分结果对于精确的π的误差的对数值r。function[r]=Arec(n,e)temp0=0;temp1=1;%temp0为T(h),Temp1为T(h/2)while(log10(abs(temp0-temp1))>e)temp0=temp1;n=n*2;temp1=rec(n);endr=log10(abs(temp1-pi));end(2)基于梯形法输入初始的取点数n(h=1/n)和所需要的精度∈的对数值efunction[r]=Alad(n,e)temp0=0;temp1=1;while(lo
6、g10(abs(temp0-temp1))>e)temp0=temp1;n=n*2;temp1=lad(n);endr=log10(abs(temp1-pi));end(3)基于Simpson法输入初始的取点数n(h=1/n)和所需要的精度∈的对数值efunction[r]=Asimp(n,e)temp0=0;temp1=1;while(log10(abs(temp0-temp1))>e)temp0=temp1;n=n*2;temp1=simp(n);endr=log10(abs(temp1-pi));end(4)基于Romberg法输入初始的取点数n(h=1/n)和所需要的精度∈的对数
7、值e,取递推步数k=5function[r]=Arom(n,e)temp0=0;temp1=1;while(log10(abs(temp0-temp1))>e)temp0=temp1;n=n*2;temp1=rom(n,5);endr=log10(abs(temp1-pi));end三、结果与分析使用之前的积分函数进行运算。考虑到h的变化范围比较大,将h等比例地从1取到10^(-7),取200个点。最后将h和误差按对数输出成图像。1
此文档下载收益归作者所有