自适应辛普森公式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30358129/article/details/82751820

自适应辛普森公式
时间复杂度O(能过)

double f(double x){  
    return x*x+sqrt(x); //积分函数
}
double simpson(double a,double b){
    double c=(a+b)/2.0;
    return (f(a)+f(b)+4.0*f(c))*(b-a)/6.0;
}
double ars(double a,double b,double eps){  //积分区域a~b,eps为题目要求精度*10-2
    double c=(a+b)/2.0;
    double mid=simpson(a,b),l=simpson(a,c),r=simpson(c,b);
    if(fabs(l+r-mid)<=15*eps)  return l+r+(l+r-mid)/15.0;
    return ars(a,c,eps/2.0)+ars(c,b,eps/2.0);
}

猜你喜欢

转载自blog.csdn.net/qq_30358129/article/details/82751820
今日推荐