自适应辛普森法求积分
来源:互联网 发布:知乎油腻冯唐 编辑:程序博客网 时间:2024/06/06 00:33
Bridge UVALive - 3485
要计算
将之放到二维坐标系中,就相当于求面积。
三点辛普森公式:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;#define ll long long#define df doubledf a;df F(df x){ return sqrt(1+4.0*a*a*x*x);}df simpson(df a,df b){ df c=a+(b-a)/2.0; return (F(a)+4*F(c)+F(b))*(b-a)/6.0;}df asr(df a,df b,df eps,df A){ df c=a+(b-a)/2.0; df L=simpson(a,c),R=simpson(c,b); if(fabs(L+R-A)<=15*eps) return L+R+(L+R-A)/15.0; return asr(a,c,eps/2.0,L)+asr(c,b,eps/2.0,R);}df asr(df a,df b,df eps){ return asr(a,b,eps,simpson(a,b));}df parabola(df w,df h){ a=4.0*h/(w*w); return asr(0,w/2,1e-5)*2;}int main(){ int T; scanf("%d",&T); for(int kase=1;kase<=T;kase++) { int D,H,B,L; scanf("%d %d %d %d",&D,&H,&B,&L); int n=(B+D-1)/D; df D1=(df)B/n; df L1=(df)L/n; df x=0,y=H; while(y-x>1e-5) { df m=x+(y-x)/2; if(parabola(D1,m)<L1) x=m; else y=m; } if(kase>1) printf("\n"); printf("Case %d:\n%.2f\n",kase,H-x); } return 0;}
阅读全文
0 0
- 自适应辛普森法求积分
- 数值积分-自适应辛普森法
- 自适应simpson积分
- 自适应辛普森积分
- 自适应Simpson积分
- 自适应辛普森积分算法
- 自适应simpson 积分
- 自适应辛普森积分
- 自适应 Simposion 积分
- 自适应Simpson积分(近似求积分)
- 数值积分-(自适应辛普森法)
- 学习笔记: 自适应Simpson积分
- 数值积分_自适应辛普森法
- 自适应辛普森公式求积分
- Hdu 4498 自适应辛普森积分
- 辛普森积分(自适应辛普森公式求积分)
- hdu 1724 自适应 simpson 算法 求积分
- 自适应simpson公式解定积分
- triangle Java code
- C++定时器
- Kubernetes和Spring Cloud哪个部署微服务更好?
- spring boot jpa 中使用逻辑删除
- netty源码分析之Future/Promise
- 自适应辛普森法求积分
- Android国内源码下载——亲测成功
- XMLHttpRequest作用
- (十七)Java设计模式之观察者模式
- listView数据过多,或点击过于频繁崩溃问题解决(防止按钮重复点击)
- 【PostgreSQL】如何删除还有活动链接的数据库
- 互联网的分享是这么做的?
- js 基础类型 与 引用类型
- 01-技术栈