专栏文章

数值积分之高斯积分法

算法·理论参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@mioopibz
此快照首次捕获于
2025/12/02 22:39
3 个月前
此快照最后确认于
2025/12/02 22:39
3 个月前
查看原文

写的很烂,勿喷

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

评论

1 条评论,欢迎与作者交流。

正在加载评论...