zoukankan      html  css  js  c++  java
  • 自适应辛普森 代码

    #include<iostream>
    #include<cmath>
    #include<stdlib.h>
    #include<algorithm>
    using namespace std;
    double f(double x)//函数
    {
    return 2*x;
    }
    double simpson(double a,double b)//[a,b]区间simpson
    {
    double c=a+(b-a)/2.0;
    return (f(a)+4*f(c)+f(b))*(b-a)/6.0;
    }
    double asr(double a,double b,double esp,double aa)//递归
    {
    double c=a+(b-a)/2.0;
    double l=simpson(a,c);
    double r=simpson(c,b);
    if(fabs(l+r-aa)<15*esp)
    return l+r+(l+r-a)/15.0;
    return asr(a,c,esp/2.0,l)+asr(c,b,esp/2.0,r);
    }
    double asr(double a,double b,double esp)//主过程
    {
    return asr(a,b,esp,simpson(a,b));
    }
    int main()
    {
    cout<<asr(0,1,0.000001)<<endl;
    return 0;
    }

     

    朝闻道
  • 相关阅读:
    NYOJ题目22 素数求和
    最大连续子序列&&MAX SUM
    Computer Transformation
    #转 二分查找
    吃巧克力
    公司年会
    亲和串
    开门人和关门人
    找新朋友
    big number
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/8443705.html
Copyright © 2011-2022 走看看