微积分学提供了求函数导数与定积分的解析方法,但在实际问题中,函数往往以离散数据形式给出,或虽具有解析表达式却难以求导或原函数无法用初等函数表示。因此,需要建立基于离散点上的函数值来近似计算导数与积分的数值方法,分别称为数值微分与数值积分。

一、数值微分

数值微分的基本思想是利用函数在若干点上的值,通过差商或插值多项式来近似函数的导数。

1、差商型求导公式

由导数的定义

$$ f'(x)=\lim_{h\to0}\frac{f(x+h)-f(x)}{h} $$

当步长 $h$ 充分小时,可用差商近似导数。常用的差商公式有:

  1. 向前差商公式

$$ f'(x)\approx \frac{f(x+h)-f(x)}{h} $$

  1. 向后差商公式

$$ f'(x)\approx \frac{f(x)-f(x-h)}{h} $$

  1. 中心差商公式

$$ f'(x)\approx \frac{f(x+h)-f(x-h)}{2h} $$

利用泰勒展开可估计其截断误差。将 $f(x+h)$ 与 $f(x-h)$ 在 $x$ 处展开:

$$ f(x+h)=f(x)+h f'(x)+\frac{h^2}{2}f''(x)+\frac{h^3}{6}f'''(x)+\cdots $$

$$ f(x-h)=f(x)-h f'(x)+\frac{h^2}{2}f''(x)-\frac{h^3}{6}f'''(x)+\cdots $$

向前差商的误差:

$$ \frac{f(x+h)-f(x)}{h}-f'(x)=\frac{h}{2}f''(x)+O(h^2)=O(h) $$

向后差商同样为一阶精度。

中心差商:

$$ \frac{f(x+h)-f(x-h)}{2h}-f'(x)=\frac{h^2}{6}f'''(x)+O(h^4)=O(h^2) $$

可见中心差商具有二阶精度,优于前两种一阶精度公式。但步长 $h$ 过小时,会因有效数字相消而产生较大的舍入误差,因此实际应用中需选择合适的步长。

2、插值型求导公式

若已知函数 $f(x)$ 在节点 $x_i\ (i=0,1,\cdots,n)$ 上的值,可构造插值多项式 $\varphi_n(x)$ 近似 $f(x)$,并用 $\varphi_n(x)$ 的导数作为 $f(x)$ 导数的近似:

$$ f^{(k)}(x)\approx \varphi_n^{(k)}(x)\qquad (k=1,2,\cdots) $$

这就是插值型求导公式。由于插值余项:

$$ R_n(x)=f(x)-\varphi_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x) $$

其中 $\omega_{n+1}(x)=\prod_{i=0}^n (x-x_i)$。对 $x$ 求导得:

$$ R_n'(x)=f'(x)-\varphi_n'(x) =\frac{\omega_{n+1}(x)}{(n+1)!}\frac{d}{dx}\left[f^{(n+1)}(\xi)\right] +\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}'(x) $$

通常只在节点处估计误差,因为在节点 $x_i$ 处 $\omega_{n+1}(x_i)=0$,从而:

$$ R_n'(x_i)=f'(x_i)-\varphi_n'(x_i) =\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}'(x_i) $$

而:

$$ \omega_{n+1}'(x_i)=\prod_{j=0,j\ne i}^n (x_i-x_j) $$

所以:

$$ R_n'(x_i)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\prod_{j=0,j\ne i}^n (x_i-x_j) $$

因此,插值型求导通常用于求节点处的导数近似值。

下面给出等距节点情形下常用的一阶导数公式。

(1) 两点公式($n=1$)

设节点 $x_0,\ x_1=x_0+h$,一次 Lagrange 插值多项式为:

$$ L_1(x)=\frac{x-x_1}{-h}f(x_0)+\frac{x-x_0}{h}f(x_1) $$

求导得:

$$ L_1'(x)=\frac{f(x_1)-f(x_0)}{h} $$

因此在两个节点处均有:

$$ f'(x_0)\approx \frac{f(x_1)-f(x_0)}{h},\qquad f'(x_1)\approx \frac{f(x_1)-f(x_0)}{h} $$

