高斯积分 | 您所在的位置:网站首页 › laplace公式推导legendre › 高斯积分 |
积分法则
考虑实数区间 \([-1,1]\) 上的积分
$$
\int_{-1}^1 f(\xi)\, d\xi. \tag{1}
$$
一个数值积分法则 \( (\xi_i,\ w_i),i=1,\dots,n\), 即积分点和积分权重, 具有如下形式
$$
\int_{-1}^1 f(\xi) \,d\xi \approx \sum_{i=1}^{n} \omega_i f
\left( \xi_i\right). \tag{2}
$$
我们希望选取的积分法则具有尽可能高的数值精度, 即数值积分 (2) 对尽可能高阶的多项式准确成立. 一般来说, \(2n\) 个参数可以唯一确定一个 \(2n-1\) 次多项式. 因此我们希望可以找到积分法则使得下面的等式成立
$$
\int_{-1}^{1} p(\xi) \,d\xi = \sum_{i=1}^{n} \omega_i p
\left( \xi_i\right), \quad \forall\, p\in \mathbb{P}_{2n-1}. \tag{3}
$$
一个简单的例子
问题: 寻找积分法则 \((\xi_i,\ w_i),i=1,2\) 使如下等式成立
\[
\int_{-1}^{1} p(\xi) \,d\xi = \omega_1 p(\xi_1)+\omega_2
p(\xi_2), \quad \forall\, p\in \mathbb{P}_{3}([-1,1]). \tag{4}
\]
求解: 在等式 (4) 中分别另 \(p(x)=1,\ \xi,\ \xi^2,\ \xi^3\), 得到 4 个方程:
$$
\omega_1+\omega_2=\int_{-1}^{1} 1 \,d\xi =2,\quad
\omega_1 \xi_1+\omega_2\xi_2=\int_{-1}^{1} \xi \,d\xi =0,\\
\omega_1 \xi_1^2+\omega_2\xi_2^2=\int_{-1}^{1} \xi^2 \,d\xi =\frac{3}{2}, \quad
\omega_1 \xi_1^3+\omega_2\xi_2^3=\int_{-1}^{1} \xi^3 \,d\xi =0.
$$
求解上面的非线性方程组 (可以利用 Python 符号求解) 可以得到积分法则:
\[
(\xi_1,\ \omega_1)=(-\frac{\sqrt{3}}{3},\ 1)=(-0.577350269189626,\ 1)\\
(\xi_2,\ \omega_2)=(\frac{\sqrt{3}}{3},\ 1)=(0.577350269189626,\ 1).
\]
可以验证上面得到的积分法则对所有的 3-阶多项式精确成立.
# 在线运行如下代码求解非线性方程组 https://live.sympy.org/
from sympy import Symbol, nonlinsolve
w1, w2 = Symbol('w1'), Symbol('w2')
x1, x2 = Symbol('x1'), Symbol('x2')
eq1 = w1 + w2 - 2
eq2 = w1 * x1 + w2 * x2
eq3 = w1 * x1**2 + w2 * x2**2 - 2/3
eq4 = w1 * x1**3 + w2 * x2**3
nonlinsolve([eq1, eq2, eq3, eq4], [w1, w2, x1, x2])
# print(nonlinsolve([eq1, eq2, eq3, eq4], [w1, w2, x1, x2]))
Gauss 积分
更高阶的积分法则可以通过上面的方法计算得到, 但是最常用的 Gauss 积分可以很容易地通过正交多项式 (比如 Legendre 多项式) 来计算. Legendre 多项式在 \([-1,1]\) 上满足如下性质的多项式被称为 Legendre 多项式: 对任一 \(n\in \mathbb{N}\), \(P_n(x)\) 是 \(n\)-阶首一多项式 (最高阶项系数为 1);对所有阶数小于 \(n\) 的多项式 \(P(x)\), \(\int_{-1}^{1}P(x)P_n(x)\ dx=0\).可以证明每一个 Legendre 多项式的根都是单根且对称分布在 \((-1, 1)\) 内. 重要地是, 如果我们以 \(n\)-阶 Legendre 多项式 \(P_n(x)\) 的根作为积分节点, 再加上合适的权重, 就可以得到 Gauss-Legendre 积分法则 (具有 \(2n-1\) 阶精度). 一个重要定理 定理: 令 \(\xi_i,i=1,2,\dots,n\) 为 \(P_n(\xi)\) 的 \(n\) 个根, 选取权重 $$ \omega_i = \int_{-1}^{1} L_i(\xi)\ d\xi, $$ 这里 \(L_i(\xi) = \sum_{j=1,j\neq i}^n \frac{\xi-\xi_j} {\xi_i-\xi_j}\) 为 Lagrange 插值基函数. 那么, 对所有小于 \(2n-1\) 阶的多项式 \(P(\xi)\), 我们有 $$ \int_{-1}^{1} P(\xi) \ d\xi = \sum_{i=1}^{n} \omega_i P(\xi_i). $$ 证明: 由多项式分解理论可知, 存在 \(Q(\xi),R(\xi)\in \mathbb{P}{n-1}\) 使得 \(P(\xi)\) 具有如下分解 $$ P(\xi) = Q(\xi)\, P_n(\xi)+R(\xi). $$ 因为 \(P_n(\xi_i)=0\), 所以 \(P(\xi_i)=R(\xi_i)\). 由 Legendre 多项式的正交性质, 有 $$ \int_{-1}^{1} P(\xi)\ d\xi = \int_{-1}^{1} Q(\xi)\, P_n(\xi)+R(\xi) \ dx = \int_{-1}^{1} R(\xi) \ d\xi. \tag{5} $$ 因为 \(\mathbb{P}_{n-1}\ni R(\xi)=\sum_{i=1}^n R(\xi_i)L_i(\xi) =\sum_{i=1}^n P(\xi_i)L_i(\xi)\), 可知 $$ \int_{-1}^{1} R(\xi) \ d\xi = \int_{-1}^{1} \left( \sum_{i=1}^n P(\xi_i)L_i(\xi) \right) \ d\xi \\ =\sum_{i=1}^n \left(\int_{-1}^{1} L_i(\xi) \ d\xi \right) P(\xi_i) = \sum_{i=1}^n \omega_i P(\xi_i). $$ 代入 (5) 完成定理证明. 一般区间上的数值积分 通常的做法是将一般区间 \([a,b], a,b\in \mathbb{R}\) 上的积分线性变换到参考单元 \([-1,1]\) 上. 具体来说, 积分 (1) 有如下数值积分公式 $$ \int_{a}^b f(x) dx=\frac{b-a}{2} \int_{-1}^{1}f \left( \frac{b-a}{2}\xi+\frac{a+b}{2} \right) \, d\xi \\ \approx \frac{b-a}{2} \sum_{i}\omega_i f \left( \frac{b-a}{2}\xi_i+\frac{a+b}{2} \right) $$ 因此, 区间 \([a,b]\) 上的积分法则 \((x_i, w_i)\) 为 $$ x_i = \frac{b-a}{2}\xi_i+\frac{a+b}{2},\quad w_i = \frac{b-a}{2} \omega_i, $$ 即 $$ \int_{a}^b f(x) dx \approx \sum_{i}w_i f (x_i) . $$ 附录 A: Gauss-Legendre n积分点 \(\pm\xi_i\)权重 \(\omega_i\)21.01.000000000000000301.3333333333333331.00.3333333333333334 0.4472135954999580.8333333333333331.00.16666666666666750.00.568888888888888890.53846931010568300.478628670499366470.906179845938663990.2369268850561890960.23861918608319690.467913934572691050.66120938646626450.360761573048138600.93246951420315200.1713244923791703570.00.417959183673469390.40584515137739720.381830050505118940.74153118559939440.279705391489276670.94910791234275850.1294849661688696980.18343464249564980.362683783378361980.52553240991632900.313706645877887290.79666647741362670.222381034453374470.96028985649753620.10122853629037626 附录 B: Gauss-Lobatto n积分点 \(\pm\xi_i\)权重 \(\omega_i\)21.01.030.01.3333333333333331.00.33333333333333340.4472135954999580.8333333333333331.00.16666666666666750.00.7111111111111110.6546536707079770.5444444444444441.00.10000000000000060.2852315164806450.5548583770354860.7650553239294650.3784749562978471.00.06666666666666770.00.4876190476190480.4688487934707140.4317453812098630.8302238962785670.2768260473615661.00.04761904761904880.2092992179024790.4124587946587040.5917001814331420.3411226924835040.8717401485096070.2107042271435061.00.035714285714286 参考文献 维基百科: Gauss 积分.蒋尔雄 赵风光 苏仰锋 (2008). 数值逼近(第二版) 复旦大学出版社.Burden, R. L., & Faires, J. D. (2010). Numerical Analysis. In Cengage Learning (9th ed.).在线计算 Gauss-Legendre 积分点和积分权重.在线计算 Gauss-Lobatto 积分点和积分权重. 分享到: |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |