数值分析实验报告之数值积分

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数学与计算科学学院实验报告实验项目名称数值积分所属课程名称数值方法B实验类型验证实验日期2013.10.21班级学号姓名成绩1一、实验概述:【实验目的】1.熟悉C语言与MATLAB的编程;2.学会使用梯形公式、辛普森公式、复化梯形公式、复化辛普森公式求积分的方法;3.比较各方法的精度;4.用编程软件写出上述四个公式,并实例化。5.此外,本实验还附加了cotes公式以及复化cotes公式的C语言源程序。【实验原理】1.梯形公式:()()2baTfafb2.辛普森公式:()4()()62baabSfaffb3.复化梯形公式:11()2()()2nnkkhTfafxfb4.复化辛普森公式:121101()4()2()()6nnnkkkkhSfafxfxfb其中bahn。【实验环境】1.硬件环境:HPMicrosoft76481-640-8834005-23929HPCorporationIntel(R)Core(TM)I5-2400CPU@3.10GHz3.09GHz,3.16GB的内存2.软件环境:MicrosoftWindowsXPProfessional版本2002ServicePack32二、实验内容:【实验方案】1.用复合求积公式计算12084xdxnx、1210(1)10xedxnx、914xdxn,并比较各方法的精度;2.分别讨论当区间n等分,当n=8,10,100,1000,10000时比较n取值不同时对数值精度的影响的结果【实验过程】(实验步骤、记录、数据、分析)1.12084xdxnx用MATLAB中的int求积函数(源程序详见附录1)得到该积分的准确值为x*=0.111571776梯形公式:0.1000000000精度:一位有效数字辛普森公式:0.1117647059精度:三位有效数字该问C语言编程详见附录1-4/1-5(1)当n=8时,结果为:Tn=0.1114023545Sn=0.1115718133(2)当n=10时,结果为:Tn=0.1114633808Sn=0.1115717910(3)当n=100时,结果为:Tn=0.1115706923Sn=0.1115717757表1各积分方法的比较2.1210(1)10xedxnx用MATLAB中的int求积函数得到该积分的准确值为x*=1.852112521等分段数n值备注复化梯形公式复合辛普生公式n=8积分值0.11140235450.1115718133精度三位有效数字七位有效数字n=10积分值0.11146338080.1115717910精度三位有效数字七位有效数字n=100积分值0.11157069230.1115717757精度五位有效数字八位有效数字n=1000积分值0.11157176480.1115717757精度七位有效数字八位有效数字n=10000积分值0.11157177550.1115717757精度八位有效数字八位有效数字3梯形公式:0.897530048810325精度:一位有效数字辛普森公式:1.135538476301203精度:一位有效数字该问MATLAB编程详见附录1-6/1-7(1)当n=8时,结果为:Tn=1.337355373803341Sn=1.537749799432108(2)当n=10时,结果为:Tn=1.391477663937609Sn=1.570881071946639(3)当n=100时,结果为:Tn=1.706124330945894Sn=1.763114638290155表2各积分方法的比较3.914xdxn用MATLAB中的int求积函数得到该积分的准确值为x*=17.33333333梯形公式:16.0000000000精度:一位有效数字辛普森公式:17.2590292133精度:二位有效数字该问C语言编程详见附录1-8/1-9(1)当n=8时,结果为:Tn=17.2277401923Sn=17.3320873040(2)当n=10时,结果为:Tn=17.3157464834Sn=17.3332868525(3)当n=100时,结果为:Tn=17.3331555768等分段数n值备注复化梯形公式复合辛普生公式n=8积分值1.3373553738033411.537749799432108精度一位有效数字二位有效数字n=10积分值1.3914776639376091.570881071946639精度一位有效数字二位有效数字n=100积分值1.7061243309458941.763114638290155精度二位有效数字三位有效数字n=1000积分值1.8059336531563621.823966876760183精度三位有效数字三位有效数字n=10000积分值1.8375090274939211.843212022270629精度三位有效数字四位有效数字4Sn=17.3333333280表3各积分方法的比较【实验结论】(结果)1.当n逐渐增大(n=8→n=10000)时,复化梯形的结果也逐渐接近复化辛普森的结果,其精度越来越高,越趋于理想值。2.当n达到一定值时,由于小数位数的限制,结果会出现不变的情况。3.当n很小(n=0,1,2,…)时,其利用复化梯形公式得到的近似值与准确值误差较大,而复化辛普森公式则更精确一些。4.梯形公式的精度较辛普森公式所得结果的精度低,四种方式中,复化辛普森的精度最高,复化梯形次之。等分段数n值备注复化梯形公式复合辛普生公式n=8积分值17.227740192317.3320873040精度二位有效数字四位有效数字n=10积分值17.315746483417.3332868525精度二位有效数字五位有效数字n=100积分值17.333155576817.3333333280精度五位有效数字九位有效数字n=1000积分值17.333331555617.3333333333精度七位有效数字九位有效数字n=10000积分值17.333333315617.3333333333精度九位有效数字九位有效数字【实验小结】(收获体会)通过本次试验,让我巩固了C语言以及MATLAB的编程知识,也让我认识到各算法的优越之处,并且通过此次试验很好的回归课本,得出了各算法精度的差异之处,如何抉择和取舍要用的算法。三、指导教师评语及成绩:评语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确.成绩:指导教师签名:批阅日期:5附录1:源程序1.准确值x*的计算程序:clearclcsymsxyy=(sqrt(1-exp(-x)))/x;f=vpa(int(y,0,1),10)2.梯形公式:#includestdio.h#includemath.hdoublefun(doublex){doublet;t=sqrt(x);return(t);}main(){doublea,b;doubleT,fa=1.0;printf(请输入积分上下限a,b(数字间以空格键隔开):);scanf(%lf%lf,&a,&b);T=(b-a)*(fa+fun(b))/2;printf(T=%.10lf\n,T);}3.辛普森公式:#includestdio.h#includemath.hdoublefun(doublex){doublet;t=x/(4+x*x);return(t);}main(){doublea,b;6doubleS,fa=1.0;printf(请输入积分上下限a,b(数字间以空格键隔开):);scanf(%lf%lf,&a,&b);S=(b-a)*(fun(a)+4*fun((a+b)/2)+fun(b))/6;printf(S=%.10lf\n,S);}4.复化梯形公式#includestdio.h#includemath.hdoublefun(doublex){doublet;t=x/(4+x*x);return(t);}main(){doublea,b,j,k;intn;doubleTn,h,s1=0.0;printf(请输入积分上下限a,b以及等分段数n(数字间以空格键隔开):);scanf(%lf%lf%d,&a,&b,&n);h=(b-a)/n;for(k=1;k=n-1;k++){fun(a+k*h);s1=s1+2*fun(a+k*h);}Tn=h*(fun(a)+s1+fun(b))/2;printf(Tn=%.10lf\n,Tn);}5.复化辛普森公式#includestdio.h#includemath.hdoublefun(doublex){7doublet;t=x/(4+x*x);return(t);}main(){doublea,b,j,k,p;intn;doubleSn,h,s1=0.0,s2=0.0;printf(请输入积分上下限a,b以及等分段数n(数字间以空格键隔开):);scanf(%lf%lf%d,&a,&b,&n);h=(b-a)/n;for(k=0;k=n-1;k++){fun(a+(k+0.5)*h);s1+=fun(a+(k+1.0/2.0)*h);}for(k=1;k=n-1;k++){fun(a+k*h);s2+=fun(a+k*h);}Sn=h*(fun(a)+4*s1+2*s2+fun(b))/6;printf(Sn=%.10lf\n,Sn);}6.复化梯形公式%函数文件functiony=f(x)y=(1-exp(-x))^(1/2)/x;%调用函数clearclcformatlong8n=input('请输入等分段数:');x=0:1/n:1;y=[];N=length(x);fori=2:Ny(i)=f(x(i));endT=0;forj=1:N-1b=(1/2).*(x(j+1)-x(j)).*(y(j+1)+y(j));T=T+b;enddisp('复化梯形积分值');disp(T)7.复化辛普森公式%函数文件functiony=f(x)y=(sqrt(1-exp(-x)))/x;%调用函数clearclcformatlongn=input('请输入等分段数:');x=0:1/n:1;y=[];N=length(x);fori=2:Ny(i)=f(x(i));ends=0;H=(1-0)./n;forj=1:N-1m=(x(j)+x(j+1))./2;b=(1/6).*H.*(y(j)+4*f(m)+y(j+1));s=s+b;enddisp('复化的simpson公式');disp(s)98.复化梯形公式#includestdio.h#includemath.h#definee2.7doublefun(doublex){doublet;t=sqrt(x);return(t);}main(){doublea,b,j,k;intn;doubleTn,h,s1=0.0,fa=1.0;printf(请输入积分上下限a,b以及等分段数n(数字间以空格键隔开):);scanf(%lf%lf%d,&a,&b,&n);h=(b-a)/n;for(k=1;k=n-1;k++){fun(a+k*h);s1=s1+2*fun(a+k*h);}Tn=h*(fa+s1+fun(b))/2;printf(Tn=%lf\n,Tn);}9.复化辛普森公式#includestdio.h#includemath.hdoublefun(doublex){doublet;t=sqrt(x);return(t);}main(){10doublea,b,j,k,p;intn;doubleSn,h,s1=0.0,s2=0.0;printf(请输入积分上

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功