资源描述:
《数学实验“几种常见的求积分近似解的方法”实验报告(内含matlab程序)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、西京学院数学软件实验任务书课程名称数学软件实验班级数0901学号0912020107姓名李亚强实验课题Romberg积分法,Gauss型积分法,高斯-勒让德积分法,高斯-切比雪夫积分法,高斯-拉盖尔积分法,高斯-埃尔米特积分法实验目的熟悉Romberg积分法,Gauss型积分法,高斯-勒让德积分法,高斯-切比雪夫积分法,高斯-拉盖尔积分法,高斯-埃尔米特积分法实验要求运用Matlab/C/C++/Java/Maple/Mathematica等其中一种语言完成实验内容Romberg积分法,Gauss型
2、积分法,高斯-勒让德积分法,高斯-切比雪夫积分法,高斯-拉盖尔积分法,高斯-埃尔米特积分法成绩教师-8-实验二十一实验报告一、实验名称:Romberg积分法,Gauss型积分法,高斯-勒让德积分法,高斯-切比雪夫积分法,高斯-拉盖尔积分法,高斯-埃尔米特积分法。二、实验目的:进一步熟悉Romberg积分法,Gauss型积分法,高斯-勒让德积分法,高斯-切比雪夫积分法,高斯-拉盖尔积分法,高斯-埃尔米特积分法。三、实验要求:运用Matlab/C/C++/Java/Maple/Mathematica等其
3、中一种语言完成程序设计。四、实验原理:1.Romberg积分法:龙贝格积分法是用里查森外推算法来加快复合梯形求积公式的收敛速度,它的算法如下,其中是通过一系列逼近原定积分的龙贝格分值.计算对,计算下列各步:对和,计算-8-随着计算的步骤的增加,越来越逼近积分。1.Gauss型积分法:高斯积分公式的思想是用个不等距的节点对被积函数进行插值,然后对插值后的函数进行积分,其积分公式为:如果积分区间不是,则需转换到此区间:其中系数、节点与的关系如下表所示:2.高斯-切比雪夫积分法:第一类切比雪夫积分形式为:
4、其中,3.高斯-拉盖尔积分法:高斯-拉盖尔公式有两种形式:-8-下面编制的程序是针对第一种形式的高斯-拉盖尔公式,即因此程序的第一个输入参数——被积函数,是上式中的。1.高斯-埃尔米特积分法:高斯-埃尔米特公式有以下两种形式:下面编制的程序是针对第一种形式的高斯-埃尔米特公式,即因此程序的第一个输入参数——被积函数,是上式中的。一、实验内容:%Romberg积分法function[q,step]=Roberg(f,a,b,eps)if(nargin==3)-8-eps=1.0e-4;endM=1;t
5、ol=10;k=0;T=zeros(1,1);h=b-a;T(1,1)=(h/2)*(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b));whiletol>epsk=k+1;h=h/2;Q=0;fori=1:Mx=a+h*(2*i-1);Q=Q+subs(sym(f),findsym(sym(f)),x);endT(k+1,1)=T(k,1)/2+h*Q;M=2*M;forj=1:kT(k+1,j+1)=T(k+1,j)+(T
6、(k+1,j)-T(k,j))/(4^j-1);endtol=abs(T(k+1,j+1)-T(k,j));endq=T(k+1,j+1);step=k;%Gauss型积分法functionq=IntGauss(f,a,b,n,AK,XK)if(n<5&&nargin==4)AK=0;XK=0;elseXK1=((b-a)/2)*XK+((a+b)/2);q=((b-a)/2)*sum(AK.*subs(sym(f),findsym(f),XK1));endta=(b-a)/2;tb=(a+b)/2
7、;-8-switchncase1q=2*ta*subs(sym(f),findsym(sym(f)),tb);case2q=ta*(subs(sym(f),findsym(sym(f)),ta*0.5773503+tb)+subs(sym(f),findsym(sym(f)),-ta*0.5773503+tb));case3q=ta*(0.55555556*subs(sym(f),findsym(sym(f)),ta*0.7745967+tb)+0.55555556*subs(sym(f),find
8、sym(sym(f)),-ta*0.7745967+tb)+0.88888889*subs(sym(f),findsym(sym(f)),tb));case4q=ta*(0.3478548*subs(sym(f),findsym(sym(f)),ta*0.8611363+tb)+0.3478548*subs(sym(f),findsym(sym(f)),-ta*0.8611363+tb)+0.6521452*subs(sym(f),findsym(sym(f)),ta