数值分析作业.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 2 数值积分的Matlab的实现 一、课题名称 选用复合梯形公式,复合Simpson公式,Romberg算法,计算 (1)I = (2)I = (3)I = (4) I = 二、要求 1、编制数值积分算法的程序; 2、分别用两种算法计算同一个积分,并比较其结果; 3、分别取不同步长,试比较计算结果(如n = 10, 20等); 4、﹡给定精度要求,试用变步长算法,确定最佳步长﹡。 三、目的和意义 1、深刻认识数值积分法的意义; 2、明确数值积分精度与步长的关系; 3、根据定积分的计算方法,可以考虑二重积分的计算问题。 四、内容 1、复合梯形公式: 复合Simpson公式: 3、Romberg公式: 五、Matlab编程: 将以下程序录入Matlab的Editor窗口中,保存为*.m函数文件。 1、复合梯形公式编程如下: function [I,step] = CombineTraprl(f,a,b,eps) %f 被积函数 %a,b 积分上下限 %eps 精度 %I 积分结果 %step 积分的子区间数 if(nargin ==3) eps=1.0e-4; 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 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)); end end I=I2; step=n; 2、复化Simpson公式编程如下: function [I step]= Simpson(f,a,b,eps) % f为函数, % a为积分上限, % b为积分下限, % eps为积分精度 % step为划分区间个数 if(nargin==3) eps=1.0e-4; end n=2; h=(b-a)/2; I1=2; 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 x=a+h*i; x1=x+h; I2=I2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+... 4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+... subs(sym(f),findsym(sym(f)),x1));%公式 end I=I2; step=n; end 3、龙贝格求积公式编程如下: function [I,step]=Roberg(f,a,b,eps) if(nargin==3) eps=1.0e-4; end; M=1; tol=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)); while toleps k=k+1; h=h/2; Q=0; for i=1:M x=a+h*(2*i-1); Q=Q+subs(sym(f),findsym(sym(f)),x); end T(k+1,1)=T(k,1)/2+h*Q; M=2*M; for j=1:k T(k+1,j+1)=T(k+1,j)+(T(k+1,j)-T(k,j))/(4^j-1); end tol=abs(T(k+1,j+1)-T(k,j)); end I=T(k+1,k+1); step=k; 六、运行程序: 1、I = 1.1用复合梯形求积公式: 在Matlab的Command Window中键入如下内容: CombineTrapr

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档