MATLAB复化梯形法与龙贝格法计算定积分.doc_第1页
MATLAB复化梯形法与龙贝格法计算定积分.doc_第2页
MATLAB复化梯形法与龙贝格法计算定积分.doc_第3页
MATLAB复化梯形法与龙贝格法计算定积分.doc_第4页
MATLAB复化梯形法与龙贝格法计算定积分.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

姓名:樊元君 学号:2012200902 日期:2012.11.06 1.实验目的:掌握复化梯形法与龙贝格法计算定积分。2.实验内容:分别写出变步长梯形法与龙贝格法计算定积分的算法,编写程序上机调试出结果,要求所编程序适用于任何类型的定积分,即能解决这一类问题,而不是某一个问题。实验中以下列数据验证程序的正确性。 求。3.程序流程图: 变步长梯形法流程图:龙贝格法流程图:4.源程序: 变步长梯形法:function y =BTX(a,b,e)a=input(a=);b=input(b=);e=input(e=);h=(b-a);t1=(f(a)+f(b)*h)/2;t2=0; %准备初值% while abs(t2-t1)e %while语句控制计算精度以及控制计算时长 if t2=0 %按照变步长梯形法 h=h/2; %递推公式求二分后积分值 t1=t2; end s=0; x=a+h/2; while x=4 s=0;x=a+h/2; while xb s=s+f(x);x=x+h; end t2=(t1/2)+(h/2)*s; s2=t2+(t2-t1)/3;if k=1 k=k+1;h=h/2;t1=t2;s1=s2;continueend c2=s2+(s2-s1)/15;if k=2c1=c2; k=k+1;h=h/2;t1=t2;s1=s2; continueendr2=c2+(c2-c1)/63;if k=3 r1=r2;c1=c2; k=k+1;h=h/2;t1=t2;s1=s2;continueend if abs(r2-r1)e break else r1=r2;c1=c2; k=k+1;h=h/2;t1=t2;s1=s2; continue end end disp(插值结果=);disp(r2); endfunction y =f(x) %被积分函数% if x=0 y=sin(x)/x; else y=1; end end5.运行结果:6.实验小结:(1)刚开始没注意到积分中,被积函数在x=0点函数值为1,而编程中函数定义f(x)=sin(x)/x,当x=0时,程序只能得到结果0/0=NaN(无穷大),导致后面积分计算算法完全失去意义,后来采取if和else以特殊情况对待x=0,才解决问题;(2)龙贝格法是对变步长梯形法的升华,在对复合梯形法理解透彻,并且编程合理,再去解决龙贝格法编程,容易很多;(3)充分理解两个算法的内涵和推理过程,对于编程正确性有很大帮助,刚开始由于对变步长梯形法理解不到位,一处循环采用if语句(本应采用while)导致计算结果不受约束条件约束的错误;(4)由于龙贝格法至少要算4个T值后才有R值,但

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论