数值积分

数值积分的定义

张瑞
中国科学技术大学数学科学学院

数值积分

定义 1.
$\omega_i$, $i=0,1,\cdots,n$与函数$f(x)$无关,则称

\[I_n(f)=\sum_{i=0}^n \omega_i f(x_i) \]

数值积分公式$\omega_i$称为积分系数

例 1. 如下公式,均为数值积分公式

  • $\displaystyle\int_a^b f(x)dx\approx (b-a)f(a)$
  • $\displaystyle\int_a^b f(x)dx\approx (b-a)f(\frac{a+b}2)$
  • $\displaystyle\int_a^b f(x)dx\approx \frac{b-a}2f(a)$

定义 2.
对于数值积分公式$I_n(f)$,若有

\[I_n(x^j)=\int_a^b x^jdx, j=0,1,2,\cdots,k \]

$I_n(x^{k+1})\neq\int_a^b x^{k+1}dx$,则称数值积分公式具有$k$代数精度

  • 显然,具有$k$阶代数精度的数值积分公式,对于任意次数不高于$k$次的多项式,积分计算没有误差。
  • 如果一个数值积分公式,对于任意次数不高于$k$次的多项式,误差为0,则该数值积分公式具有至少$k$阶代数精度
  • 如果一个数值积分公式,对于一个$k$次多项式,误差不为0,则该数值积分公式至多为$k-1$阶代数精度

例 2. 计算如下数值积分公式的代数精度

  1. $\int_a^b f(x)dx\approx (b-a)f(a)$
  2. $\int_a^b f(x)dx\approx (b-a)f(\frac{a+b}2)$
  3. $\int_a^b f(x)dx\approx \frac{b-a}2f(a)$

. 按照代数精度的定义,逐步验证$x^i$的积分。

$x^j$ 积分值 公式1 公式2 公式3
$x^0$ $(b-a)$ $(b-a)$ $(b-a)$ $\frac{b-a}2$
$x^1$ $\frac{b^2-a^2}2$ $(b-a)a$ $(b-a)\frac{b+a}2$
$x^2$ $\frac{b^3-a^3}3$ $(b-a)(\frac{b+a}2)^2$

. 代数精度给出了评判一个数值积分公式优劣的一个标准

例 3. 确定系数$\omega_i$,使得求积公式

\[\int_a^bf(x)dx\approx \omega_0 f(a)+\omega_1 f(\frac{a+b}2)+\omega_2f(b) \]

有尽可能高的代数精度,并求这个代数精度。

. $f(x)$$1$, $x$, $x^2$,代入数值积分公式使之精确成立,则可得方程组

\[\begin{cases} \omega_0+\omega_1+\omega_2&=b-a \\ a \omega_0 +\frac{a+b}2 \omega_1+b \omega_2&=\frac{b^2-a^2}2 \\ a^2 \omega_0+(\frac{a+b}2)^2 \omega_1+b^2 \omega_2&=\frac{b^3-a^3}3 \\ \end{cases} \]

得到了一个关于$\omega_i$的线性方程组。

\[\begin{pmatrix} 1 & 1 & 1 \\ a & \frac{a+b}2 & b \\ a^2 & (\frac{a+b}2)^2 & b^2 \end{pmatrix} \begin{pmatrix} \omega_0 \\ \omega_1 \\ \omega_2 \end{pmatrix} =\begin{pmatrix} b-a \\ \frac{b^2-a^2}2 \\ \frac{b^3-a^3}3 \end{pmatrix} \]

可解得

\[\omega_1=\frac{b-a}6, \omega_2=\frac{4(b-a)}6 , \omega_3=\frac{b-a}6 \]


或者,取$f(x)$$1$, $x-\frac{a+b}2$, $(x-\frac{a+b}2)^2$,则可以得到线性方程组

\[\begin{pmatrix} 1 & 1 & 1 \\ -\frac{b-a}2 & 0 & \frac{b-a}2 \\ (\frac{b-a}2)^2 & 0 & (\frac{b-a}2)^2 \end{pmatrix} \begin{pmatrix} \omega_0 \\ \omega_1 \\ \omega_2 \end{pmatrix} =\begin{pmatrix} b-a \\ 0 \\ \frac{(b-a)^3}{12} \end{pmatrix} \]