截断误差分别为:

$$ R_1'(x_0)=-\frac{h}{2}f''(\xi_0),\qquad R_1'(x_1)=\frac{h}{2}f''(\xi_1),\quad \xi_0,\xi_1\in(x_0,x_1) $$

(2) 三点公式($n=2$)

设等距节点 $x_i=x_0+ih\ (i=0,1,2)$,二次 Lagrange 插值多项式为

$$ L_2(x)=\frac{(x-x_1)(x-x_2)}{2h^2}f(x_0) -\frac{(x-x_0)(x-x_2)}{h^2}f(x_1) +\frac{(x-x_0)(x-x_1)}{2h^2}f(x_2) $$

求导得:

$$ L_2'(x)=\frac{2x-x_1-x_2}{2h^2}f(x_0) -\frac{2x-x_0-x_2}{h^2}f(x_1) +\frac{2x-x_0-x_1}{2h^2}f(x_2) $$

分别代入 $x_0,x_1,x_2$,得到三点公式:

$$ \begin{cases} f'(x_0)\approx \dfrac{1}{2h}\big[-3f(x_0)+4f(x_1)-f(x_2)\big]\$$6pt] f'(x_1)\approx \dfrac{1}{2h}\big[-f(x_0)+f(x_2)\big]\$$6pt] f'(x_2)\approx \dfrac{1}{2h}\big[f(x_0)-4f(x_1)+3f(x_2)\big] \end{cases} $$

对应的截断误差为:

$$ \begin{cases} R_2'(x_0)=\dfrac{h^2}{3}f^{(3)}(\xi_0)\$$6pt] R_2'(x_1)=-\dfrac{h^2}{6}f^{(3)}(\xi_1)\$$6pt] R_2'(x_2)=\dfrac{h^2}{3}f^{(3)}(\xi_2) \end{cases} \quad \xi_i\in(x_0,x_2) $$

二阶导数的近似可用二次插值多项式的二阶导数,由于 $L_2''(x)$ 为常数,得到:

$$ f''(x_i)\approx L_2''(x_i)=\frac{1}{h^2}\big[f(x_0)-2f(x_1)+f(x_2)\big]\qquad (i=0,1,2) $$

其截断误差为 $O(h^2)$。

二、数值积分的基本思想

定积分定义为积分和的极限:

$$ \int_a^b f(x)\,dx=\lim_{\lambda\to0}\sum_{i=1}^n f(\xi_i)\Delta x_i $$

该式表明积分值可近似为若干点上函数值的线性组合。一般地,数值求积公式具有如下形式:

$$ \int_a^b f(x)\,dx \approx \sum_{k=0}^n A_k f(x_k) $$

其中 $x_k$ 为积分区间上的节点,$A_k$ 为求积系数,仅与节点选取有关,与被积函数无关。

最自然的构造方法是插值型求积:用 $f(x)$ 的插值多项式代替被积函数,以其积分作为近似。设 $L_n(x)$ 为 $n$ 次 Lagrange 插值多项式:

$$ L_n(x)=\sum_{k=0}^n l_k(x)f(x_k),\qquad l_k(x)=\prod_{j=0,j\ne k}^n \frac{x-x_j}{x_k-x_j} $$

则:

$$ \int_a^b f(x)\,dx \approx \int_a^b L_n(x)\,dx =\sum_{k=0}^n \left(\int_a^b l_k(x)\,dx\right) f(x_k) $$

因此求积系数:

$$ A_k=\int_a^b l_k(x)\,dx $$

该公式的截断误差恰为插值余项在区间上的积分:

$$ R_n(f)=\int_a^b \frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x)\,dx $$

三、牛顿-科茨(Newton-Cotes)公式

当节点取等距分布时,插值型求积公式可化为更简洁的形式,称为牛顿-科茨公式。

设区间 $[a,b]$ 被 $n$ 等分,步长 $h=\frac{b-a}{n}$,节点 $x_k=a+kh\ (k=0,1,\cdots,n)$。求积系数为:

