![e36e26ee5861ff0324ebce58233b3d73.png](https://i-blog.csdnimg.cn/blog_migrate/5cbbb4a098865c25c57d3880e3faa34d.jpeg)
什么是龙贝格积分算法
![d192c36f44fc873cfa9ebcc05d5856e1.png](https://i-blog.csdnimg.cn/blog_migrate/42a71780be234848975bba7b37b13bc2.png)
龙贝格积分算法计算过程
![d192c36f44fc873cfa9ebcc05d5856e1.png](https://i-blog.csdnimg.cn/blog_migrate/42a71780be234848975bba7b37b13bc2.png)
龙贝格积分算法是一种将理查森外推加速法应用于复合梯形公式而形成的一种积分方法,递推公式可表示为
(1)取 ,求 (2)利用变步长梯形公式求 ,其中 为区间的分半次数,即 (3)按照次序依据递推公式逐个求出加速值 (4)比较递推矩阵相邻对角元素,两者之差绝对值小于预设精度要求时终止计算。龙贝格积分算法程序设计
![d192c36f44fc873cfa9ebcc05d5856e1.png](https://i-blog.csdnimg.cn/blog_migrate/42a71780be234848975bba7b37b13bc2.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](https://i-blog.csdnimg.cn/blog_migrate/42a71780be234848975bba7b37b13bc2.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
注:
公式和代码左右滑动查看完整效果。