容易验证,对于$(x-\frac{a+b}2)^3$,数值积分为0,积分值也为0。对于$(x-\frac{a+b}2)^4$,数值积分公式有误差。

插值多项式的积分

节点$x_i$上的插值多项式为$L_n(x)$,则它的积分也可以作为函数积分的近似

\[\int_a^b f(x)dx=\int_a^bL_n(x)dx+\int_a^b\frac{f^{(n+1)}(\xi)}{(n+1)!}w_n(x)dx \]

这样,得到了数值积分公式为

\[\begin{aligned} I_n(f)&=\int_a^bL_n(x)dx =\int_a^b\sum_{i=0}^nl_i(x)f(x_i)dx \\ &=\sum_{i=0}^n\int_a^bl_i(x)dxf(x_i) \end{aligned} \]

并且,误差为$\displaystyle\int_a^b\frac{f^{(n+1)}(\xi)}{(n+1)!}w_n(x)dx$

当节点$x_i$,积分区间$[a,b]$给定后,$\displaystyle\int_a^bl_i(x)dx$就是一个与原函数$f(x)$无关的量。

  • $\displaystyle a_i=\int_a^bl_i(x)dx$时,得到的数值积分公式就是插值多项式的积分。
  • 由误差表达式知,这个数值积分公式至少具有$n$阶代数精度。

若公式$I_n(f)=\displaystyle\sum_{i=0}^na_if(x_i)$具有至少$n$阶代数精度,则有

\[\begin{aligned} \omega_0(x_0)^0+\omega_1(x_1)^0+\cdots+\omega_n(x_n)^0&=\int_a^bx^0dx=(b-a) \\ \omega_0(x_0)^1+\omega_1(x_1)^1+\cdots+\omega_n(x_n)^1&=\int_a^bx^1dx=\frac{b^2-a^2}2 \\ \omega_0(x_0)^2+\omega_1(x_1)^2+\cdots+\omega_n(x_n)^2&=\int_a^bx^2dx \\ \cdots \\ \omega_0(x_0)^n+\omega_1(x_1)^n+\cdots+\omega_n(x_n)^n&=\int_a^bx^ndx \\ \end{aligned} \]

由Vandermonde行列式的特性,此时系数$a_i$存在且唯一。

这样,有如下结论

积分系数取为相应Lagrange插值基函数的积分的数值积分公式具有最高阶的代数精度。

Newton-Cotes 积分

在等距节点上得到的数值积分公式称为Newton-Cotes积分

函数$f(x)$$[a,b]$上积分,若有等距节点

\[x_i=a+ih, h=\frac{b-a}{n}, i=0,1,\cdots,n \]

则节点$x_k$对应的积分系数为

\[\omega_k =\int_a^b \frac{(x-x_0)\cdots(x-x_{k-1})(x-x_{k+1})\cdots(x-x_n)}{(x_k-x_0)\cdots(x_k-x_{k-1})(x_k-x_{k+1})\cdots(x_k-x_n)}dx \]

作变量代换$x=a+th$

则有

\[\begin{split} \omega_k=&\frac{(-1)^{n-k}h}{k!(n-k)!} \\ &\int_0^n t(t-1)\cdots(t-(k-1))(t-(k+1))\cdots(t-n)dt \end{split} \]

注意到$nh=(b-a)$,记

\[\begin{aligned} C_k^{(n)}=\frac{(-1)^{n-k}}{n\cdot k!(n-k)!}\int_0^n & t(t-1)\cdots(t-(k-1))\\ &(t-(k+1))\cdots(t-n)dt \end{aligned} \]

则积分系数可以表达为

\[\omega_k=(b-a)C_k^{(n)} \]

定理 1.
$C^{(n)}_k$是一个只与$n$$k$相关的数,具有如下特点

(1) $\displaystyle \sum_{k=0}^nC^{(n)}_k=1$

(2) $C^{(n)}_k=C^{(n)}_{n-k}$,即有对称性

n=1时

\[\begin{aligned} C^{(1)}_0&=\frac{(-1)^1}{1\cdot 0!1!}\int_0^1t-1dt=\frac12 \\ C^{(1)}_1&=\frac{(-1)^0}{1\cdot 1!0!}\int_0^1tdt=\frac12 \end{aligned} \]

可以得到梯形公式(trapezoid formula)

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