$$ A_k=\int_a^b l_k(x)\,dx $$

令 $x=a+th$,则 $dx=h\,dt$,且:

$$ l_k(x)=\prod_{j=0,j\ne k}^n \frac{x-x_j}{x_k-x_j} =\prod_{j=0,j\ne k}^n \frac{(t-j)h}{(k-j)h} =\frac{(-1)^{n-k}}{k!(n-k)!}\prod_{j=0,j\ne k}^n (t-j) $$

于是:

$$ A_k=\frac{(-1)^{n-k}h}{k!(n-k)!}\int_0^n \prod_{j=0,j\ne k}^n (t-j)\,dt $$

定义科茨系数:

$$ C_k^{(n)}=\frac{(-1)^{n-k}}{n\,k!(n-k)!}\int_0^n \prod_{j=0,j\ne k}^n (t-j)\,dt $$

则:

$$ A_k=(b-a)C_k^{(n)} $$

从而牛顿-科茨公式为:

$$ \int_a^b f(x)\,dx \approx (b-a)\sum_{k=0}^n C_k^{(n)} f(x_k) $$

科茨系数与积分区间和被积函数无关,可事先制表。

特别地,常见的低阶公式:

  • $n=1$(梯形公式):

    $$ C_0^{(1)}=C_1^{(1)}=\frac{1}{2} $$

    故:

    $$ \int_a^b f(x)\,dx \approx \frac{b-a}{2}\big[f(a)+f(b)\big] $$

    几何上以梯形面积近似曲边梯形面积。

  • $n=2$(辛普森/抛物线公式):

    $$ C_0^{(2)}=\frac{1}{6},\quad C_1^{(2)}=\frac{4}{6},\quad C_2^{(2)}=\frac{1}{6} $$

    故:

    $$ \int_a^b f(x)\,dx \approx \frac{b-a}{6}\left[f(a)+4f\left(\frac{a+b}{2}\right)+f(b)\right] $$

    几何上以过三点的抛物线近似。

  • $n=4$(科茨公式):

    $$ \int_a^b f(x)\,dx \approx \frac{b-a}{90}\left[7f(a)+32f\left(a+\frac{b-a}{4}\right)+12f\left(\frac{a+b}{2}\right)+32f\left(a+\frac{3(b-a)}{4}\right)+7f(b)\right] $$

四、代数精确度与误差估计

1、代数精确度的定义

若求积公式对任意次数不超过 $m$ 的多项式均精确成立,而对某个 $m+1$ 次多项式不精确成立,则称该求积公式具有 $m$ 次代数精确度。代数精确度是衡量求积公式精度的重要指标。由插值型求积公式的构造可知,$n$ 阶牛顿-科茨公式至少具有 $n$ 次代数精确度。进一步有:偶数阶($n=2m$)牛顿-科茨公式至少具有 $2m+1$ 次代数精确度。

证明:设 $P_{2m+1}(x)$ 为任意 $2m+1$ 次多项式,其最高次项系数为 $a_{2m+1}$。由余项公式

$$ R_{2m}(P_{2m+1}) =\int_a^b \frac{P_{2m+1}^{(2m+1)}(\xi)}{(2m+1)!}\prod_{j=0}^{2m}(x-x_j)\,dx $$

由于 $P_{2m+1}^{(2m+1)}(\xi)=(2m+1)!\,a_{2m+1}$,且等距节点 $x_j=a+jh$,令 $x=a+mh+th$,则

$$ R_{2m}(P_{2m+1}) =a_{2m+1}\,h^{2m+2}\int_{-m}^{m} \prod_{j=0}^{2m}(t+m-j)\,dt $$

乘积因子为

$$ (t+m)(t+m-1)\cdots(t+1)t(t-1)\cdots(t-m) = t\,(t^2-1)(t^2-2^2)\cdots(t^2-m^2) $$

该函数为奇函数,积分区间关于原点对称,故积分为零。因此 $R_{2m}(P_{2m+1})=0$,即公式对 $2m+1$ 次多项式精确成立。而 $2m+2$ 次多项式一般不能精确成立,故代数精确度为 $2m+1$。证毕。

