一、牛顿 - 莱布尼茨公式(微积分的基本公式):
∫ a b f ( x ) d x = F ( b ) − F ( a ) \int_{a}^{b}f\left(x\right)dx=F(b)-F(a) abf(x)dx=F(b)F(a)
  其中,函数F(x) 是连续函数f(x)在区间[a,b]上的原函数。
二、辛普森(Simpson)积分公式
  1.Simpson积分公式是将区间端点和区间中点三个点近似看成抛物线上对应的三个点,以二次曲线逼近的方式取代矩形或梯形积分公式,以求得定积分的数值近似解。
∫ a b f ( x ) d x ≈    ( b − a ) 6 ∙ [ f ( a ) + 4 f ( a + b 2 ) + f ( b ) ] \int_{a}^{b}f\left(x\right)dx\approx\ \ \frac{(b-a)}{6}\bullet\left[f\left(a\right)+4f\left(\frac{a+b}{2}\right)+f(b)\right] abf(x)dx  6(ba)[f(a)+4f(2a+b)+f(b)]
  2.Simpson积分公式可以利用微积分基本公式推导出来,推导过程如下:
设置一个一元二次函数
f ( x ) = a x 2 + b x + c f(x)=ax^2+bx+c f(x)=ax2+bx+c
  求积分为
F ( x ) = ∫ 0 x f ( x ) =   a 3 x 3 + b 2 x 2 + c x + d F\left(x\right)=\int_{0}^{x}{f(x)}=\ \frac{a}{3}x^3+\frac{b}{2}x^2+cx+d F(x)=0xf(x)= 3ax3+2bx2+cx+d
  那么
∫ L R f ( x )   d x =   F ( R ) − F ( L ) = a 3 ( R 3 − L 3 ) + b 2 ( R 2 − L 2 ) + c ( R − L ) = a 3 ( R 3 −   L 3 ) + b 2 ( R 2 − L 2 ) + c ( R − L ) =   ( R − L ) [ a 3 ( R 2 +   L 2 + L R ) + b 2 ( R + L ) + c ] = ( R − L ) 6 ( 2 a R 2 + 2 a L 2 + 2 a R L + 3 b R + 3 b L + 6 c ) = ( R − L ) 6 { ( a L 2 + b L + c ) + ( a R 2 + b R + c ) + 4 [ a ( L + R 2 ) 2 + b ( L + R 2 ) + c ] } = ( R − L ) 6 [ f ( L ) + 4 f ( L + R 2 ) + f ( R ) ] \begin{align} \int_{L}^{R}{f\left(x\right)\ }dx \nonumber &=\ F\left(R\right)-F\left(L\right)\\ \nonumber &=\frac{a}{3}{(R}^3-L^3)+\frac{b}{2}{(R}^2-L^2)+c(R-L)\\ \nonumber &=\frac{a}{3}{(R}^3-\ L^3)+\frac{b}{2}{(R}^2-L^2)+c(R-L)\\ \nonumber &=\ (R-L)\left[\frac{a}{3}{(R}^2+\ L^2+LR)+\frac{b}{2}(R+L)+c\right]\\ \nonumber &=\frac{\left(R-L\right)}{6}(2aR^2+2aL^2+2aRL+3bR+3bL+6c)\\ \nonumber &=\frac{\left(R-L\right)}{6}\left\{\left(aL^2+bL+c\right)+\left(aR^2+bR+c\right)+4\left[a\left(\frac{L+R} {2}\right)^2+b\left(\frac{L+R}{2}\right)+c\right]\right\}\\ \nonumber &=\frac{\left(R-L\right)}{6}[f(L)+4f(\frac{L+R}{2})+f(R)]\\ \nonumber \end{align} LRf(x) dx= F(R)F(L)=3a(R3L3)+2b(R2L2)+c(RL)=3a(R3 L3)+2b(R2L2)+c(RL)= (RL)[3a(R2+ L2+LR)+2b(R+L)+c]=6(RL)(2aR2+2aL2+2aRL+3bR+3bL+6c)=6(RL){(aL2+bL+c)+(aR2+bR+c)+4[a(2L+R)2+b(2L+R)+c]}=6(RL)[f(L)+4f(2L+R)+f(R)]
  有了 Simpson积分公式,一个自然的想法是把积分区间拆成多个小区间后求和,但是分成区间的个数和长度因积分区间和精度要求甚至被积函数而异。
本文不在从数学角度进行误差分析,不是本文的重点。而从计算机运算的角度,精度的控制可以通过设定一个能够容忍的误差作为最终的返回情况,基于二分设计出递归的计算流程,即所说的Simpson自适应算法。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