數值積分公式及龍貝格(Romberg)演算法實現matlab

mw_1422102031發表於2020-10-13

一、數值積分方法得基本思想

在這裡插入圖片描述

二、復化求積公式

在這裡插入圖片描述

三、基於復化梯形求積公式的高精度求積演算法——Richardson外推法和Romberg演算法

在這裡插入圖片描述
在這裡插入圖片描述

       
       
       
       

四、Romberg演算法的matlab程式:

function Romberg
% 龍貝格(Romberg數值求解公式)
% inputs:
%   -fun:積分函式控制程式碼
%   -a/b:積分上下限
%   -tol:積分誤差
% Outputs:
%   -R:4階精度Romberg積分值
%   -k:迭代次數
%   -T:整個迭代過程
%
% Example
% fun=@(x)x^5;

a = 0;
b = 1;
epsilon = 1e-6;
tol = epsilon;
fun = @(x) x^5;
k=0; % 迭代次數
n=1; % 區間劃分個數
h=b-a;
T=h/2*(fun(a)+fun(b));
err=1;
while err>=tol
    k=k+1;
    h=h/2;
    tmp=0;
    for i=1:n
        tmp=tmp+fun(a+(2*i-1)*h);
    end
    T(k+1,1)=T(k)/2+h*tmp;
    for j=1:k
        T(k+1,j+1)=T(k+1,j)+(T(k+1,j)-T(k,j))/(4^j-1);
    end
    n=n*2;
    err=abs(T(k+1,k+1)-T(k,k));
end
R=T(k+1,k+1)
end

可以直接執行的,只出來積分的結果。

程式參考網址

相關文章