例如,梯形公式($n=1$,奇数阶)具有 1 次代数精确度;辛普森公式($n=2$,偶数阶)具有 3 次代数精确度;科茨公式($n=4$)具有 5 次代数精确度。

2、梯形公式与辛普森公式的误差估计

(1)梯形公式的误差

由余项公式:

$$ R_1(f)=\int_a^b \frac{f''(\xi)}{2}(x-a)(x-b)\,dx $$

由于 $(x-a)(x-b)\le 0$ 在 $[a,b]$ 上不变号,且 $f''(x)$ 连续,由积分中值定理,存在 $\xi\in(a,b)$,使得:

$$ R_1(f)=\frac{f''(\xi)}{2}\int_a^b (x-a)(x-b)\,dx $$

而:

$$ \int_a^b (x-a)(x-b)\,dx =\left[\frac{x^3}{3}-\frac{a+b}{2}x^2+abx\right]_a^b =-\frac{(b-a)^3}{6} $$

故:

$$ R_1(f)=-\frac{(b-a)^3}{12}f''(\xi) $$

(2)辛普森公式的误差

构造三次 Hermite 插值多项式 $H_3(x)$,使其在端点 $a,b$ 处函数值与 $f$ 相同,在中点 $c=\frac{a+b}{2}$ 处函数值和导数值与 $f$ 相同,即:

$$ H_3(a)=f(a),\quad H_3(b)=f(b),\quad H_3(c)=f(c),\quad H_3'(c)=f'(c) $$

其插值余项为:

$$ f(x)-H_3(x)=\frac{f^{(4)}(\xi_1)}{4!}(x-a)(x-c)^2(x-b) $$

由于辛普森公式具有 3 次代数精确度,它对三次多项式 $H_3(x)$ 精确成立:

$$ \int_a^b H_3(x)\,dx=\frac{b-a}{6}\left[H_3(a)+4H_3(c)+H_3(b)\right] =\frac{b-a}{6}\left[f(a)+4f(c)+f(b)\right] $$

因此:

$$ R_2(f)=\int_a^b f(x)\,dx-\frac{b-a}{6}\left[f(a)+4f(c)+f(b)\right] =\int_a^b \big[f(x)-H_3(x)\big]\,dx $$

$$ =\int_a^b \frac{f^{(4)}(\xi_1)}{4!}(x-a)(x-c)^2(x-b)\,dx $$

由于 $(x-a)(x-c)^2(x-b)\le 0$ 在 $[a,b]$ 上不变号(非正),应用积分中值定理,存在 $\xi\in(a,b)$,使得:

$$ R_2(f)=\frac{f^{(4)}(\xi)}{4!}\int_a^b (x-a)(x-c)^2(x-b)\,dx $$

计算积分:
令 $h=\frac{b-a}{2}$,取 $c$ 为原点,则 $a=-h,\ b=h$,

$$ \int_{-h}^{h} (t+h)t^2(t-h)\,dt=\int_{-h}^{h} t^2(t^2-h^2)\,dt =2\int_0^h (t^4-h^2t^2)\,dt =2\left(\frac{h^5}{5}-\frac{h^5}{3}\right)=-\frac{4h^5}{15} $$

而 $\frac{1}{4!}=\frac{1}{24}$,故:

$$ R_2(f)=\frac{f^{(4)}(\xi)}{24}\left(-\frac{4h^5}{15}\right) =-\frac{h^5}{90}f^{(4)}(\xi) =-\frac{(b-a)^5}{2880}f^{(4)}(\xi) $$

科茨公式($n=4$)的误差为:

$$ R_4(f)=-\frac{8}{945}h^7 f^{(6)}(\xi),\qquad h=\frac{b-a}{4} $$

五、复化求积公式

当积分区间较大或要求较高精度时,直接使用高阶牛顿-科茨公式可能不稳定(科茨系数会出现负值),且高次插值易产生龙格现象。为此采用复化求积法:将区间 $[a,b]$ 等分成若干子区间,在每个子区间上用低阶求积公式,然后累加。这样既提高了精度,又保证了数值稳定性。

