matlab 积分_MATLAB龙贝格积分算法

e36e26ee5861ff0324ebce58233b3d73.png

什么是龙贝格积分算法

d192c36f44fc873cfa9ebcc05d5856e1.png  龙贝格(Romberg)积分算法也被称为逐次分半加速算法,通过把积分区间逐次分半的方法进行数值积分求解。 由于其采用的是逐次分半计算,后一次计算是对前一次近似结果的修正,因此相对于辛普森和科特斯求积方法精度更高;并且其前一次分割计算的函数值在分半之后还可以被继续使用,因此提升了计算的效率,是一种精度较高的加速计算积分的方法。

龙贝格积分算法计算过

d192c36f44fc873cfa9ebcc05d5856e1.png

龙贝格积分算法是一种将理查森外推加速法应用于复合梯形公式而形成的一种积分方法,递推公式可表示为

(1)取 ,求   (2)利用变步长梯形公式求 ,其中 为区间的分半次数,即 (3)按照次序依据递推公式逐个求出加速值   (4)比较递推矩阵相邻对角元素,两者之差绝对值小于预设精度要求时终止计算。  

龙贝格积分算法程序设计

d192c36f44fc873cfa9ebcc05d5856e1.png 龙贝格算法程序设计如下:
function [y,T]=romberg(f,a,b,e)k=0;h=b-a;T(1,1)=h/2*(f(a)+f(b));%第一步d=h;%初始化相邻两次误差while e<=d    k=k+1;    QH=0;    for j=0:2^(k-1)-1        QH=QH+f(a+(2*j+1)*(b-a)/2^k);    end    T(k+1,1)=T(k,1)/2+(b-a)/2^k*QH;%第二步    for j=1:k        T(k+1,j+1)=T(k+1,j)+(T(k+1,j)-T(k,j))/(4^j-1);%第三步    end   d=abs(T(k+1,k+1)-T(k,k));%第四步endy=T(k+1,k+1);

龙贝格积分算法算例分析

d192c36f44fc873cfa9ebcc05d5856e1.png

应用龙贝格算法计算积分

使其精度达到 10-5 ,其精确值为0.25。

输入程序代码

f=inline('x^3')[y,T]=romberg(f,0,1,1e-5)

运行结果为

y =   0.250000000000000T =   0.500000000000000                  0                   0         0.312500000000000  0.250000000000000                   0         0.26562500000000   0.250000000000000   0.250000000000000
注: 公式和代码左右滑动查看完整效果。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值