数值积分之高斯积分法
SQY419
·
·
算法·理论
写的很烂,勿喷
数值积分目前已经有很多方法计算,例如矩形法、梯形法、抛物线法(Simpson法)等。但是这些方法对于较复杂的被积函数,收敛速度就显得慢了。
看梯形法和抛物线法的表达式,会发现这两个方法的结果可以理解为一系列点的函数值,乘上某个系数后求和。这两种方法都是均匀分割区间来进行求和,至少具有n-1的代数精度。而高斯积分法并不是均匀分割区间,而是计算不同高斯节点,乘以每个点的权重后再求和。它具有2n+1的代数精度,可精确处理2n+1次以下多项式积分。
高斯积分法处理[-1,1]上的f(x)。我们可以用区间变换实现处理[a,b]。这里介绍高斯积分法如何进行数值计算。高斯积分法可理解为以下公式:
\int_{-1}^{1}f(x)\mathrm{d}x=\sum_{j=0}^{n}w_{j}f(x_{j})
高斯积分法节点使用勒让德多项式计算。
勒让德(Legendre)多项式满足以下性质:当某个多项式$P(x)$的次数小于$n$时,有
$$\int_{-1}^{1}P(x)P_{n}(x)\mathrm{d}x=0$$
并且满足递推关系:
$$P_{n+1}(x)=\frac{2n+1}{n+1}xP_{n}(x)-\frac{n}{n+1}P_{n-1}(x) \ (n=1,2,…) $$
这样,我们便求得
$$P_{1}(x)=x$$
$$P_{2}(x)=\frac{3x^2-1}{2}$$
以此类推。$n$阶高斯积分法的节点便是$P_n(x)$的根。注意到,$P_n(x)$的根全部处于$[-1,1]$上,它具有$n$个实根。
$n$阶高斯积分法的系数有如下公式:
$$w_i=\frac{2}{(1-x^2_i) \left(P_n^{'}(x_i) \right)^2}$$
例如:要计算
$$\int^{1}_{-1}x^2\mathrm{d}x$$
这里我们选用2阶高斯积分公式。先求
$$P_{2}(x)=\frac{3x^2-1}{2}$$
的根,注意到是
$$ \left[-\frac{1}{\sqrt{3}} ,\frac{1}{\sqrt{3}} \right]$$
也就是$[-0.5773502691896257, 0.5773502691896257]$。
再求出权重$w=[1,1]$。代入得
$$\int^{1}_{-1}x^2\mathrm{d}x \approx \left( -\frac{1}{\sqrt{3}} \right)^2+\left( \frac{1}{\sqrt{3}} \right)^2=\frac{2}{3}$$
这方法只计算了2次得到了准确结果。
以上便是高斯积分法的基本思路。在实际应用时,我们可以提前计算好节点和权重,之后直接调用。