自适应辛普森积分学习小记

本文深入探讨了积分计算的三种核心方法:极限求和法、原函数法及辛普森近似法。通过数学公式详细解释了每种方法的原理与应用,特别强调了辛普森积分的自适应实现,为解决复杂积分问题提供了实用指导。

BG


今天没题做,来康点好康的

正题


我们要求∫abf(x)dx\int_{a}^{b}{f(x)dx}abf(x)dx
方法一:
∫abf(x)dx=lim⁡n→+∞∑i=1nf(a+in)⋅1n\int_{a}^{b}{f(x)dx}=\lim\limits_{n\to +\infty}^{}\sum_{i=1}^{n}f(a+\frac{i}{n})\cdot \frac{1}{n}abf(x)dx=n+limi=1nf(a+ni)n1
方法二:
∫abf(x)dx=F(b)−F(a),  满足F′(x)=f(x)\int_{a}^{b}{f(x)dx}=F(b)-F(a),\; 满足F'(x)=f(x)abf(x)dx=F(b)F(a)F(x)=f(x)

以上是中学课本内容

方法三:
辛普森积分只能用来算有限精度的实数
我们用二次函数拟合某一个函数f(x)f(x)f(x),即令f(x)≈Ax2+Bx+Cf(x)\approx Ax^2+Bx+Cf(x)Ax2+Bx+C
那么:∫abf(x)dx≈∫ab(Ax2+Bx+C)dx\int_{a}^{b}{f(x)dx}\approx\int_{a}^{b}{(Ax^2+Bx+C)dx}abf(x)dxab(Ax2+Bx+C)dx
又有∫ab(Ax2+Bx+C)dx=A3(b3−a3)+B2(b2−a2)+C(b−a)\int_{a}^{b}{(Ax^2+Bx+C)dx}=\frac{A}{3}(b^3-a^3)+\frac{B}{2}(b^2-a^2)+C(b-a)ab(Ax2+Bx+C)dx=3A(b3a3)+2B(b2a2)+C(ba)
化简得到原式=(b−a)(2Ab2+2Aab+2Aa2+3Bb+3+6C)6=(b−a)(f(a)+f(b)+4f(a+b2))6原式=\frac{(b-a)(2Ab^2+2Aab+2Aa^2+3Bb+3+6C)}{6}=\frac{(b-a)(f(a)+f(b)+4f(\frac{a+b}{2}))}{6}=6(ba)(2Ab2+2Aab+2Aa2+3Bb+3+6C)=6(ba)(f(a)+f(b)+4f(2a+b))

所谓自适应就是加入判断精度的流程使得结果更加合理

我们发现这个东西的精度和b−ab-aba有关,那么递归做就可以了
具体说来就是f(a,b)表示a到b的积分,f(a,b)=f(a,mid)+f(mid,b)这样递归
精度的话我们用辛普森积分算出(a,mid)和(mid,b),与(a,b)比较,如果相差在允许范围内退出就行了

Code


double solve(double l,double r) {
	double mid=(l+r)*0.5;
	if (f(l,mid)+f(mid,r)-f(l,r)<eps) return f(l,r);
	return solve(l,mid)+solve(mid,r);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值