文档详情

梯形法数值积分.doc

发布:2019-09-10约6.18千字共16页下载文档
文本预览下载声明
《MATLAB 程序设计实践》课程考核 一、编程实现以下科学计算算法,并举一例应用之。(参考书籍《精通MALAB科学计算》,王正林等著,电子工业出版社,2009年) “矩形法、梯形法数值积分” 1.梯形法数值积分 A.算法说明: 梯形法数值积分采用的梯形公式是最简单的数值积分公式,函数在区间[a,b]上计算梯形法数值积分表达式为: 由于用梯形公式来求积分十分粗糙,误差也比较大,后来改进后提出了复合梯形公式:,其中,n为积分区间划分的个数;h为积分步长。 在MATLAB中编程实现的复合梯形公式的函数为:Combine Traprl. 功能:复合梯形公式求函数的数值积分。 调用格式:[I,step]=CombineTraprl(f,a,b,eps). 其中,f为函数名; a为积分下限; b为积分上限; eps为积分精度; I为积分值; Step为积分划分的区间个数 B.流程图 开始 开始 abs ( I2 –I1 ) eps n=n+1; h=(b-a) / n; I1=I2; I2=0; for i=0:n-1 x=a+h*i; x1=x+h; I2=I2+( h/2 ) * ( subs ( sym ( f ) , findsym ( sym ( f ) ) , x ) +subs (sym ( f ) , findsym ( sym ( f ) ), x1) ); I=I2; Step=n; 结束 是 否 否 n=1; h=(b-a)/2; I1=0; I2= ( subs (sym ( if ) , findsym ( sym ( f ) ) , a ) + subs ( sym ( f ), findsym ( sym ( f ) ) , b ) ) / h; 是 C.复合梯形公式的MATLAB代码: function[I,step]=CombineTraprl(f,a,b,eps) %复合梯形公式求函数f在区间[a,b]上的定积分 %函数名:f %积分下限:a %积分上限:b %积分精度:eps %积分值:I %积分划分的子区间个数:step if(nargin==3) eps=1.0e-4; %默认精度为0.0001 end n=1; h=(b-a)/2; I1=0; I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)eps n=n+1; h=(b-a)/n; I1=I2; I2=0; for i=0:n-1 %第n次的复合梯形公式积分 x=a+h*i; %i=0 和n-1时,分别代表积分区间的左右端点 x1=x+h; I2=I2+(h/2)*(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1)); end end I=I2; step=n; D.应用举例: 复合梯形法求数值积分应用举例,利用复合梯形法计算定积分 流程图 调用函数 调用函数CombineTraprl(f,a,b,eps) f= 1/(x^2-1) a=2; b=4 结束 开始 b. 原程序代码: [q,s]=CombineTraprl(1/(x^2-1),2,4) %精度为默认的10-4 结果 [q,s]=CombineTraprl(1/(x^2-1),2,4,1.0e-6) %精度为10-6 结果: 所以从复合梯形公式可以得出0.2939 2.矩形法数值积分的源程序 function[I,step]=CombineTraprl(f,a,b,eps) % 复合矩形公式求函数f在区间[a,b]上的定积分 %函数名:f %积分下限:a %积分上限:b %积分精度:eps %积分值:I %积分划分的子区间个数:step if(nargin==3) eps=1.0e-4; %默认精度为0.0001 end n=1; h=b-a; I1=0; I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))/h; while abs(I2-I1)eps n=n+1; h=(b-a)/n; I1=I2; I2=0; for i=0:n-1
显示全部
相似文档