数值积分:龙贝格求积

一、数学原理
在变步长的复化梯形计算过程中运用:
在这里插入图片描述
就能将粗糙的梯形值Tn逐步加工成精度较高的辛普森值Sn、柯特斯值Cn和龙贝格值Rn。或者说,将收敛缓慢的梯形值序列Tn加工成收敛迅速的龙贝格值序列Rn,这种线性外推的加速方法称为龙贝格算法(龙贝格公式),其通用计算公式为:
在这里插入图片描述
二、实验内容

%脚本文件,调用romberg函数求积分sin(x^2)/x
format compact
clc,clear,ep=1e-4;
fun=@(x)sin(x.^2)./x; 
[t,T]=romberg(fun,1e-6,1,ep);
disp('龙贝格求积T表如下:');
digits(7);B=vpa(T);
disp(B);
y1=vpa(t);  
y2=vpa(integral(fun,1e-6,1));
disp('龙贝格求积公式求积结果:');fprintf('%c', 8);
disp(y1);
disp('            精确值参考:');fprintf('%c', 8);
disp(y2);
%龙贝格算法函数文件
function [t,T]=romberg(fname,a,b,e)
format long
if nargin<4
    e=1e-4;
end
i=1;j=1;h=b-a;
T(i,1)=(fname(a)+fname(b))*h/2; % 梯形计算
T(i+1,1)=T(i,1)/2+sum(feval(fname,a+h/2:b-h/2+0.001*h))*h/2; 
T(i+1,j+1)=4^j*T(i+1,j)/(4^j-1)-T(i,j)/(4^j-1);
while abs(T(i+1,i+1)-T(i,i))>e
    i=i+1;h=h/2;
    T(i+1,1)=T(i,1)/2+sum(feval(fname,a+h/2:h:b-h/2+0.001*h))*h/2;
    for j=1:i
        T(i+1,j+1)=4^j*T(i+1,j)/(4^j-1)-T(i,j)/(4^j-1);
    end
end
t=T(i+1,j+1);

三、实验结果与分析

龙贝格算法运行结果:
请添加图片描述

通过步长的变化-折半和线性外推法,可以将梯形公式、辛普森公式以及柯特斯公式联系起来,使得精度迅速提高,这就是龙贝格算法的思想,也称为理查森线性外推算法。从计算过程可以得出,只计算了4次的复化梯形求积,但是通过外推技巧,其计算结果从只有 位有效数字提升到 位有效数字,其计算精度有了大幅提升,而计算量增加不多。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您的问题是关于数值积分的不同计算方法的比较。这里是我对各方法的简要介绍和比较: 1. 梯形公式计算数值积分:梯形公式是最简单的数值积分方法之一,它将被积函数曲线上相邻两点之间的面积近似为一个梯形的面积。梯形公式的误差随着网格点的增多而缩小,但是它的收敛速度较慢。 2. 辛普森公式计算数值积分:辛普森公式是另一种简单的数值积分方法,它将被积函数曲线上相邻三个点之间的面积近似为一个二次曲线的面积。辛普森公式的误差随着网格点的增多而缩小的速度比梯形公式快得多。 3. 科特斯公式计算数值积分:科特斯公式是一个更高阶的数值积分方法,它将被积函数曲线上相邻四个点之间的面积近似为一个三次曲线的面积。科特斯公式的误差随着网格点的增多而缩小的速度比辛普森公式更快。 4. 复合梯形公式计算数值积分:复合梯形公式将整个积分区间分成若干个小区间,然后在每个小区间内使用梯形公式计算数值积分,最后将所有小区间的积分值相加得到总的积分值。复合梯形公式的误差随着小区间的数量增多而缩小,但是计算量较大。 5. 复合辛普森公式计算数值积分:复合辛普森公式与复合梯形公式类似,但是使用的是辛普森公式来计算每个小区间的积分值。复合辛普森公式的误差随着小区间的数量增多而缩小的速度比复合梯形公式快得多。 6. 复合科特斯公式计算数值积分:复合科特斯公式与复合辛普森公式类似,但是使用的是科特斯公式来计算每个小区间的积分值。复合科特斯公式的误差随着小区间的数量增多而缩小的速度比复合辛普森公式更快。 7. 龙贝格求积公式计算数值积分龙贝格求积公式是一种递归算法,它将复合梯形公式不断逼近到积分的精度要求。使用龙贝格求积公式时,需要先计算一些低阶的近似值,然后根据这些近似值计算更高阶的近似值。龙贝格求积公式的收敛速度非常快,但是计算量也非常大。 综上所述,各种数值积分方法都有其优缺点。在实际应用中,需要根据具体问题的特点选择最适合的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值