龙贝格积分的伪代码:
n = 0 N = 2 * n // N 为分段小区间的个数 h = (b − a) / N // h 为分段区间长 Delta_R = 10^20 * e //相邻两个 Romberg 积分的差值,e为事先指定的很小的一个数 T_N = 0.5 * h * [f(a) + f(b)] //矩形法T_1 while |Delta_R| > e do //|Delta_R|反映步长减半对积分精度的提高 S = 0 //计算新增节点带来的矩形法的修正 for i = 0 to (N − 1) do S = S + f( a + (i + 0.5) * h ) end for T_2N = 0.5 * T_N + 0.5 * h * S //计算矩形法的T_2N n = n + 1 //区间数的变化 N = 2 * N h = h / 2.0 if n==1 then //刚计算出 T_1 和 T_2 时,只能算出 S_1 S_N = (4 * T_2N − T_N ) / 3.0 T_N = T_2N //迭代 else if n==2 then //刚算出 T_2 和 T_4 时,只能算出 S_2 和 C_1 S_2N = (4 * T_2N − T_N) / 3.0 C_N = (16 * S_2N − S_N) / 15.0 T_N = T_2N //迭代 S_N = S_2N else if n==3 then //刚计算出 T_4 和 T_8 时,只能算出 S_4 ,C_2 ,R_1 S_2N = (4 * T_2N − T_N) / 3.0 C_2N = (16 * S_2N − S_N) / 15.0 R_N = (64 * C_2N − C_N) / 63.0 T_N = T_2N //迭代 S_N = S_2N C_N = C_2N else //当 n >= 4 时步长每缩减一半就会新算出一个R_2N S_2N = (4 * T_2N − T_N ) / 3.0 C_2N = (16 * S_2N − S_N ) / 15.0 R_2N = (64 * C_2N − C_N ) / 63.0 Delta_R = R_2N − R_N //计算步长减半带来的精度提高 T_N = T_2N //迭代 S_N = S_2N C_N = C_2N R_N = R_2N end if end while return R_2N