一元函数高斯积分的积分区域为[-1,1],二元函数的高斯积分区域为
[-1,1] \times [-1,1],也就是一个边长为2的正方形区域,称为标准区域。
考虑二重积分
I=\int_{-1}^{1}\int_{-1}^{1}f(\xi, \eta)d\xi d\eta
利用累次积分和一元函数的高斯积分公式可以得到:
I=\int_{-1}^{1} \sum_{i=1}^n W_i f(\xi_i, \eta) d\eta
=\sum_{j=1}^n W_j [\sum_{i=1}^n W_i f(\xi_i, \eta_j)]
或者
I=\sum_{i=1}^n \sum_{j=1}^n W_i W_j f(\xi_i, \eta_j)
这就是二元函数的高斯积分公式。其中W表示积分点权重,n表示积分点数目。n随着被积函数阶次增加而增加。
实际应用中,积分区域大多是非标准区域。比如
这时就需要将非标准区域映射到标准区域,即 x = x(ξ, η), y = y(ξ, η)
x(\xi, \eta)=\sum_{k=1}^4 N_k(\xi, \eta)x_k
y(\xi, \eta)=\sum_{k=1}^4 N_k(\xi, \eta)y_k
其中
(x_k,y_k)是是xOy坐标系下四个顶点的坐标。
N_k(k=1,2,3,4)叫做形函数。
N_1(\xi, \eta)=\frac{1}{4}(1-\xi)(1-\eta)
N_2(\xi, \eta)=\frac{1}{4}(1+\xi)(1-\eta)
N_3(\xi, \eta)=\frac{1}{4}(1+\xi)(1+\eta)
N_4(\xi, \eta)=\frac{1}{4}(1-\xi)(1+\eta)
xOy坐标系下一个无限小矩形区域面积
dA = dx dy,而在坐标系
\xi \eta下的面积
dA_1 = d\xi d\etadxdy=|J(\xi, \eta)|d\xi d\eta
可以得到
\iint_{A}f(x, y)dx dy=\int_{-1}^{1}\int_{-1}^{1}f[x(\xi, \eta),y(\xi, \eta)]|J(\xi, \eta)|d\xi d\eta
=\sum_{i=1}^n \sum_{j=1}^n W_i W_j f[x(\xi_i, \eta_j),y(\xi_i, \eta_j)]|J(\xi_i, \eta_j)|
这里
J(\xi, \eta)=
\left[
\begin{matrix}
\frac{\partial x}{\partial \xi} & \frac{\partial y}{\partial \xi} \\
\frac{\partial x}{\partial \eta} & \frac{\partial y}{\partial \eta}
\end{matrix}
\right]
是雅可比矩阵。
dxdy=|J(\xi, \eta)|d\xi d\eta的证明见高数教材。
[算例]
利用高斯公式计算二重积分
\iint_{A}(x^2+y)dx dy
其中0<x<2,0<y<1/2x+2
四个顶点的坐标分别为(0,0),(2,0),(2,3),(0,2)
\begin{equation}\begin{split}
x(\xi, \eta)&=\sum_{k=1}^4 N_k(\xi, \eta)x_k \\
&=0+\frac{(1+\xi)(1-\eta)}{4}\times2+\frac{(1+\xi)(1+\eta)}{4}\times2+0\\
& =1+\xi
\end{split}\end{equation}
\begin{equation}\begin{split}
y(\xi, \eta)&=\sum_{k=1}^4 N_k(\xi, \eta)y_k\\
&=0+0+\frac{(1+\xi)(1+\eta)}{4}\times3+\frac{(1-\xi)(1+\eta)}{4}\times2\\& =\frac{(5+\xi)(1+\eta)}{4}
\end{split}\end{equation}
雅可比矩阵
J(\xi, \eta)=
\left[
\begin{matrix}
1 & \frac{1+\eta}{4} \\
0 & \frac{5+\xi}{4}
\end{matrix}
\right]
|J(\xi, \eta)|=\frac{5+\xi}{4}
采用4个积分点的高斯积分
\begin{equation}\begin{split}
I&=\sum_{i=1}^n \sum_{j=1}^n W_i W_j f[x(\xi_i, \eta_j),y(\xi_i, \eta_j)]|J(\xi_i, \eta_j)| \\
&=\sum_{i=1}^2 \sum_{j=1}^2 [(\frac{1+\xi_i}{2})^2+\frac{(5+\xi_i)(1+\eta_j)}{4}](\frac{5+\xi_i}{4})\\
& =\frac{1}{16}(6+3\xi_i+\xi_i^2+5\eta_j+\xi_i\eta_j)(5+\xi_i)
\end{split}\end{equation}
注意这里的
\xi_i,\eta_j是高斯积分点的坐标,
W_i=W_j=1。接下来用Python编程可得到结果。毕竟数值计算都要编程的。