MINIBLOG

Blog Note Tags Links About
Home Search
Jun 6, 2026
miniyuan

数值微分与数值积分(Gauss 型求积公式,数值积分专题,多重积分)


Gauss 型求积公式

核心思想

Newton-Cotes 公式采用等距节点,在节点数 nnn 固定时,代数精度最高为 nnn(nnn 奇数)或 n−1n-1n−1(nnn 偶数)。

Gauss 型求积公式的核心思想是:在节点数 nnn 固定时,同时优化节点位置 xkx_kxk​ 与权重系数 AkA_kAk​,使得 2n2n2n 个待定参数满足 2n2n2n 个方程,从而将代数精度提升至 2n−12n-12n−1。

对于带权积分 I=∫abw(x)f(x) dxI = \int_a^b w(x)f(x)\,\mathrm{d}xI=∫ab​w(x)f(x)dx,其中权函数满足:

  1. w(x)≥0w(x)\ge 0w(x)≥0 在 [a,b][a,b][a,b] 上几乎处处成立;
  2. ∫abw(x) dx>0\displaystyle\int_a^b w(x)\,\mathrm{d}x>0∫ab​w(x)dx>0,也即 w(x)w(x)w(x) 不恒为零;
  3. 各阶矩存在,也即 μk=∫abw(x)xk dx\displaystyle\mu_k=\int_a^b w(x)x^k\,\mathrm{d}xμk​=∫ab​w(x)xkdx 对所有 k=0,1,2,…k=0,1,2,\dotsk=0,1,2,… 都有限。

对应 Gauss 型求积公式表示为:

I≈∑k=1nAkf(xk)I \approx \sum_{k=1}^{n} A_k f(x_k)I≈k=1∑n​Ak​f(xk​)

其中:

Ak=∫abw(x)ℓk(x) dx,ℓk(x)=∏j=1j≠knx−xjxk−xjA_k=\int_a^b w(x)\ell_k(x)\,\mathrm{d}x,\qquad \ell_k(x)=\prod_{\substack{j=1\\j\ne k}}^n\frac{x-x_j}{x_k-x_j}Ak​=∫ab​w(x)ℓk​(x)dx,ℓk​(x)=j=1j=k​∏n​xk​−xj​x−xj​​

数学基础

定理(Gauss 型求积公式的代数精度)

设 Gauss 型求积公式:

∫abw(x)f(x) dx≈∑k=1nAkf(xk)\int_a^b w(x)f(x)\,\mathrm{d}x \approx \sum_{k=1}^n A_k f(x_k)∫ab​w(x)f(x)dx≈k=1∑n​Ak​f(xk​)

则该公式对所有次数不超过 2n−12n-12n−1 的多项式精确成立的充要条件为:以节点 x1,…,xnx_1,\dots,x_nx1​,…,xn​ 为零点的 nnn 次多项式

ωn(x)=(x−x1)(x−x2)⋯(x−xn)\omega_n(x)=(x-x_1)(x-x_2)\cdots(x-x_n)ωn​(x)=(x−x1​)(x−x2​)⋯(x−xn​)

与任意次数不超过 n−1n-1n−1 的多项式在 [a,b][a,b][a,b] 上关于权函数 w(x)w(x)w(x) 正交,即

∫abw(x)q(x)ωn(x) dx=0,∀ q(x)∈Pn−1\int_a^b w(x)q(x)\omega_n(x)\,\mathrm{d}x=0,\qquad \forall\,q(x)\in\mathcal{P}_{n-1}∫ab​w(x)q(x)ωn​(x)dx=0,∀q(x)∈Pn−1​

证明:

引理(插值型求积的基本性质):上述 nnn 点插值型求积公式对任意次数不超过 n−1n-1n−1 的多项式 p(x)p(x)p(x) 必定精确成立,即

∫abw(x)p(x) dx=∑k=1nAkp(xk)\int_a^b w(x)p(x)\,\mathrm{d}x=\sum_{k=1}^n A_k p(x_k)∫ab​w(x)p(x)dx=k=1∑n​Ak​p(xk​)

引理证明:

对 p(x)p(x)p(x) 而言,插值多项式为:

Ln−1(x)=∑k=1np(xk)ℓk(x)L_{n-1}(x)=\sum_{k=1}^n p(x_k)\ell_k(x)Ln−1​(x)=k=1∑n​p(xk​)ℓk​(x)

显然 Ln−1(x)≡p(x)L_{n-1}(x)\equiv p(x)Ln−1​(x)≡p(x)。两边乘以 w(x)w(x)w(x) 积分即得:

∫abw(x)p(x) dx=∑k=1np(xk)∫abw(x)ℓk(x) dx=∑k=1nAkp(xk)\int_a^b w(x)p(x)\,\mathrm{d}x=\sum_{k=1}^n p(x_k)\int_a^b w(x)\ell_k(x)\,\mathrm{d}x=\sum_{k=1}^n A_k p(x_k)∫ab​w(x)p(x)dx=k=1∑n​p(xk​)∫ab​w(x)ℓk​(x)dx=k=1∑n​Ak​p(xk​)
  • 充分性(正交 ⇒\Rightarrow⇒ 对 P2n−1\mathcal{P}_{2n-1}P2n−1​ 精确):

设正交条件成立。任取 f(x)∈P2n−1f(x)\in\mathcal{P}_{2n-1}f(x)∈P2n−1​,用 ωn(x)\omega_n(x)ωn​(x) 对 f(x)f(x)f(x) 作带余除法:

