自适应辛普森学习笔记
辛普森公式:
∫abf(x)dx≈(b−a)∗(f(a)+f(b)+4∗f(a+b2))6\int_a^b {f(x)} \,{\rm dx} \approx \frac{(b-a)*(f(a)+f(b) +4*f(\frac {a+b}{2} ))}{6} ∫abf(x)dx≈6(b−a)∗(f(a)+f(b)+4∗f(2a+b))
但是这样的精度并不能满足要求,所有我们想多次划分多个区间去求得这个定积分.那么我们想着二分当前区间L,R分别代表左右区间的辛普森值,A代表当前区间的辛普森值.也就是L=[L,mid],R=[mid,R],A=[L,R].如果有∣A−L−R∣<15∗epsL,R 分别代表左右区间的辛普森值,A代表当前区间的辛普森值.也就是L=[L,mid],R=[mid,R],A=[L,R].如果有\lvert A-L-R\rvert<15*epsL,R分别代表左右区间的辛普森值,A代表当前区间的辛普森值.也就是L=[L,mid],R=[mid,R],A=[L,R].如果有∣A−L−R∣<15∗eps。那么我们认为满足了精度要求,直接返回答案即可.
否则我们递归划分该区间,而且要求精度/2.这样来满足左右区间相加后精度仍然是正确的。
在实际进行中,由于函数值的计算会被重复计算,可以先用一些变量储存下来。
实际操作参考代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 3e5+2;
const int INF = 1e9+7;
double a,b,c,d;
double F(double x){return (c*x+d)/(a*x+b);
}
double simpson(double len,double fL,double fM,double fR){return (len)*(fL+fR+4*fM)/6;
}
//l,r,mid都是实际的横坐标值, fL , fM ,fR 是对应的函数值
//A是代表当前区间的辛普森值
double asr(double l,double r,double eps,double fL,double fM,double fR,double A){double mid =(l+r)/2;double len = (r-l);double L_mid = F(l+len/4);double R_mid = F(r-len/4);double L=simpson(len/2,fL,L_mid,fM);double R = simpson(len/2,fM,R_mid,fR);//计算出左右区间的辛普森值if(fabs(L+R-A)<=15*eps) return (L+R)+(L+R-A)/15.0;else return asr(l,mid,eps/2,fL,L_mid,fM,L) + asr(mid,r,eps/2,fM,R_mid,fR,R);
}
//使用下面的这个自适应辛普森来开始进行程序
double asr(double l,double r,double eps){double L=F(l);double R = F(r);double MID = F((l+r)/2);double A = simpson(r-l,L,MID,R);return asr(l,r,eps,L,MID,R,A);
}
自适应辛普森学习笔记相关推荐
- 自适应动态规划学习笔记(3)
@TOC 自适应动态规划学习笔记(3) 第三天(图全是偷的) 图1 ADP的三个部分 Model Network 书接上回,图(1)中所示的Model Network就是对于系统公式(1)xk+1= ...
- [学习笔记]自适应辛普森(Simpson)积分
一.积分的概念 积分(integral)的几何意义是函数的曲线上 xxx 的一段区间与 x" role="presentation" style="positi ...
- 「学习笔记」自适应辛普森法
引例 计算积分: ∫RLcx+dax+bdx∫LRcx+dax+bdx \int_{L}^{R} \frac{cx+d}{ax+b} dx 题解 其实可以直接求导然后做,然而太弱根本推不出来. 于是就 ...
- C# 学习笔记(16)ComboBox下拉列表框宽度自适应
C# 学习笔记(16)ComboBox下拉列表框宽度自适应 当下拉列表框中内容宽度大于下拉列表框宽度时 下拉列表框不能将内容全部显示出来 可以在下拉时,对下拉列表框内容进行重绘 /// <sum ...
- 图片适应窗口_HTMLCSS学习笔记(八)-- 宽高自适应
宽高自适应 网页布局中经常要定义元素的宽和高.但很多时候我们希望元素的大小能够根据窗口或子元素自动调整,这就是pc自适应. 自适应的优点: 元素自适应在网页布局中非常重要,它能够使网页显示更灵活,可以 ...
- CSS学习笔记八——宽高自适应
宽高自适应 一.宽度自适应 二.高度自适应 三.浮动元素的高度自适应 四.窗口自适应 五.结语 一.宽度自适应 不写宽度或者写 width:auto就表示宽度自适应,可用于横栏或导航栏. 与 widt ...
- python的基本数据结构_Python学习笔记——基本数据结构
列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...
- 【算法讲10:自适应辛普森法】求平滑曲线积分近似 | 洛谷 P4526 | HDU1724 | QLU Youmu with Master spark
自适应辛普森法 参考 引入 ⌈ \lceil ⌈辛普森法求积分 ⌋ \rfloor ⌋ 原理 思考 ⌈ \lceil ⌈自适应辛普森法求积分 ⌋ \rfloor ⌋ 原理 优点 缺点 代码 例题 模板 ...
- blazeface学习笔记
完整的应该是一个人脸识别项目,人脸识别,大言不惭的说,我之前其实也做过,比如用dlib来做人脸识别,就是用opencv那一套来实现,说句实在话,速度非常慢,即便是在intel CPU上,一秒也就两三帧 ...
- 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述
<繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...
最新文章
- 2021.4.11 字节跳动实习笔试题---情报解密
- spring3.0设置定时任务
- 数据结构与算法--力扣108题将有序数组转换为二叉搜索树
- JS_单个或多个文件上传_不支持单独修改
- [css] 你有使用过css的属性background-blend-mode吗?说说它的运用场景有哪些?
- linux 文件重命名或文件移动
- 网络(14)-Web站点如何防范XSS、CSRF、SQL注入攻击?
- Hibernate入门级实例
- Python3.2官方文件翻译-工具列表和十进制浮点计算
- 谷歌发布 iOS 黑客工具软件,或导致 iOS 11 被越狱
- 如何新建Spring Boot工程
- JAVA 相关书籍推荐(全)
- fortran语言能用matlab,fortran语言与matlab
- NCRE | 四级网络工程师错题
- 翁恺老师的细胞自动机
- 【实用软件】picasa不能导入文件夹至其中 的问题解决
- autoshape很多 excel_怎样清除excle中Autoshape_ExceL批注属性批量修改宏代码�9�3
- DDD聚合设计的几个原则的简单讨论
- python物理建模初学者指南 pdf 脚本之家_[剑阁]上古卷轴5新手指南并行开坑版!...
- iMeta | 俄亥俄州立大学郑庆飞组发表多组学方法研究肿瘤微生物组综述