博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
算法笔记--辛普森积分公式
阅读量:5924 次
发布时间:2019-06-19

本文共 1601 字,大约阅读时间需要 5 分钟。

一图胜千言。

自适应辛普森模板:

const double eps=1e-10;double f(double x){    //你的函数。 } double simpson(double l,double r){    return (f(l)+4.0*f((l+r)/2.0)+f(r))/6.0*(r-l);}double integral(double l,double r){    double mid=(l+r)/2.0;    double res=simpson(l,r);    if(fabs(res-simpson(l,mid)-simpson(mid,r))

复合辛普森模板:

double f(double x) {    double l = max(s1, x-w);    double r = min(s2, x+w);    if(r-l < eps) return eps;    else return r-l;}double simpson(double l, double r) {    return (f(l) + 4.0*f((l+r)/2.0) + f(r))/6.0*(r-l);}double integral(double l, double r) {    double m = (l+r)/2.0;    double res = simpson(l, r);    if(fabs(res-simpson(l, m)-simpson(m, r)) < eps) return res;    else return integral(l, m) + integral(m, r);}double fuhesimpson(double l, double r, int n) {    double h = (r-l)/n, ans = 0;    for (int i = 0; i < n; ++i) {        ans += integral(l+i*h, l+(i+1)*h);    }    return ans;}

参考:

例题1:

代码:

#include
using namespace std;#define ll long long#define pb push_back#define pi acos(-1.0)#define mem(a,b) memset(a,b,sizeof(a))const double eps=1e-10;double a,b;double f(double x){ return b*sqrt(1.0-(x*x)/(a*a)); } double simpson(double l,double r){ return (f(l)+4.0*f((l+r)/2.0)+f(r))/6.0*(r-l);}double integral(double l,double r){ double mid=(l+r)/2.0; double res=simpson(l,r); if(fabs(res-simpson(l,mid)-simpson(mid,r))
>T; double l,r; while(T--) { cin>>a>>b>>l>>r; cout<
<
<<2*integral(l,r)<
View Code

 

转载于:https://www.cnblogs.com/widsom/p/7694882.html

你可能感兴趣的文章
结构体初始化函数
查看>>
c++ 拾遗
查看>>
图论$\cdot$强连通分量
查看>>
查看android app 线程信息的命令
查看>>
HTML <img>标签 创建图像映射
查看>>
20165324 《Java程序设计》第3周学习总结
查看>>
github Android-Universal-Image-Loader
查看>>
第二章--第四节:运算符(二)
查看>>
HTML5移动开发即学即用(双色) 王志刚 pdf扫描版
查看>>
POJ 3261 可重叠k次最长重复子串
查看>>
虚拟内存原理
查看>>
常用上传图片生成缩略图
查看>>
晚11点
查看>>
leetcode Same Tree
查看>>
@Transactional noRollbackFor
查看>>
js 编码解码
查看>>
C# 操作 access 数据库
查看>>
MAC OSX 中,删除右键菜单中的多余重复项。
查看>>
Linux服务-http
查看>>
模板方法模式---考题抄错会做也白搭
查看>>