f(x)=q(x)ωn(x)+r(x),f(x)=q(x)\omega_n(x)+r(x),f(x)=q(x)ωn​(x)+r(x),

其中 deg⁡q≤n−1\deg q\le n-1degq≤n−1,deg⁡r≤n−1\deg r\le n-1degr≤n−1。

两边乘以 w(x)w(x)w(x) 并积分:

∫abw(x)f(x) dx=∫abw(x)q(x)ωn(x) dx⏟=0+∫abw(x)r(x) dx\int_a^b w(x)f(x)\,\mathrm{d}x =\underbrace{\int_a^b w(x)q(x)\omega_n(x)\,\mathrm{d}x}_{=0} +\int_a^b w(x)r(x)\,\mathrm{d}x∫ab​w(x)f(x)dx==0∫ab​w(x)q(x)ωn​(x)dx​​+∫ab​w(x)r(x)dx

故

∫abw(x)f(x) dx=∫abw(x)r(x) dx\int_a^b w(x)f(x)\,\mathrm{d}x=\int_a^b w(x)r(x)\,\mathrm{d}x∫ab​w(x)f(x)dx=∫ab​w(x)r(x)dx

另一方面,在节点 xkx_kxk​ 处,ωn(xk)=0\omega_n(x_k)=0ωn​(xk​)=0,因此:

f(xk)=q(xk)ωn(xk)+r(xk)=r(xk)f(x_k)=q(x_k)\omega_n(x_k)+r(x_k)=r(x_k)f(xk​)=q(xk​)ωn​(xk​)+r(xk​)=r(xk​)

由于 r(x)r(x)r(x) 次数 ≤n−1\le n-1≤n−1,由引理知插值型求积对 r(x)r(x)r(x) 精确:

∫abw(x)r(x) dx=∑k=1nAkr(xk)=∑k=1nAkf(xk)\int_a^b w(x)r(x)\,\mathrm{d}x=\sum_{k=1}^n A_k r(x_k)=\sum_{k=1}^n A_k f(x_k)∫ab​w(x)r(x)dx=k=1∑n​Ak​r(xk​)=k=1∑n​Ak​f(xk​)

从而:

∫abw(x)f(x) dx=∑k=1nAkf(xk)\int_a^b w(x)f(x)\,\mathrm{d}x=\sum_{k=1}^n A_k f(x_k)∫ab​w(x)f(x)dx=k=1∑n​Ak​f(xk​)

故公式对任意 f∈P2n−1f\in\mathcal{P}_{2n-1}f∈P2n−1​ 精确成立。

注:也即高次由正交性确保,低次由插值自动满足。

  • 必要性(对 P2n−1\mathcal{P}_{2n-1}P2n−1​ 精确 ⇒\Rightarrow⇒ 正交):

设求积公式对所有次数不超过 2n−12n-12n−1 的多项式精确成立。任取 q(x)∈Pn−1q(x)\in\mathcal{P}_{n-1}q(x)∈Pn−1​,构造:

f(x)=q(x)ωn(x)f(x)=q(x)\omega_n(x)f(x)=q(x)ωn​(x)

则 deg⁡f≤(n−1)+n=2n−1\deg f\le (n-1)+n=2n-1degf≤(n−1)+n=2n−1,故 fff 落在精确成立的范围内。

由精确性:

∫abw(x)f(x) dx=∑k=1nAkf(xk)\int_a^b w(x)f(x)\,\mathrm{d}x=\sum_{k=1}^n A_k f(x_k)∫ab​w(x)f(x)dx=k=1∑n​Ak​f(xk​)

但右端中 f(xk)=q(xk)ωn(xk)=0f(x_k)=q(x_k)\omega_n(x_k)=0f(xk​)=q(xk​)ωn​(xk​)=0,因此右端为 000。于是

∫abw(x)q(x)ωn(x) dx=0\int_a^b w(x)q(x)\omega_n(x)\,\mathrm{d}x=0∫ab​w(x)q(x)ωn​(x)dx=0

由 q(x)q(x)q(x) 的任意性,正交条件得证。

定理(截断误差):

设 f(x)∈C2n[a,b]f(x)\in C^{2n}[a,b]f(x)∈C2n[a,b],则 Gauss 型求积公式的余项为:

R=∫abw(x)f(x) dx−∑k=1nAkf(xk)=f(2n)(η)(2n)!∫abw(x)ωn2(x) dx,a<η<bR = \int_a^b w(x)f(x)\,\mathrm{d}x - \sum_{k=1}^n A_k f(x_k) = \frac{f^{(2n)}(\eta)}{(2n)!}\int_a^b w(x)\omega_n^2(x)\,\mathrm{d}x ,\quad a<\eta<bR=∫ab​w(x)f(x)dx−k=1∑n​Ak​f(xk​)=(2n)!f(2n)(η)​∫ab​w(x)ωn2​(x)dx,a<η<b

证明:

类似于 Simpson 公式误差估计。

设 f∈C2n[a,b]f\in C^{2n}[a,b]f∈C2n[a,b],Gauss 节点为 x1,…,xnx_1,\dots,x_nx1​,…,xn​。构造 Hermite 插值多项式 H(x)∈P2n−1H(x)\in\mathcal{P}_{2n-1}H(x)∈P2n−1​,使其满足 2n2n2n 个插值条件:

H(xk)=f(xk),H′(xk)=f′(xk),k=1,2,…,nH(x_k)=f(x_k),\qquad H'(x_k)=f'(x_k),\qquad k=1,2,\dots,nH(xk​)=f(xk​),H′(xk​)=f′(xk​),k=1,2,…,n

