南昌航空大学
数学与信息科学学院
实验报告
课程名称: 数值分析
实验名称: 数值积分
实验类型: 验证性■综合性□设计性□
实验室名称: D208
班级学号: 05071113
学生姓名: 杨义
任课教师(教师签名):
成绩:
实验日期: 2008-5-8
一、实验目的
(Romberg)算法,并能用高级程序语言MATLAB编写实现此算法的程序
(Romberg)算法的理解
二、实验用仪器设备、器材或软件环境
电脑、数值软件MATLAB 、手机
三、问题的提出、实验原理、预编程序等
:
用Romberg积分算法计算下面的积分,使计算结果具有八位有效数字
=
:
龙贝格(Romberg)算法思想:
将区间[a,b]划分为等分, 分点为:;根据梯形公式,求出,再根据和之间的递推公式求出;
设为加速次数,为划分区间次数,则由加速公式:
,求出第次划分,第次加速次数的梯形值,这样不断地循环,直到求出在满足精度条件下的某个作为积分值为止。
:
实现龙贝格(Romberg)算法的Matlab程序:
%*******************创建者:我不是地球人*******************%
%******************创建日期:2008-5-8***********************%
%**************此函数用来实现龙贝格(Rombeg)积分************%
function [Romberg_int_value,Tmk]=YangYi_Romberg_QiuJ_1_1(intergration_fun,a,b,eeps)
%input___intergration_fun为被积函数;
%input___a为积分下限,b为积分上限;
%input___eeps为控制精度
%output___Rombeg_int_value为积分值
%output___Tmk为积分表
format long
h=b-a;%h为初始步长
Tmk(1,1)=h*(feval(intergration_fun,a)+feval(intergration_fun,b))/2;
Tmk(2,1)=Tmk(1,1)/2+h*feval(intergration_fun,((b+a)/2))/2;
k=2;
break_go=0;%break_go为跳出循环的标志
while(abs(Tmk(k,1)-Tmk(k-1,1))>eeps)
for i=2:k
Tmk(k,i)=4^(i-1)/(4^(i-1)-1)*Tmk(k,i-1)-Tmk(k-1,i-1)/(4^(i-1)-1);%求积分表Tmk对角线下方的递推公式
if abs(Tmk(k,i)-Tmk(k,i-1))<=eeps
break_go=1;
break;
end
end
if break_go==1
break;
else
sum_x_midle=0;
for i=1:2^(k-1)%每次划分区间[a,b]时需
数值分析实验报告龙贝格积分 来自淘豆网www.taodocs.com转载请标明出处.