1、复化梯形公式

将 $[a,b]$ $n$ 等分,步长 $h=\frac{b-a}{n}$,节点 $x_k=a+kh\ (k=0,1,\cdots,n)$。在每个小区间 $[x_k,x_{k+1}]$ 上用梯形公式:

$$ \int_{x_k}^{x_{k+1}} f(x)\,dx \approx \frac{h}{2}\big[f(x_k)+f(x_{k+1})\big] $$

累加得:

$$ T_n=\sum_{k=0}^{n-1}\frac{h}{2}\big[f(x_k)+f(x_{k+1})\big] =\frac{h}{2}\left[f(a)+f(b)+2\sum_{k=1}^{n-1}f(x_k)\right] $$

这就是复化梯形公式。每个小区间上的误差为 $-\frac{h^3}{12}f''(\xi_k)$,总误差:

$$ R_T=\sum_{k=0}^{n-1}\left[-\frac{h^3}{12}f''(\xi_k)\right] =-\frac{h^3}{12}\sum_{k=0}^{n-1}f''(\xi_k) $$

若 $f''(x)$ 在 $[a,b]$ 上连续,由介值性,存在 $\xi\in(a,b)$ 使得:

$$ \frac{1}{n}\sum_{k=0}^{n-1}f''(\xi_k)=f''(\xi) $$

故:

$$ R_T=-\frac{n h^3}{12}f''(\xi)=-\frac{(b-a)h^2}{12}f''(\xi) $$

即复化梯形公式的误差为 $O(h^2)$。

2、复化辛普森公式

将 $[a,b]$ 分成 $n$ 个小区间($n$ 为偶数,常用 $2m$ 等分),步长 $h=\frac{b-a}{n}$,在每个小区间 $[x_{2k}, x_{2k+2}]$ 上用辛普森公式(需三个点):

$$ \int_{x_{2k}}^{x_{2k+2}} f(x)\,dx \approx \frac{h}{3}\big[f(x_{2k})+4f(x_{2k+1})+f(x_{2k+2})\big] $$

累加得:

$$ S_n=\frac{h}{3}\sum_{k=0}^{n/2-1}\big[f(x_{2k})+4f(x_{2k+1})+f(x_{2k+2})\big] $$

合并同节点项::

$$ S_n=\frac{h}{3}\left[f(a)+f(b)+4\sum_{k=0}^{n/2-1}f(x_{2k+1})+2\sum_{k=1}^{n/2-1}f(x_{2k})\right] $$

其中 $n$ 必须为偶数。每个子区间 $[x_{2k},x_{2k+2}]$ 的辛普森误差为 $-\frac{h^5}{90}f^{(4)}(\xi_k)$,总误差:

$$ R_S=-\frac{h^5}{90}\sum_{k=0}^{n/2-1}f^{(4)}(\xi_k) =-\frac{(n/2)h^5}{90}f^{(4)}(\xi) =-\frac{(b-a)h^4}{180}f^{(4)}(\xi) $$

可见复化辛普森公式的误差为 $O(h^4)$,精度远高于复化梯形公式。

3、复化科茨公式

若在每个小区间上用科茨公式(需4个子区间),可得复化科茨公式,其误差为 $O(h^6)$,但计算量增大,实际中较少使用。

复化求积公式是数值积分中最常用的方法,其优点在于可通过增加节点数(减小 $h$)来提高精度,且稳定性好。在实际计算中,常采用变步长自适应策略(如龙贝格积分)来在精度与计算量之间取得平衡。

六、高斯(Gauss)型求积公式

1、基本思想与最高代数精确度

牛顿-科茨求积公式采用等距节点,一旦节点数 $n$ 固定,代数精确度至多为 $n$(偶数阶时可达 $n+1$)。然而,若允许自由选取节点 $x_k$ 与求积系数 $A_k$,则可在节点数固定时达到最高的代数精确度。这就是高斯型求积公式的核心思想。

考虑带权函数的数值求积公式:

