首页 > 编程语言 > 详细

复化积分的C++实现

时间:2020-11-11 13:48:06      阅读:22      评论:0      收藏:0      [点我收藏+]

复化梯形公式(Composite Trapezoidal Quadrature)

  区间[a,b]划分为n等分,分点为x_k=a+kh, h=\frac{b-a}{n}, k=0,1,2,\dots,n。对于每个子区间[x_k, x_{k+1}]利用公式

I=\int_{a}^{b}f(x)dx = \sum_{k=0}^{n-1}\int_{x+k}^{x_{k+1}}f(x)dx=\frac{h}{2}\sum_{k=0}^{n-1}[f(x_k)+f(x_{k+1})]+R_n(f)

  复化梯形公式也就是其中的主要部分T_n=\frac{h}{2}\sum_{k=0}^{n-1}[f(x_k)+f(x_{k+1})]=\frac{h}{2}[f(a)+2\sum_{k=1}^{n-1}f(x_k)+f(b)]

知道这个代码就很容易了

double compositeTrapedoizalQuasdrature(double x[], double y[], int len) {
    double a = x[0];
    double b = x[len - 1];
    double result = function(a) + function(b);
    double h = (b - a) / (len - 1);

    for (int i = 1; i < len-1;i++) {
        result += 2 * function(x[i]);
        printf("i=%d\n", i);
    }

    result *= h * 0.5;
    return result;
}

 

复化积分的C++实现

原文:https://www.cnblogs.com/zhaoke271828/p/13958109.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!