zoukankan      html  css  js  c++  java
  • 洛谷.4525.[模板]自适应辛普森法1(Simpson积分)

    题目链接

    Simpson积分公式:$$int_a^bf(x)dxapproxfrac{b-a}{6}left[f(a)+f(b)+4f(frac{a+b}{2}) ight]$$

    推导过程大概就是,令(f(x)=Ax^2+Bx+C),代进去求一下积分就好了?
    自适应是指根据区间大小控制精度。满足精度要求时直接返回。

    那个,有人知道asr是指什么吗。。(什么的缩写?)

    //0ms	1.7MB
    #include <cmath>
    #include <cstdio>
    #include <algorithm>
    #define eps (1e-6)
    
    double a,b,c,d,L,R;
    
    inline double f(double x){
    	return (c*x+d)/(a*x+b);
    }
    inline double Simpson(double l,double r){
    	return (r-l)*(f(r)+f(l)+4*f((l+r)*0.5))/6.0;
    }
    double asr(double l,double r,double Eps,double ans)
    {
    	double mid=(l+r)*0.5, lans=Simpson(l,mid), rans=Simpson(mid,r);
    	if(fabs(lans+rans-ans)<Eps) return lans+rans;
    	return asr(l,mid,Eps*0.5,lans)+asr(mid,r,Eps*0.5,rans);
    }
    
    int main()
    {
    	scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&L,&R);
    	printf("%.6lf",asr(L,R,eps,Simpson(L,R)));
    
    	return 0;
    }
    
  • 相关阅读:
    并查集
    归并排序
    树的操作
    活动安排
    动态规划-股票交易
    网络流
    linux 展开
    linux 反引号、单引号、双引号
    linux 命令行快捷键
    判断一个点是否在三角形内部和边界上
  • 原文地址:https://www.cnblogs.com/SovietPower/p/9165532.html
Copyright © 2011-2022 走看看