【c++】利用复化simpson公式求解积分

 

 复化simpson公式:

  

       

    

 

 

 

double simpson(vecRow y, double h=0.1,int n=51) {
    double result;
    double ya{ y[0] };
    double yb{ y[n-1] };
    int m{ (n - 1) / 2 };
    double sum1, sum2;
    sum1 = 0.0;
    for (int i = 1;i < m + 1;i++) {
        sum1 += y[2 * i - 1];
    }
    sum2 = 0.0;
    for (int i = 1;i < m;i++) {
        sum2 += y[2 * i];
    }
    result = (h / 3) * (ya + yb + 4 * sum1 + 2 * sum2);
    return result;
}

 

posted @ 2023-01-31 21:26  致命一姬  阅读(383)  评论(0)    收藏  举报