例 4. 分析梯形公式的误差

. 数值积分的误差为插值多项式误差的积分,则有

\[R=\int_a^b\frac{f''(\xi)}{2!}(x-a)(x-b)dx \]

注意到$(x-a)(x-b)$在区间$[a,b]$内不变号,由积分中值定理

\[\begin{aligned} R&=\frac{f''(\eta)}{2!}\int_a^b(x-a)(x-b)dx \\ &=\frac{f''(\eta)}{2!}\frac{-1}6(b-a)^3 \\ &=-\frac{f''(\eta)}{12}(b-a)^3 , \xi\in(a,b) \end{aligned} \]

. 梯形公式是由1次多项式的积分得到,具有至少1阶代数精度。这可以由误差表达式中看出。

也可以用Taylor展开来分析误差。

$c=\frac{a+b}2$$h=\frac{b-a}2$$t=x-c$,则有

\[f(x)=f(c)+f(c)t+\frac{f''(c)}{2!}t^2+\frac{f'''(c)}{3!}t^3+\cdots+\frac{f^{(m)}(\xi)}{m!}t^m \]

则,所有奇数阶的积分为0,取$m$为偶数,

\[\begin{aligned} \int_a^bf(x)=&(b-a)f(c)+\int_a^b\frac{f''(c)}{2!}t^2dx+\int_a^b\frac{f^{(4)}(c)}{4!}t^4dx \\ &+\cdots+\int_a^b\frac{f^{(m)}(\xi)}{m!}t^mdx \\ =&(b-a)f(c)+\frac{f''(c)}{2!}\frac23h^3+\frac{f^{(4)}(c)}{4!}\frac25h^5 \\ &+\cdots+\int_a^b\frac{f^{(m)}(\xi)}{m!}t^mdx \end{aligned} \]
\[f(a)=f(c)-f'(c)h+\frac{f''(c)}{2!}h^2-\frac{f'''(c)}{3!}h^3+\cdots+\frac{f^{(m)}(\xi_1)}{m!}(-h)^m \]
\[f(b)=f(c)+f'(c)h+\frac{f''(c)}{2!}h^2+\frac{f'''(c)}{3!}h^3+\cdots+\frac{f^{(m)}(\xi_2)}{m!}h^m \]

则,取$m$为偶数,

\[\begin{aligned} \frac{b-a}2(f(a)+f(b))=&(b-a)f(c)+2h\frac{f''(c)}{2!}h^2+2h\frac{f^{(4)}(c)}{4!}h^4\\ &+\cdots+h\frac{f^{(m)}(\xi_1)+f^{(m)}(\xi_2)}{m!}h^m \end{aligned} \]

可以得到误差为

\[R=\frac{f''(c)}{2!}2h^3(\frac13-1)+\frac{f''(c)}{4!}2h^3(\frac15-1)+\cdots \]

n=2时

\[\begin{aligned} C^{(2)}_0&=\frac{(-1)^2}{2\cdot 0!2!}\int_0^2(t-1)(t-2)dt=\frac16 \\ C^{(2)}_1&=\frac{(-1)^1}{2\cdot 1!1!}\int_0^2t(t-2)dt=\frac46 \\ C^{(2)}_2&=\frac{(-1)^0}{2\cdot 2!0!}\int_0^2t(t-1)dt=\frac16 \\ \end{aligned} \]

可以得到Simpson公式

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

例 5. Simpson公式的误差?

Simpson公式是由2次多项式的积分得到,具有至少2阶代数精度。 对于$x^3$,它的Simpson公式计算结果为

\[\frac{b-a}{6}(a^3+4(\frac{a+b}{2})^3+(b)^3)=\frac{b^4-a^4}{4} \]

而对于$x^4$,Simpson公式计算结果有误差。因此,Simpson公式具有3阶代数精度。

  • 为了得到更好的结果,需要用3次多项式来分析误差。

$I(f)$为函数$f(x)$的积分值, $S(f)$为Simpson公式计算的值,则误差

\[\begin{aligned} R&=I(f)-S(f) \\ &=I(f)-I(P_3)+I(P_3)-S(f) \\ &=I(f)-I(P_3)+S(P_3)-S(f) \\ \end{aligned} \]

$P_3$是个3次多项式,且是函数$f(x)$在点$a$, $\frac{a+b}2$, $b$上的插值时,进一步有

