MATLAB复化梯形法与龙贝格法计算定积分.doc

上传人:hw****26 文档编号:2126248 上传时间:2019-04-29 格式:DOC 页数:6 大小:97.50KB
下载 相关 举报
MATLAB复化梯形法与龙贝格法计算定积分.doc_第1页
第1页 / 共6页
MATLAB复化梯形法与龙贝格法计算定积分.doc_第2页
第2页 / 共6页
MATLAB复化梯形法与龙贝格法计算定积分.doc_第3页
第3页 / 共6页
MATLAB复化梯形法与龙贝格法计算定积分.doc_第4页
第4页 / 共6页
MATLAB复化梯形法与龙贝格法计算定积分.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

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; %准备初值%w

2、hile abs(t2-t1)e %while语句控制计算精度以及控制计算时长if t2=0 %按照变步长梯形法 h=h/2; %递推公式求二分后积分值t1=t2;ends=0;x=a+h/2;while x=4s=0;x=a+h/2;while xbs=s+f(x);x=x+h;endt2=(t1/2)+(h/2)*s;s2=t2+(t2-t1)/3;if k=1k=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)/6

3、3;if k=3r1=r2;c1=c2; k=k+1;h=h/2;t1=t2;s1=s2;continueendif abs(r2-r1)e breakelser1=r2;c1=c2; k=k+1;h=h/2;t1=t2;s1=s2;continueendenddisp(插值结果= );disp(r2); endfunction y =f(x) %被积分函数% if x=0y=sin(x)/x;elsey=1;endend5.运行结果:6.实验小结:(1)刚开始没注意到 积分中,被积函数在 x=0 点函数值为 1,而编程中函数定义 f(x)=sin(x)/x,当 x=0 时,程序只能得到结果

4、0/0=NaN(无穷大) ,导致后面积分计算算法完全失去意义,后来采取 if 和 else 以特殊情况对待 x=0,才解决问题;(2)龙贝格法是对变步长梯形法的升华,在对复合梯形法理解透彻,并且编程合理,再去解决龙贝格法编程,容易很多;(3)充分理解两个算法的内涵和推理过程,对于编程正确性有很大帮助,刚开始由于对变步长梯形法理解不到位,一处循环采用if 语句(本应采用 while)导致计算结果不受约束条件约束的错误;(4)由于龙贝格法至少要算 4 个 T 值后才有 R 值,但由于龙贝格法收敛快,导致第一个 R 值就已经达到相当位数的有效数字,而导致检验数据 中的 约束条件根本起不0.1到应有的精度约束效果。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课程笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。