3月份的时候就被安利过simpson积分

后来一直没填坑… 心血来潮学了一发

先上simpson积分公式:

就是计算它的端点值和中点值,用一个二次函数近似地算出值

在一二次函数情况下会取得精确值

然而大部分情况下肯定不是一二次函数

写成代码形式

自适应辛普森积分

直接根据公式计算精度肯定不够。

如果对精度要求高了,分的区间也会多,计算量会迅速增大。

不过自适应辛普森积分法可以自动划分区间。

具体的就是,如果计算出来的结果满足精度,就停止分割。

可以使用二分法三分法等等…实现

 

然后,完了,是不是很simple

实际上真正的难度在于求f..


Luogu上有两个入门的模板

自适应辛普森积分1

这个直接套上去就行了

 

 

自适应辛普森积分2

不会证明,用几何画板画出来的…大概a=50的时候,x=8之后的面积对答案的贡献已经很小了,大概积分到12即可Ac

a<0的时候函数发散 直接print ORZ就行了

 

 


说点什么

avatar
  Subscribe  
提醒