桜羽 エマ
368 字
2 分钟
题解:P4526 【模板】自适应辛普森法 2
自适应辛普森法题解与学习笔记
前言
首先看到P4525 【模板】自适应辛普森法 1。这题是很好的辛普森板题,但是用牛顿-莱布尼茨公式就可以算出答案:
当 时,
当 时,
虽然这样我们就可以通过这题,但是肯定还要讲一下自适应辛普森法。
算法介绍
法的思想是将原曲线近似为一段段抛物线,再求每一段的面积。具体地,我们令 为拟合函数,则有
介绍完 法后我们再回过头看这题。
题解
题目要求,肯定不能用牛顿-莱布尼茨公式。经过讨论可得:
当 时, ,原函数发散,输出 。
当 时。 ,原函数收敛。用 法解决即可。
#include<bits/stdc++.h>using namespace std;const double eps=1e-10;double a;double f(double x){return pow(x,a/x-x);}double Simpson(double l,double r){return (f(l)+f(r)+4*f((l+r)/2))*(r-l)/6;}double Query(double l,double r,double t){ double mid=(l+r)/2,x=Simpson(l,mid),y=Simpson(mid,r); if(fabs(x+y-t)<=1e-9)return t; else return Query(l,mid,x)+Query(mid,r,y);}int main(){ cin>>a; if(a<0)return cout<<"orz",0; cout<<fixed<<setprecision(5)<<Query(eps,20,Simpson(eps,20));}支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
题解:P4526 【模板】自适应辛普森法 2
https://blog.walterfang.site/posts/solution-p4526/ 最后更新于 2024-10-21,距今已过 443 天
部分内容可能已过时
Walter_Fang