\[R=I(f)-I(P_3) \]

显然这样的3次多项式有无穷多个,找一个好用的。增加中点的导数条件$f'(\frac{a+b}2)$,则有

\[R=I(f-P_3)=\int_a^b\frac{f^{(4)}(\xi)}{4!}(x-a)(x-\frac{a+b}2)^2(x-b)dx \]

由积分中值定理,有

\[\begin{aligned} R&=\frac{f^{(4)}(\eta)}{4!}\int_a^b(x-a)(x-\frac{a+b}2)^2(x-b)dx \\ &=-\frac{(b-a)^5}{2880}f^{(4)}(\eta) \end{aligned} \]

n=4时,可以得到Boole公式

\[ \frac{b-a}{90}(7f(a)+32f(x_1)+12f(x_2)+32f(x_3)+7f(b)) \]

其中$x_i=a+i\frac{b-a}4, i=1,2,3$

. Boole公式具有5阶代数精度。它的误差是$-\frac{(b-a)^7}{1935360}f^{(6)}(\xi)$

定理 2.
对于$n\leq7$,所有的系数$C^{(n)}_k$都是正的。这些Newton-Cotes积分格式都是稳定的。

证明. 假定每个节点带有误差$\delta_k$$k=0,1,\cdots,n$,则有

\[\begin{aligned} \epsilon=&I_n(\tilde f)-I_n(f) \\ =&(b-a)\sum_{k=0}^nC^{(n)}_k(f(x_k)+\delta_k)-(b-a)\sum_{k=0}^nC^{(n)}_k(f(x_k)) \end{aligned} \]

$\delta=\max|\delta_k|$,则有

\[\begin{aligned} |\epsilon|=&\left|(b-a)\sum_{k=0}^nC^{(n)}_k\delta_k\right| \\ \leq&(b-a)\sum_{k=0}^n\left|C^{(n)}_k\delta_k\right| \\ =&(b-a)\sum_{k=0}^n C^{(n)}_k\left|\delta_k\right| \\ \leq&(b-a)\delta\sum_{k=0}^n C^{(n)}_k = (b-a)\delta \end{aligned} \]

即,格式是稳定的。

定理 3.
$n$为偶数时,Newton-Cote公式至少有$n+1$阶代数精度

证明. 由数值积分公式的误差表达式

\[R_n=\frac{1}{(n+1)!}\int_a^b f^{(n+1)}(\xi)\omega_n(x)dx \]

其中

\[\begin{aligned} \omega_n(x)=(x-x_0)(x-x_1)\cdots(x-x_n) \\ x_i=a+i h, h=\frac{b-a}n, i=0,1,2,\cdots,n \end{aligned} \]

做变量代换$x=a+th$,则有

\[R_n=\frac{h^{n+2}}{(n+1)!}\int_0^n f^{(n+1)}(\xi)\prod_{j=0}^n(t-j)dt \]

显然,当$f(x)$$n$次多项式时,误差为$0$。当$f(x)=x^{n+1}$时,$f^{(n+1)}(\xi)=(n+1)!$,则

\[R_n=h^{n+2}\int_0^nt(t-1)\cdots(t-n)dt \]

$n$为偶数时,令$t=u+\frac{n}2$,则

\[\begin{aligned} R_n=h^{n+2}\int_{-\frac{n}2}^{\frac{n}2} & (u+\frac{n}2)(u+\frac{n}2-1)\cdots(u+1) \\ &u(u-1)\cdots(u-\frac{n}2+1)(u-\frac{n}2)du \\ =h^{n+2}\int_{-\frac{n}2}^{\frac{n}2} & u(u^2-1)(u^2-2^2)\cdots(u^2-\frac{n^2}4)du \end{aligned} \]

注意到被积函数是奇函数,且积分区间关于$0$对称,则$R_n=0$

定理 4.
Newton-Cotes积分公式的误差为

(1)$n$为奇数时,$f\in C^{n+1}[a,b]$,有

\[R_n(f)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\int_a^bw(x)dx \]

(2)$n$为偶数时,$f\in C^{n+2}[a,b]$,有

\[R_n(f)=\frac{f^{(n+2)}(\xi)}{(n+2)!}\int_a^bxw(x)dx \]

目录

本节读完

例 6.

[#ex9-1-0].