$$ \int_a^b \rho(x) f(x) \, dx \approx \sum_{k=1}^n A_k f(x_k) $$

其中权函数 $\rho(x) \ge 0$,且在区间上不恒为零。共有 $2n$ 个待定参数($n$ 个节点 $x_k$ 和 $n$ 个系数 $A_k$),因此理论上最多可使公式对 $2n-1$ 次多项式精确成立(因为一个 $2n-1$ 次多项式有 $2n$ 个独立系数,与参数个数一致)。

下面证明 $n$ 个节点的求积公式不可能具有 $2n$ 次代数精确度。取:

$$ p_{2n}(x) = (x - x_1)^2 (x - x_2)^2 \cdots (x - x_n)^2 $$

显然 $p_{2n}(x)$ 是 $2n$ 次多项式,且对任意选定的互异节点 $x_k$,都有 $p_{2n}(x_k)=0$,从而:

$$ \sum_{k=1}^n A_k p_{2n}(x_k) = 0 $$

但:

$$ \int_a^b \rho(x) p_{2n}(x) \, dx > 0 $$

因为被积函数非负且不恒为零。因此求积公式对 $p_{2n}(x)$ 不精确成立,故代数精确度不可能达到 $2n$。于是最高可能代数精确度为 $2n-1$。

若一组节点 $x_1, x_2, \cdots, x_n \in [a,b]$ 能使上述求积公式具有 $2n-1$ 次代数精确度,则称这些节点为Gauss 点,相应的求积公式称为Gauss 型求积公式。

2、Gauss 点与正交多项式的关系

Gauss 点的确定可通过正交多项式来刻画。

定理(Gauss 点的充要条件):节点 $x_1,\cdots,x_n$ 是 Gauss 点的充要条件是多项式:

$$ \omega_n(x) = \prod_{k=1}^n (x - x_k) $$

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

$$ \int_a^b \rho(x) p(x) \omega_n(x) \, dx = 0 $$

证明

(必要性) 设 $x_1,\cdots,x_n$ 是 Gauss 点,则求积公式具有 $2n-1$ 次代数精确度。对任意至多 $n-1$ 次多项式 $p(x)$,乘积 $p(x)\omega_n(x)$ 的次数至多为 $2n-1$,故公式精确成立:

$$ \int_a^b \rho(x) p(x)\omega_n(x) \, dx = \sum_{k=1}^n A_k p(x_k)\omega_n(x_k) = 0 $$

因为 $\omega_n(x_k)=0$。正交性得证。

(充分性) 设 $\omega_n(x)$ 与所有至多 $n-1$ 次多项式正交。任取次数不超过 $2n-1$ 的多项式 $f(x)$,用 $\omega_n(x)$ 除 $f(x)$,得

$$ f(x) = q(x)\omega_n(x) + r(x) $$

其中 $q(x), r(x)$ 的次数均不超过 $n-1$,且 $r(x_k)=f(x_k)$(因 $\omega_n(x_k)=0$)。于是

$$ \int_a^b \rho(x) f(x) \, dx = \int_a^b \rho(x) q(x)\omega_n(x) \, dx + \int_a^b \rho(x) r(x) \, dx $$

由正交性,第一项为零。只需证明

$$ \int_a^b \rho(x) r(x) \, dx = \sum_{k=1}^n A_k r(x_k) $$

对任意次数不超过 $n-1$ 的多项式 $r(x)$ 成立,即求积公式对 $n-1$ 次多项式精确成立。这等价于存在系数 $A_k$ 使公式对基 $1,x,\cdots,x^{n-1}$ 精确成立。这正是关于 $A_k$ 的线性方程组(系数矩阵为范德蒙德矩阵,因节点互异而可逆):

$$ \sum_{k=1}^n A_k x_k^l = \int_a^b \rho(x) x^l \, dx \quad (l=0,1,\cdots,n-1) $$

该方程组有唯一解。因此求积公式对任意 $n-1$ 次多项式精确成立。特别地,对 $r(x)$ 成立。于是

$$ \int_a^b \rho(x) f(x) \, dx = \sum_{k=1}^n A_k r(x_k) = \sum_{k=1}^n A_k f(x_k) $$

