计算方法实验(二):龙贝格积分法 您所在的位置:网站首页 逐步梯形法 计算方法实验(二):龙贝格积分法

计算方法实验(二):龙贝格积分法

2023-12-17 21:13| 来源: 网络整理| 查看: 265

Romberg积分法数学原理

利用复化梯形求积公式、复化辛普生求积公式、复化柯特斯求积公式的误差估计式计算积分 ∫ a b f ( x ) d x \int_{a}^{b}{f(x)dx} ∫ab​f(x)dx。记 h = b − a n h = \frac{b - a}{n} h=nb−a​, x k = a + k ⋅ h x_{k} = a + k \cdot h xk​=a+k⋅h, k = 0 , 1 , ⋯   , n k = 0,1,\cdots,n k=0,1,⋯,n,其计算公式:

T n = 1 2 h ∑ k = 1 n [ f ( x k − 1 ) + f ( x k ) ] T_{n} = \frac{1}{2}h\sum_{k = 1}^{n}\lbrack f(x_{k - 1}) + f(x_{k})\rbrack Tn​=21​hk=1∑n​[f(xk−1​)+f(xk​)]

T 2 n = 1 2 T n + 1 2 h ∑ k = 1 n f ( x k − 1 2 h ) T_{2n} = \frac{1}{2}T_{n} + \frac{1}{2}h\sum_{k = 1}^{n}{f(x_{k} - \frac{1}{2}h}) T2n​=21​Tn​+21​hk=1∑n​f(xk​−21​h)

S n = 1 3 ( 4 T 2 n − T n ) S_{n} = \frac{1}{3}(4T_{2n} - T_{n}) Sn​=31​(4T2n​−Tn​)

C n = 1 15 ( 16 S 2 n − S n ) C_{n} = \frac{1}{15}(16S_{2n} - S_{n}) Cn​=151​(16S2n​−Sn​)

R n = 1 63 ( 64 C 2 n − C n ) R_{n} = \frac{1}{63}(64C_{2n} - C_{n}) Rn​=631​(64C2n​−Cn​)

一般地,利用龙贝格算法计算积分,要输出所谓的 T − T - T−数表

T 1 T 2 S 1 T 4 S 2 C 1 T 8 ⋮ S 4 ⋮ C 2 ⋮ R 1 ⋮ ⋱ \begin{matrix} T_{1} & & & \begin{matrix} & \\ \end{matrix} \\ T_{2} & S_{1} & & \begin{matrix} & \\ \end{matrix} \\ T_{4} & S_{2} & C_{1} & \begin{matrix} & \\ \end{matrix} \\ \begin{matrix} T_{8} \\ \vdots \\ \end{matrix} & \begin{matrix} S_{4} \\ \vdots \\ \end{matrix} & \begin{matrix} C_{2} \\ \vdots \\ \end{matrix} & \begin{matrix} \begin{matrix} R_{1} \\ \vdots \\ \end{matrix} & \begin{matrix} \\ \ddots \\ \end{matrix} \\ \end{matrix} \\ \end{matrix} T1​T2​T4​T8​⋮​​S1​S2​S4​⋮​​C1​C2​⋮​​​​​​​​R1​⋮​​⋱​​​

核心代码 #include #include #include using namespace std; #define N 20 int n; long double a, b, e, T[N][N] = {{0.0}}; long double f(long double x) { return 1.0 / (1.0 + x); } long double x(int i, long double h) { return a + h * i; } int main() { scanf("%llf%llf%llf%d", &a, &b, &e, &n); int k = 0; for (; k


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有