0
点赞
收藏
分享

微信扫一扫

Romberg算法(Matlab实现)


目录

​​1、概述​​

​​2、代码​​

​​3、结果​​

​​4、讨论​​

1、概述

      在前面一章,我们已经梳理了Romberg算法的相关知识点,下面我们就直接上Matlab代码以及运行结果。

2、代码

Romberg算法(Matlab实现)_算法

 

function [T,n]=mromb(f,a,b,eps) 
if nargin<4,eps=1e-6;end
h=b-a;
R(1,1)=(h/2)*(feval(f,a)+feval(f,b));
n=1;J=0;err=1;
while (err>eps)
J=J+1;h=h/2;S=0;
for i=1:n
x=a+h*(2*i-1);
S=S+feval(f,x);
end
R(J+1,1)=R(J,1)/2+h*S;
for k=1:J
R(J+1,k+1)=(4^k*R(J+1,k)-R(J,k))/(4^k-1);
end
err=abs(R(J+1,J+1)-R(J+1,J));
n=2*n;
end
R;
T=R(J+1,J+1);

3、结果

Romberg算法(Matlab实现)_matlab_02

4、讨论


Romberg 算法的优点是:


1 )把积分化为代数运算 , 而实际上只需求 T1(i), 以后用递推可得。


2 )算法简单且收敛速度快 , 一般 4 或 5 次即能达到要求。


3 )节省存储量,算出的 T m (0) 可存入 T 1(0) 。


Romberg 算法的缺点是:


1 )对函数的光滑性要求较高。


2 )计算新分点的值时 , 这些数值的个数成倍增加


 

举报

相关推荐

0 条评论