故公式具有 $2n-1$ 次代数精确度,节点为 Gauss 点。定理得证。

由上述定理可知,Gauss 点正是区间 $[a,b]$ 上关于权函数 $\rho(x)$ 的 $n$ 次正交多项式的 $n$ 个实根。因为正交多项式系中的 $n$ 次多项式 $\omega_n(x)$ 与所有低次多项式正交,且其根均为实数、互异且位于区间内部。

3、求积系数的确定

一旦 Gauss 点 $x_k$ 已知,求积系数 $A_k$ 可由插值基函数确定。令:

$$ p_k(x) = \frac{\omega_n(x)}{(x-x_k)\omega_n'(x_k)} = \prod_{j\ne k} \frac{x-x_j}{x_k-x_j} $$

这是 $n-1$ 次 Lagrange 插值基函数,满足 $p_k(x_j)=\delta_{kj}$。由于求积公式对 $p_k(x)$(次数为 $n-1$)精确成立,有:

$$ \int_a^b \rho(x) p_k(x) \, dx = \sum_{j=1}^n A_j p_k(x_j) = A_k $$

因此:

$$ A_k = \int_a^b \rho(x) \frac{\omega_n(x)}{(x-x_k)\omega_n'(x_k)} \, dx \quad (k=1,2,\cdots,n) $$

该式提供了计算求积系数的统一公式。可以证明所有 $A_k>0$(因为 $\rho(x)\omega_n^2(x)/(x-x_k)^2 \ge 0$ 且不恒为零)。

4、Gauss 型求积公式的误差估计

定理(余项公式):设 $f(x)$ 在 $[a,b]$ 上 $2n$ 阶连续可微,则 Gauss 型求积公式的截断误差为:

$$ R(f) = \int_a^b \rho(x) f(x) \, dx - \sum_{k=1}^n A_k f(x_k) = \frac{f^{(2n)}(\xi)}{(2n)!} \int_a^b \rho(x) \omega_n^2(x) \, dx $$

其中 $\xi \in (a,b)$。

证明:构造 $f(x)$ 在节点 $x_1,\cdots,x_n$ 上的 Hermite 插值多项式 $H(x)$,使其满足

$$ H(x_k) = f(x_k), \quad H'(x_k) = f'(x_k) \quad (k=1,2,\cdots,n) $$

该多项式的次数至多为 $2n-1$。由 Hermite 插值余项公式(参见第五章),有

$$ f(x) - H(x) = \frac{f^{(2n)}(\xi_x)}{(2n)!} \omega_n^2(x) $$

其中 $\xi_x$ 介于 $x$ 与节点之间。由于 Gauss 型求积公式具有 $2n-1$ 次代数精确度,它对 $H(x)$ 精确成立:

$$ \int_a^b \rho(x) H(x) \, dx = \sum_{k=1}^n A_k H(x_k) = \sum_{k=1}^n A_k f(x_k) $$

于是

$$ R(f) = \int_a^b \rho(x) [f(x) - H(x)] \, dx = \int_a^b \rho(x) \frac{f^{(2n)}(\xi_x)}{(2n)!} \omega_n^2(x) \, dx $$

因为 $\rho(x)\omega_n^2(x) \ge 0$ 且在区间上不恒为零,由积分中值定理,存在 $\xi \in (a,b)$,使得

$$ R(f) = \frac{f^{(2n)}(\xi)}{(2n)!} \int_a^b \rho(x) \omega_n^2(x) \, dx $$

得证。

该余项表明,Gauss 型求积公式的收敛阶为 $O(h^{2n})$(若区间划分),具有极高的精度。

此外,Gauss 型求积公式是数值稳定的。因为所有 $A_k>0$,且 $\sum_{k=1}^n A_k = \int_a^b \rho(x)\,dx$,所以由系数舍入引起的误差可被控制。

5、高斯-勒让德(Gauss-Legendre)求积公式

区间取 $[-1,1]$,权函数 $\rho(x) \equiv 1$。对应的正交多项式为 Legendre 多项式:

$$ P_0(x)=1,\quad P_n(x)=\frac{1}{2^n n!}\frac{d^n}{dx^n}[(x^2-1)^n] \quad (n=1,2,\cdots) $$

Legendre 多项式在 $[-1,1]$ 上正交:

$$ \int_{-1}^1 P_m(x) P_n(x)\,dx = \begin{cases} 0, & m\ne n \$$4pt] \dfrac{2}{2n+1}, & m=n \end{cases} $$

因此,$n$ 次 Legendre 多项式 $P_n(x)$ 的 $n$ 个零点即为 Gauss 点。求积系数可表示为:

$$ A_k = \frac{2}{(1-x_k^2)[P_n'(x_k)]^2} \quad (k=1,2,\cdots,n) $$

推导如下:由求积系数公式 $A_k = \int_{-1}^1 \frac{P_n(x)}{(x-x_k)P_n'(x_k)} \, dx$(注意 $\omega_n(x)=P_n(x)$ 的首项系数为 $1$ 的倍数,这里 Legendre 多项式的首项系数为 $\frac{(2n)!}{2^n (n!)^2}$,但公式中的 $\omega_n$ 应为首项系数为 1 的多项式,即 $\omega_n(x)=\frac{2^n (n!)^2}{(2n)!}P_n(x)$。不过最终系数表达式可化为上述简洁形式,利用 Legendre 多项式的性质可以证明)。常用的是 Gauss-Legendre 求积公式:

$$ \int_{-1}^1 f(x)\,dx \approx \sum_{k=1}^n A_k f(x_k) $$

其中 $x_k$ 为 $P_n(x)$ 的零点,$A_k$ 由上式给出。

由一般余项公式,$\omega_n(x)$ 是首项系数为 1 的 $n$ 次多项式,它与 Legendre 多项式的关系为:

$$ \omega_n(x) = \frac{2^n (n!)^2}{(2n)!} P_n(x) $$

则:

$$ \int_{-1}^1 \omega_n^2(x)\,dx = \left[\frac{2^n (n!)^2}{(2n)!}\right]^2 \int_{-1}^1 P_n^2(x)\,dx = \left[\frac{2^n (n!)^2}{(2n)!}\right]^2 \cdot \frac{2}{2n+1} = \frac{2^{2n+1}(n!)^4}{(2n+1)[(2n)!]^2} $$

因此 Gauss-Legendre 求积公式的误差为:

$$ R(f) = \frac{f^{(2n)}(\xi)}{(2n)!} \cdot \frac{2^{2n+1}(n!)^4}{(2n+1)[(2n)!]^2} = \frac{2^{2n+1}(n!)^4}{(2n+1)[(2n)!]^3} f^{(2n)}(\xi), \quad \xi\in(-1,1) $$

对于一般区间 $[a,b]$,可通过线性变换 $x = \frac{a+b}{2} + \frac{b-a}{2}t$ 化为 $[-1,1]$ 上的积分:

$$ \int_a^b f(x)\,dx = \frac{b-a}{2}\int_{-1}^1 f\left(\frac{a+b}{2}+\frac{b-a}{2}t\right)dt \approx \frac{b-a}{2}\sum_{k=1}^n A_k f\left(\frac{a+b}{2}+\frac{b-a}{2}t_k\right) $$

其中 $t_k$ 为 $P_n(t)$ 的零点。

Gauss 型求积公式通过优化节点位置,在固定节点数下达到最高代数精确度($2n-1$),其节点正是正交多项式的根,求积系数为正值,保证了数值稳定性。误差估计表明其具有高阶收敛性,特别适用于高精度要求的积分计算。在实际应用中,Gauss-Legendre 公式最为常用,其他公式则针对不同的权函数和无限区间提供了有效工具。

作者 老官童鞋gogo 发表于 2026-06-16
本文标题 数值微分与数值积分
许可协议 本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

添加新评论

支持 Markdown 语法与 LaTeX 数学公式($...$ 包裹行内公式,$$...$$ 包裹行间公式)

搜索

按 Enter 搜索,按 Esc 关闭