辛普森积分公式

f()为被积函数

double simpson( double l , double r )
{
    double mid = (l+r)/2;
    return (f(l)+4*f(mid)+f(r))*(r-l)/6.0;
}

double asr( double l , double r )
{
    double mid = (l+r)/2;
    double res = simpson( l , r );
    if ( fabs( res-simpson( l , mid )-simpson( mid , r ) )<eps )
        return res;
    else
        return asr( l , mid )+asr( mid , r );
}

猜你喜欢

转载自blog.csdn.net/Game_Acm/article/details/81512638