BG
今天没题做,来康点好康的
正题
我们要求∫abf(x)dx\int_{a}^{b}{f(x)dx}∫abf(x)dx
方法一:
∫abf(x)dx=limn→+∞∑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=1∑nf(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)dx≈∫ab(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(b3−a3)+2B(b2−a2)+C(b−a)
化简得到原式=(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(b−a)(2Ab2+2Aab+2Aa2+3Bb+3+6C)=6(b−a)(f(a)+f(b)+4f(2a+b))
所谓自适应就是加入判断精度的流程使得结果更加合理
我们发现这个东西的精度和b−ab-ab−a有关,那么递归做就可以了
具体说来就是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);
}
本文深入探讨了积分计算的三种核心方法:极限求和法、原函数法及辛普森近似法。通过数学公式详细解释了每种方法的原理与应用,特别强调了辛普森积分的自适应实现,为解决复杂积分问题提供了实用指导。
609

被折叠的 条评论
为什么被折叠?