这 2n2n2n 个条件唯一确定一个次数不超过 2n−12n-12n−1 的多项式。而 Gauss 型求积公式的代数精度为 2n−12n-12n−1,因此:

∫abw(x)H(x) dx=∑k=1nAkH(xk)=∑k=1nAkf(xk)\int_a^b w(x)H(x)\,\mathrm{d}x=\sum_{k=1}^n A_k H(x_k)=\sum_{k=1}^n A_k f(x_k)∫ab​w(x)H(x)dx=k=1∑n​Ak​H(xk​)=k=1∑n​Ak​f(xk​)

于是余项可写成:

R=∫abw(x)[f(x)−H(x)] dx=∫abw(x)⋅f[x1,x1,…,xn,xn⏟2n 个,x]⋅(x−x1)2(x−x2)2⋯(x−xn)2⏟ωn2(x)\begin{aligned} R &= \int_a^b w(x)\bigl[f(x)-H(x)\bigr]\,\mathrm{d}x \\ &= \int_a^b w(x)\cdot f[\underbrace{x_1,x_1,\dots,x_n,x_n}_{2n\text{ 个}},x]\cdot\underbrace{(x-x_1)^2(x-x_2)^2\cdots(x-x_n)^2}_{\omega_n^2(x)} \end{aligned}R​=∫ab​w(x)[f(x)−H(x)]dx=∫ab​w(x)⋅f[2n 个x1​,x1​,…,xn​,xn​​​,x]⋅ωn2​(x)(x−x1​)2(x−x2​)2⋯(x−xn​)2​​​

由于 f∈C2nf\in C^{2n}f∈C2n,由重节点差商与导数的关系,存在 ξx∈(a,b)\xi_x\in(a,b)ξx​∈(a,b) 使得:

f[x1,x1,…,xn,xn,x]=f(2n)(ξx)(2n)!f[x_1,x_1,\dots,x_n,x_n,x]=\frac{f^{(2n)}(\xi_x)}{(2n)!}f[x1​,x1​,…,xn​,xn​,x]=(2n)!f(2n)(ξx​)​

因此:

R=1(2n)!∫abw(x) f(2n)(ξx) ωn2(x) dxR=\frac{1}{(2n)!}\int_a^b w(x)\,f^{(2n)}(\xi_x)\,\omega_n^2(x)\,\mathrm{d}xR=(2n)!1​∫ab​w(x)f(2n)(ξx​)ωn2​(x)dx

又因为 f(2n)f^{(2n)}f(2n) 连续,w(x)ωn2(x)w(x)\omega_n^2(x)w(x)ωn2​(x) 在 [a,b][a,b][a,b] 上不变号,由加权形式的积分第一中值定理,存在 η∈(a,b)\eta\in(a,b)η∈(a,b) 使得:

R=f(2n)(η)(2n)!∫abw(x)ωn2(x) dx,a<η<bR=\frac{f^{(2n)}(\eta)}{(2n)!}\int_a^b w(x)\omega_n^2(x)\,\mathrm{d}x,\qquad a<\eta<bR=(2n)!f(2n)(η)​∫ab​w(x)ωn2​(x)dx,a<η<b

注:误差公式表明,Gauss 求积的精度随节点数 nnn 指数级提升,且被积函数光滑性要求较高,需 2n2n2n 阶连续可导。

计算公式与推导

区间标准化

任意区间 [a,b][a,b][a,b] 可通过仿射变换映射到 [−1,1][-1,1][−1,1]:

x=a+b2+b−a2t,t∈[−1,1]x = \frac{a+b}{2} + \frac{b-a}{2}t,\quad t\in[-1,1]x=2a+b​+2b−a​t,t∈[−1,1] ∫abf(x) dx=b−a2∫−1+1g(t) dt,g(t)=f(a+b2+b−a2t)\int_a^b f(x)\,\mathrm{d}x = \frac{b-a}{2}\int_{-1}^{+1} g(t)\,\mathrm{d}t,\quad g(t) = f\left(\frac{a+b}{2}+\frac{b-a}{2}t\right)∫ab​f(x)dx=2b−a​∫−1+1​g(t)dt,g(t)=f(2a+b​+2b−a​t)

注:

  1. 以下所有特殊 Gauss 公式均在 [−1,1][-1,1][−1,1] 或对应标准区间上给出,实际应用时需先进行上述变换。
  2. 以下所有特殊 Gauss 公式均取 w(x)≡1w(x) \equiv 1w(x)≡1。

两点 Gauss-Legendre 公式

∫−11f(x) dx≈f(−13)+f(13)\int_{-1}^1 f(x)\,\mathrm{d}x \approx f\left(-\frac{1}{\sqrt{3}}\right) + f\left(\frac{1}{\sqrt{3}}\right)∫−11​f(x)dx≈f(−3​1​)+f(3​1​)

法一(非线性方程组):

要求对 f(x)=1,x,x2,x3f(x)=1,x,x^2,x^3f(x)=1,x,x2,x3 精确成立:

{A1+A2=2A1x1+A2x2=0A1x12+A2x22=23A1x13+A2x23=0\begin{cases} A_1 + A_2 = 2 \\ A_1x_1 + A_2x_2 = 0 \\ A_1x_1^2 + A_2x_2^2 = \frac{2}{3} \\ A_1x_1^3 + A_2x_2^3 = 0 \end{cases}⎩⎨⎧​A1​+A2​=2A1​x1​+A2​x2​=0A1​x12​+A2​x22​=32​A1​x13​+A2​x23​=0​

求解较为困难。

法二(正交性推导):

设 ω2(x)=(x−x1)(x−x2)=x2+px+q\omega_2(x) = (x-x_1)(x-x_2) = x^2 + px + qω2​(x)=(x−x1​)(x−x2​)=x2+px+q,要求其与 1,x1, x1,x 正交:

{∫−11(x2+px+q) dx=0∫−11x(x2+px+q) dx=0⇒{p=0q=−13\begin{cases} \int_{-1}^1 (x^2+px+q)\,\mathrm{d}x = 0 \\ \int_{-1}^1 x(x^2+px+q)\,\mathrm{d}x = 0 \end{cases} \Rightarrow \begin{cases} p = 0 \\ q = -\frac{1}{3} \end{cases}{∫−11​(x2+px+q)dx=0∫−11​x(x2+px+q)dx=0​⇒{p=0q=−31​​

解得 x1,2=±13x_{1,2} = \pm\dfrac{1}{\sqrt{3}}x1,2​=±3​1​。

代入 f(x)=1f(x)=1f(x)=1 和 f(x)=xf(x)=xf(x)=x 求权重:

{A1+A2=2−13A1+13A2=0⇒A1=A2=1\begin{cases} A_1 + A_2 = 2 \\ -\frac{1}{\sqrt{3}}A_1 + \frac{1}{\sqrt{3}}A_2 = 0 \end{cases} \Rightarrow A_1 = A_2 = 1{A1​+A2​=2−3​1​A1​+3​1​A2​=0​⇒A1​=A2​=1

注:仅使用 2 个函数值,即可精确积分到三次多项式,等距 Simpson 公式需 3 个点才能达到同等精度。

Gauss-Legendre 公式

定义 Legendre 多项式:

Pn(x)=12nn!dndxn[(x2−1)n]P_n(x) = \frac{1}{2^n n!}\frac{\mathrm{d}^n}{\mathrm{d}x^n}\left[(x^2-1)^n\right]Pn​(x)=2nn!1​dxndn​[(x2−1)n]

对于区间 [−1,1][-1,1][−1,1],权函数 w(x)=1w(x)=1w(x)=1,有 Gauss-Legendre 公式:

∫0+∞f(x) dx≈∑k=1nAkf(xk)\int_0^{+\infty} f(x)\,\mathrm{d}x \approx \sum_{k=1}^n A_k f(x_k)∫0+∞​f(x)dx≈k=1∑n​Ak​f(xk​)

积分节点:Pn(x)P_n(x)Pn​(x) 的 nnn 个实根 xk∈(−1,1)x_k\in(-1,1)xk​∈(−1,1)(互异且关于原点对称)。

权重系数:

Ak=2(1−xk2)[n Pn−1(xk)]2=2(1−xk2)[Pn′(xk)]2,k=1,2,…,nA_k = \frac{2(1-x_k^2)}{\left[n\,P_{n-1}(x_k)\right]^2} = \frac{2}{(1-x_k^2)\left[P_n'(x_k)\right]^2},\quad k=1,2,\ldots,nAk​=[nPn−1​(xk​)]22(1−xk2​)​=(1−xk2​)[Pn′​(xk​)]22​,k=1,2,…,n

常见节点与系数表:

nnnxkx_kxk​AkA_kAk​
10.00000000000000000.00000000000000000.00000000000000002.00000000000000002.00000000000000002.0000000000000000
2±0.5773502691896257\pm 0.5773502691896257±0.57735026918962571.00000000000000001.00000000000000001.0000000000000000
3±0.7745966692414834\pm 0.7745966692414834±0.77459666924148340.55555555555555560.55555555555555560.5555555555555556
0.00000000000000000.00000000000000000.00000000000000000.88888888888888880.88888888888888880.8888888888888888
4±0.8611363115940526\pm 0.8611363115940526±0.86113631159405260.34785484513745380.34785484513745380.3478548451374538
±0.3399810435848563\pm 0.3399810435848563±0.33998104358485630.65214515486254610.65214515486254610.6521451548625461

注:nnn 点 Gauss-Legendre 公式代数精度为 2n−12n-12n−1。

Gauss-Laguerre 公式

定义 Laguerre 多项式:

Ln(x)=exdndxn(xne−x)L_n(x) = \mathrm{e}^{x}\frac{\mathrm{d}^n}{\mathrm{d}x^n}\left(x^n\mathrm{e}^{-x}\right)Ln​(x)=exdxndn​(xne−x)

对于半无限区间 [0,+∞)[0,+\infty)[0,+∞),权函数 w(x)=e−xw(x)=\mathrm{e}^{-x}w(x)=e−x,有 Gauss-Laguerre 公式:

∫0+∞e−xf(x) dx≈∑k=1nAkf(xk)\int_0^{+\infty} \mathrm{e}^{-x}f(x)\,\mathrm{d}x \approx \sum_{k=1}^n A_k f(x_k)∫0+∞​e−xf(x)dx≈k=1∑n​Ak​f(xk​)

积分节点:Ln(x)L_n(x)Ln​(x) 的零点 xk∈(0,+∞)x_k\in(0,+\infty)xk​∈(0,+∞)。

权重系数:

Ak=(n!)2xk[Ln′(xk)]2A_k = \frac{(n!)^2}{x_k\left[L_n'(x_k)\right]^2}Ak​=xk​[Ln′​(xk​)]2(n!)2​

常用节点与系数表:

nnnxkx_kxk​AkA_kAk​
20.5857860.5857860.5857860.8535530.8535530.853553
3.4142143.4142143.4142140.1464470.1464470.146447
30.4157750.4157750.4157750.7110930.7110930.711093
2.2942802.2942802.2942800.2785180.2785180.278518
6.2899456.2899456.2899450.0103890.0103890.010389

注: 若实际积分为 ∫0∞g(x) dx\int_0^\infty g(x)\,\mathrm{d}x∫0∞​g(x)dx,可改写为 ∫0∞e−x[exg(x)] dx\int_0^\infty \mathrm{e}^{-x}[\mathrm{e}^{x}g(x)]\,\mathrm{d}x∫0∞​e−x[exg(x)]dx 然后套用公式。

Gauss-Hermite 公式

定义 Hermite 多项式:

Hn(x)=(−1)nex2dndxne−x2H_n(x) = (-1)^n\mathrm{e}^{x^2}\frac{\mathrm{d}^n}{\mathrm{d}x^n}\mathrm{e}^{-x^2}Hn​(x)=(−1)nex2dxndn​e−x2

对于全实轴 (−∞,+∞)(-\infty,+\infty)(−∞,+∞),权函数 w(x)=e−x2w(x)=\mathrm{e}^{-x^2}w(x)=e−x2,有 Gauss-Hermite 公式:

∫−∞+∞e−x2f(x) dx≈∑k=1nAkf(xk)\int_{-\infty}^{+\infty} \mathrm{e}^{-x^2}f(x)\,\mathrm{d}x \approx \sum_{k=1}^n A_k f(x_k)∫−∞+∞​e−x2f(x)dx≈k=1∑n​Ak​f(xk​)

积分节点:Hn(x)H_n(x)Hn​(x) 的零点(关于原点对称)。

权重系数:

Ak=2n+1n!π[Hn′(xk)]2A_k = \frac{2^{n+1}n!\sqrt{\pi}}{\left[H_n'(x_k)\right]^2}Ak​=[Hn′​(xk​)]22n+1n!π​​

常用节点与系数表:

nnnxkx_kxk​AkA_kAk​
2±0.70710678\pm 0.70710678±0.707106780.886226930.886226930.88622693
4±1.65068012\pm 1.65068012±1.650680120.081312840.081312840.08131284
±0.52464762\pm 0.52464762±0.524647620.804914090.804914090.80491409

注:若积分为 ∫−∞∞g(x) dx\int_{-\infty}^\infty g(x)\,\mathrm{d}x∫−∞∞​g(x)dx,可提取 e−x2\mathrm{e}^{-x^2}e−x2 因子,令 f(x)=ex2g(x)f(x)=\mathrm{e}^{x^2}g(x)f(x)=ex2g(x)。

Gauss-Chebyshev 公式

定义 Chebyshev 多项式:

Tn(x)=cos⁡(narccos⁡x)T_n(x)=\cos(n\arccos x)Tn​(x)=cos(narccosx)

对于区间 [−1,1][-1,1][−1,1],权函数 w(x)=11−x2w(x)=\dfrac{1}{\sqrt{1-x^2}}w(x)=1−x2​1​(端点奇异性),有 Gauss-Chebyshev 公式:

∫−11f(x)1−x2 dx≈πn∑k=1nf(cos⁡2k−12nπ)\int_{-1}^1 \frac{f(x)}{\sqrt{1-x^2}}\,\mathrm{d}x \approx \frac{\pi}{n}\sum_{k=1}^n f\left(\cos\frac{2k-1}{2n}\pi\right)∫−11​1−x2​f(x)​dx≈nπ​k=1∑n​f(cos2n2k−1​π)

积分节点:Tn(x)T_n(x)Tn​(x) 的零点:

xk=cos⁡2k−12nπ,k=1,2,…,nx_k = \cos\frac{2k-1}{2n}\pi,\quad k=1,2,\ldots,nxk​=cos2n2k−1​π,k=1,2,…,n

权重系数:所有权重相等,Ak=πnA_k = \dfrac{\pi}{n}Ak​=nπ​。

注:这是极少数权重显式相等、节点有闭式三角函数表达的 Gauss 公式,计算极其高效。

算法实现

Gauss-Legendre 求积:

import numpy as np
from scipy.special import roots_legendre

def gauss_legendre(f, a, b, n):
    """
    使用 n 点 Gauss-Legendre 公式计算 ∫_a^b f(x) dx
    """
    # 获取标准区间 [-1, 1] 上的节点和权重
    x, w = roots_legendre(n)
    
    # 区间变换: t ∈ [-1,1] → x ∈ [a,b]
    # x = (a+b)/2 + (b-a)/2 * t
    # dx = (b-a)/2 dt
    t = x
    nodes = 0.5 * (a + b) + 0.5 * (b - a) * t
    weights = w * 0.5 * (b - a)
    
    return np.sum(weights * f(nodes))

自适应 Gauss-Legendre:

def composite_gauss_legendre(f, a, b, n, m):
    """
    将 [a,b] 分为 m 个子区间,每个子区间用 n 点 Gauss-Legendre
    """
    h = (b - a) / m
    total = 0.0
    for i in range(m):
        ai = a + i * h
        bi = ai + h
        total += gauss_legendre(f, ai, bi, n)
    return total

注:对于光滑性不足或变化剧烈的函数,复合 Gauss 公式比单纯增加单区间节点数更稳健。

复杂度分析

指标GaussNewton-Cotes
节点数nnnnnn
代数精度2n−12n-12n−1nnn(nnn 奇数)/ n−1n-1n−1(nnn 偶数)
函数求值次数nnnnnn
权重/节点计算O(n2)O(n^2)O(n2)(需解特征值/正交多项式零点)O(1)O(1)O(1)(解析表达式)
适用区间各种区间有限区间
端点奇异性可变换函数或选用 Chebyshev通常失效

注:Gauss 求积的复杂性在于节点和权重的预计算。不过同一 nnn 的节点权重只需计算一次。


数值积分专题

振荡函数的积分

问题: 计算 ∫abf(x)cos⁡ωx dx\int_a^b f(x)\cos\omega x\,\mathrm{d}x∫ab​f(x)cosωxdx 或 ∫abf(x)sin⁡ωx dx\int_a^b f(x)\sin\omega x\,\mathrm{d}x∫ab​f(x)sinωxdx,其中 f(x)f(x)f(x) 非振荡,ω≫1\omega \gg 1ω≫1。

困难:标准 Newton-Cotes 或 Gauss 公式需要极密节点才能捕捉高频振荡,计算量巨大。

方法:分段线性插值 + 解析积分。

将 [a,b][a,b][a,b] 分为 nnn 等分,h=(b−a)/nh=(b-a)/nh=(b−a)/n,xi=a+ihx_i=a+ihxi​=a+ih。在每个子区间 [xi,xi+1][x_i,x_{i+1}][xi​,xi+1​] 上用线性插值:

φ(x)=f(xi)+f(xi+1)−f(xi)h(x−xi)\varphi(x) = f(x_i) + \frac{f(x_{i+1})-f(x_i)}{h}(x-x_i)φ(x)=f(xi​)+hf(xi+1​)−f(xi​)​(x−xi​)

利用分部积分,∫xixi+1φ(x)cos⁡ωx dx\int_{x_i}^{x_{i+1}} \varphi(x)\cos\omega x\,\mathrm{d}x∫xi​xi+1​​φ(x)cosωxdx 有闭式解:

1ω[f(xi+1)sin⁡ωxi+1−f(xi)sin⁡ωxi]+f(xi+1)−f(xi)ω2h[cos⁡ωxi+1−cos⁡ωxi]\begin{aligned} &\frac{1}{\omega}\left[f(x_{i+1})\sin\omega x_{i+1} - f(x_i)\sin\omega x_i\right] \\ &\quad + \frac{f(x_{i+1})-f(x_i)}{\omega^2 h}\left[\cos\omega x_{i+1} - \cos\omega x_i\right] \end{aligned}​ω1​[f(xi+1​)sinωxi+1​−f(xi​)sinωxi​]+ω2hf(xi+1​)−f(xi​)​[cosωxi+1​−cosωxi​]​

对 iii 求和,第一项为 telescoping sum:

∑i=0n−1f(xi+1)sin⁡ωxi+1−f(xi)sin⁡ωxiω=f(xn)sin⁡ωxn−f(x0)sin⁡ωx0ω\sum_{i=0}^{n-1} \frac{f(x_{i+1})\sin\omega x_{i+1} - f(x_i)\sin\omega x_i}{\omega} = \frac{f(x_n)\sin\omega x_n - f(x_0)\sin\omega x_0}{\omega}i=0∑n−1​ωf(xi+1​)sinωxi+1​−f(xi​)sinωxi​​=ωf(xn​)sinωxn​−f(x0​)sinωx0​​

第二项经整理(利用三角恒等式):

∑i=1n−1f(xi)2cos⁡ωxi(1−cos⁡ωh)ω2h−f(x0)cos⁡ωx1−cos⁡ωx0ω2h−f(xn)cos⁡ωxn−cos⁡ωxn−1ω2h\sum_{i=1}^{n-1} f(x_i)\frac{2\cos\omega x_i(1-\cos\omega h)}{\omega^2 h} - f(x_0)\frac{\cos\omega x_1-\cos\omega x_0}{\omega^2 h} - f(x_n)\frac{\cos\omega x_n-\cos\omega x_{n-1}}{\omega^2 h}i=1∑n−1​f(xi​)ω2h2cosωxi​(1−cosωh)​−f(x0​)ω2hcosωx1​−cosωx0​​−f(xn​)ω2hcosωxn​−cosωxn−1​​

误差估计:

∣∫abf(x)cos⁡ωx dx−∫abφ(x)cos⁡ωx dx∣≤b−a8h2max⁡x∈[a,b]∣f′′(x)∣\left|\int_a^b f(x)\cos\omega x\,\mathrm{d}x - \int_a^b \varphi(x)\cos\omega x\,\mathrm{d}x\right| \le \frac{b-a}{8}h^2 \max_{x\in[a,b]}|f''(x)|​∫ab​f(x)cosωxdx−∫ab​φ(x)cosωxdx​≤8b−a​h2x∈[a,b]max​∣f′′(x)∣

注:误差界与 ω\omegaω 无关,这是该方法的核心优势。当 ω\omegaω 很大时,若 hhh 固定,经典方法误差随 ω\omegaω 增长,而本方法误差保持 O(h2)O(h^2)O(h2)。

奇异函数的积分

问题:f(x)f(x)f(x) 在 [a,b][a,b][a,b] 内有奇异点,例如 x=ax=ax=a 处 f(x)→∞f(x)\to\inftyf(x)→∞。

可积条件:设 f(x)=φ(x)(x−a)μf(x) = \dfrac{\varphi(x)}{(x-a)^\mu}f(x)=(x−a)μφ(x)​,其中 0<μ<10<\mu<10<μ<1,∣φ(x)∣≤M|\varphi(x)|\le M∣φ(x)∣≤M。若 μ≥1\mu\ge 1μ≥1,积分发散。

方法一(积分域分解 + Taylor 展开):

将积分分解:

I=∫aa+εφ(x)(x−a)μ dx⏟I1+∫a+εbφ(x)(x−a)μ dx⏟I2I = \underbrace{\int_a^{a+\varepsilon} \frac{\varphi(x)}{(x-a)^\mu}\,\mathrm{d}x}_{I_1} + \underbrace{\int_{a+\varepsilon}^b \frac{\varphi(x)}{(x-a)^\mu}\,\mathrm{d}x}_{I_2}I=I1​∫aa+ε​(x−a)μφ(x)​dx​​+I2​∫a+εb​(x−a)μφ(x)​dx​​

对 φ(x)\varphi(x)φ(x) 在 x=ax=ax=a 处 Taylor 展开:

φ(x)=∑k=0p(x−a)kk!φ(k)(a)+(x−a)p+1(p+1)!φ(p+1)(ξ)\varphi(x) = \sum_{k=0}^p \frac{(x-a)^k}{k!}\varphi^{(k)}(a) + \frac{(x-a)^{p+1}}{(p+1)!}\varphi^{(p+1)}(\xi)φ(x)=k=0∑p​k!(x−a)k​φ(k)(a)+(p+1)!(x−a)p+1​φ(p+1)(ξ)

则 I1I_1I1​ 可解析计算:

I1≈ε1−μ∑k=0pεkφ(k)(a)k!(k+1−μ)I_1 \approx \varepsilon^{1-\mu}\sum_{k=0}^p \frac{\varepsilon^k \varphi^{(k)}(a)}{k!(k+1-\mu)}I1​≈ε1−μk=0∑p​k!(k+1−μ)εkφ(k)(a)​

误差项:

∣R∣≤εp+2−μ(p+1)!(p+2−μ)max⁡x∈[a,a+ε]∣φ(p+1)(x)∣|R| \le \frac{\varepsilon^{p+2-\mu}}{(p+1)!(p+2-\mu)}\max_{x\in[a,a+\varepsilon]}|\varphi^{(p+1)}(x)|∣R∣≤(p+1)!(p+2−μ)εp+2−μ​x∈[a,a+ε]max​∣φ(p+1)(x)∣

I2I_2I2​ 无奇异性,可用标准数值积分。

方法二(奇异性消去):

构造:

I=∫abφ(x)−φp(x)(x−a)μ dx+∫abφp(x)(x−a)μ dxI = \int_a^b \frac{\varphi(x)-\varphi_p(x)}{(x-a)^\mu}\,\mathrm{d}x + \int_a^b \frac{\varphi_p(x)}{(x-a)^\mu}\,\mathrm{d}xI=∫ab​(x−a)μφ(x)−φp​(x)​dx+∫ab​(x−a)μφp​(x)​dx

其中 φp(x)=∑k=0p(x−a)kk!φ(k)(a)\varphi_p(x) = \sum_{k=0}^p \frac{(x-a)^k}{k!}\varphi^{(k)}(a)φp​(x)=∑k=0p​k!(x−a)k​φ(k)(a)。第一项分子为 (x−a)p+1(x-a)^{p+1}(x−a)p+1 阶,消去奇异性;第二项解析可积。

注:实际计算中,若 φ(x)\varphi(x)φ(x) 的 Taylor 系数难以获取,也可采用变量替换法,如 x=a+trx=a+t^rx=a+tr 选择 rrr 使得奇异性消失。

无限积分域函数的积分

问题:计算 I=∫a+∞f(x) dxI = \int_a^{+\infty} f(x)\,\mathrm{d}xI=∫a+∞​f(x)dx。

可积条件:充分条件为 ∃μ>0\exists\mu>0∃μ>0 使得 lim⁡x→+∞x1+μf(x)=C\lim_{x\to+\infty} x^{1+\mu}f(x) = Climx→+∞​x1+μf(x)=C(有限)。

方法一(截断 + 渐进展开):

选取充分大的 bbb:

I=∫abf(x) dx⏟标准数值积分+∫b+∞f(x) dx⏟渐进近似I = \underbrace{\int_a^b f(x)\,\mathrm{d}x}_{\text{标准数值积分}} + \underbrace{\int_b^{+\infty} f(x)\,\mathrm{d}x}_{\text{渐进近似}}I=标准数值积分∫ab​f(x)dx​​+渐进近似∫b+∞​f(x)dx​​

对 x→+∞x\to+\inftyx→+∞ 做渐进展开:

f(x)∼x−(1+μ)(c0+c1x+c2x2+⋯ )f(x) \sim x^{-(1+\mu)}\left(c_0 + \frac{c_1}{x} + \frac{c_2}{x^2} + \cdots\right)f(x)∼x−(1+μ)(c0​+xc1​​+x2c2​​+⋯)

则尾项可逐项解析积分。

方法二(变量替换):

令 x=1/tx = 1/tx=1/t(假设 a>0a>0a>0):

I=∫01/af(1t)1t2 dtI = \int_0^{1/a} f\left(\frac{1}{t}\right)\frac{1}{t^2}\,\mathrm{d}tI=∫01/a​f(t1​)t21​dt

转化为有限区间积分,若 t=0t=0t=0 处出现奇异性,则按奇异函数积分方法处理。

方法三(Gauss-Laguerre / Gauss-Hermite):

若被积函数可表示为 e−xf(x)\mathrm{e}^{-x}f(x)e−xf(x) 或 e−x2f(x)\mathrm{e}^{-x^2}f(x)e−x2f(x),直接套用对应 Gauss 公式。

注:截断点 bbb 的选择需平衡截断误差与计算成本。一般要求 ∣f(b)∣⋅b≪ε|f(b)|\cdot b \ll \varepsilon∣f(b)∣⋅b≪ε,其中 ε\varepsilonε 为目标精度。

自适应数值积分

核心思想:根据被积函数的局部变化动态调整子区间大小。

  • 函数变化剧烈(导数大、曲率大):细分小区间,使用更密节点。
  • 函数变化平坦:使用较宽区间。

目标:在给定误差容限 ε\varepsilonε 下,最小化总函数求值次数。

典型策略(以自适应 Simpson 为例):

对区间 [a,b][a,b][a,b],分别计算:

  • S(a,b)S(a,b)S(a,b):单区间 Simpson 近似
  • S(a,c)+S(c,b)S(a,c) + S(c,b)S(a,c)+S(c,b):二分后 Simpson 近似,c=(a+b)/2c=(a+b)/2c=(a+b)/2

若 ∣S(a,b)−[S(a,c)+S(c,b)]∣<15ε/2|S(a,b) - [S(a,c)+S(c,b)]| < 15\varepsilon/2∣S(a,b)−[S(a,c)+S(c,b)]∣<15ε/2,接受结果; 否则递归处理 [a,c][a,c][a,c] 和 [c,b][c,b][c,b],误差容限各分配 ε/2\varepsilon/2ε/2。

多重积分

矩形区域上的二重积分:

∬Sf(x,y) dA=∫ab[∫cdf(x,y) dy]dx,S=[a,b]×[c,d]\iint_S f(x,y)\,\mathrm{d}A = \int_a^b\left[\int_c^d f(x,y)\,\mathrm{d}y\right]\mathrm{d}x,\quad S=[a,b]\times[c,d]∬S​f(x,y)dA=∫ab​[∫cd​f(x,y)dy]dx,S=[a,b]×[c,d]

累次积分法:对内层和外层分别应用一维求积公式。

复合 Simpson 公式示例:

内层对 yyy 使用 Simpson:

∫cdf(x,y) dy≈d−c6[f(x,c)+4f(x,c+d2)+f(x,d)]\int_c^d f(x,y)\,\mathrm{d}y \approx \frac{d-c}{6}\left[f(x,c) + 4f\left(x,\frac{c+d}{2}\right) + f(x,d)\right]∫cd​f(x,y)dy≈6d−c​[f(x,c)+4f(x,2c+d​)+f(x,d)]

外层对 xxx 再次使用 Simpson,展开后得到九点权重分布:

(b−a)(d−c)36[f(a,c)+4f(a+b2,c)+f(b,c)+4f(a,c+d2)+16f(a+b2,c+d2)+4f(b,c+d2)+f(a,d)+4f(a+b2,d)+f(b,d)]\begin{aligned} &\frac{(b-a)(d-c)}{36}\Big[f(a,c) + 4f\left(\frac{a+b}{2},c\right) + f(b,c) \\ &\quad + 4f\left(a,\frac{c+d}{2}\right) + 16f\left(\frac{a+b}{2},\frac{c+d}{2}\right) + 4f\left(b,\frac{c+d}{2}\right) \\ &\quad + f(a,d) + 4f\left(\frac{a+b}{2},d\right) + f(b,d)\Big] \end{aligned}​36(b−a)(d−c)​[f(a,c)+4f(2a+b​,c)+f(b,c)+4f(a,2c+d​)+16f(2a+b​,2c+d​)+4f(b,2c+d​)+f(a,d)+4f(2a+b​,d)+f(b,d)]​

注:高维积分(d≥3d\ge 3d≥3)时,一维公式直接张量积会导致维度灾难(节点数随 ndn^dnd 增长)。此时需采用改进方法。


复杂度与方法对比总表

积分类型推荐方法核心优势主要限制
光滑函数,有限区间Gauss-Legendre2n−12n-12n−1 代数精度,节点少需预计算节点权重
端点 1/1−x21/\sqrt{1-x^2}1/1−x2​ 奇异Gauss-Chebyshev节点闭式,权重相等特定权函数
半无限区间 + e−x\mathrm{e}^{-x}e−xGauss-Laguerre天然处理无限域需提取指数因子
全实轴 + e−x2\mathrm{e}^{-x^2}e−x2Gauss-Hermite量子力学/统计常用需提取指数因子
高频振荡 (ω≫1\omega\gg 1ω≫1)Filon 型/分段线性插值误差与 ω\omegaω 无关需 f(x)f(x)f(x) 低阶导数有界
代数奇异 (x−μx^{-\mu}x−μ)奇异性消去 / 域分解将奇异部分解析处理需 Taylor 展开系数
无限区间一般函数截断 + 渐进 / 变量替换灵活通用截断点选取需经验
局部剧烈变化自适应求积误差均匀分布,省节点递归开销,实现复杂
矩形区域二重积分累次 Simpson / Gauss利用一维公式直接推广高维时维度灾难
目录
  • Gauss 型求积公式
    • 核心思想
    • 数学基础
    • 计算公式与推导
      • 区间标准化
      • 两点 Gauss-Legendre 公式
      • Gauss-Legendre 公式
      • Gauss-Laguerre 公式
      • Gauss-Hermite 公式
      • Gauss-Chebyshev 公式
    • 算法实现
    • 复杂度分析
  • 数值积分专题
    • 振荡函数的积分
    • 奇异函数的积分
    • 无限积分域函数的积分
    • 自适应数值积分
    • 多重积分
  • 复杂度与方法对比总表
© 2026 miniyuan. All rights reserved.
Go to miniyuan's GitHub repo