微分方程数值解 第六章(2)
一维一次元的收敛性与误差估计
一、误差的 $H^1$ 估计
Céa 引理:
$$
| u - u_h |1 \leq \beta \inf{v \in V_h} | u - v |_1
$$
应用到有限元空间 $U_h$
对变分问题的真解 $u$ 和有限元近似解 $u_h$,有:
$$
| u - u_h |1 \leq \beta \inf{v_h \in U_h} | u - v_h |_1
$$
$|\cdot|_1$ 是 $H^1$ 范数,$\beta$ 是与网格无关的常数
转化为逼近精度:
找 $U_h$ 中对 $u$ 的 “最佳逼近” 函数 $u_I$(如分片线性插值 ),则误差估计可表为:
$$
| u - u_h |_1 \leq \beta | u - u_I |_1
$$
插值误差分析:
设 $u \in C^2[a,b]$,考察 $|u-u_I|$,有
$$
\int_{a}^{b} (u’ - u_I’)^2 ,dx +\int_a^b(u-u_I)^2,dx
$$
$u_I(x_i)=u(x_i)$,$u_I(x)$ 在 $[x_{i-1},x_i]$ 上是线性函数
$(u-u_I)(x_i)=0$
由 Poincaré 不等式
$$
\int_{a}^{b} (u - u_I)^2 dx \leq C \int_{a}^{b} (u’ - u_I’)^2 dx
$$
故关键是 $\displaystyle \int_{a}^{b} (u’ - u_I’)^2 dx$ 的估计
因 $u_I$ 分段线性,可分段分析
在 $I_i=[x_{i-1},x_i]$ 上,令 $e(x) = u(x) - u_I(x)$ ,则
$$
e(x_{i-1})=e(x_i)=0
$$
由 Rolle 定理,$\exists \xi \in I_i,,s.t., e’(\xi)=0$
从而
$$
e’(x) = \int_\xi^x e’‘(t) dt = \int_\xi^x u’'(t) dt, \ x \in I_i
$$
$$
\vert e’(x) \vert \leq \left( \int_\xi^x \vert u’‘(t) \vert^2 dt \right)^\frac{1}{2} \cdot \left( \int_\xi^x 1^2 dx \right)^\frac{1}{2} \leq \sqrt{h_i} \left( \int_{x_{i-1}}^{x_i} \vert u’'(t) \vert^2 dt \right)^\frac{1}{2}
$$
$$
\int_{x_{i - 1}}^{x_i} |e’(x)|^2 dx \leq h_i^2 \int_{x_{i - 1}}^{x_i} |u’'(t)|^2 dt
$$
$$
\int_a^b (u - u_I)^2 dx \leq \sum_{i = 1}^n \int_{x_{i - 1}}^{x_i} |e’(x)|^2 dx \leq h^2 \int_a^b |u’'(x)|^2 dt
$$
因而由 Poincaré 不等式
$$
| u - u_h |_1 \leq C | u - u_I |1 \leq C \cdot h | u’’ |{L^2} \quad (H^1 \text{模估计,} O(h))
$$
二、误差的 $L^2$ 估计
$| u - u_h |_{L^2}^2$ 相关变分问题:
$$
\begin{cases} -z’’ = u - u_h \ z(a) = 0 \ z(b) = 0 \end{cases}
$$
对应变分等式
$$
\int_a^b z’ v’ ,dx = \int_a^b (u - u_h) v ,dx \quad \forall v \in H_E^1, ,v(a) = 0
$$
取 $v = u - u_h$ ,有
$$
\int_a^b z’ (u - u_h)’ ,dx = \int_a^b (u - u_h)^2 ,dx
$$
若用
$$
\begin{align}
| u - u_h |_{L^2}^2 &\leq C | z |_1, | u - u_h |_1\
&\leq C | z |_1 ,| u’ |_1
\end{align}
$$
注意到
$$
\int_a^b z’ (u-u_h)’ ,dx = \int_a^b (z’ - v_h) (u’-u_h’) ,dx \quad \forall v \in H_E^1
$$
选取 $v_h$ 为 $z$ 的分片线性插值函数,则
$$
\begin{align}
|u-u_h|^2 &\leq C| z-v_h |_1, | u - u_h |_1\
&\leq C\cdot h\cdot | z’’ |_1,\cdot h\cdot | u’’ |\
&\leq Ch^2| u - u_h |\cdot | u’’ |
\end{align}
$$
故
$$
|u-u_h|^2 \leq Ch^2|u’'| \rightarrow O(h^2)
$$
误差模总结
$H^1$ 模误差:$\sim O(h)$
$L^2$ 模误差:$\sim O(h^2)$
一维二次元
对于微分方程(非齐次边界):
$$
\begin{cases}
-u’’ + u = f, & a < x < b \
u(a) = \alpha, \ u’(b) = \beta
\end{cases}
$$
变分形式(虚功原理):
找 $u \in H_\alpha^1(a,b)$($u(a)=\alpha$ 的 Sobolev 空间 ),使
$$
\int_{a}^{b} u’v’ dx - \beta v(b) + \int_{a}^{b} uv dx = \int_{a}^{b} fv dx
$$
对任意 $v \in H_E^1(a,b)$($v(a)=0$ 的 Sobolev 空间 )成立
Galerkin 离散(二次元)
有限元空间 $U_h$:
取 $U_h$ 为分片二次多项式空间,节点包含单元端点 $x_{i-1}, x_i$ 与中点 $x_{i-\frac{1}{2}}$ ,满足 $u_h(a)=\alpha$
离散方程:
找 $u_h \in U_h$ 使
$$
\int_{a}^{b} u_h’v_h’ dx + \int_{a}^{b} u_h v_h dx - \int_{a}^{b} f v_h dx - \beta v_h(b) = 0
$$
对任意 $v_h \in U_h$($v_h(a)=0$ )成立,代入二次基函数展开得线性方程组
二次基函数构造(Lagrange 插值)
在单元 $[x_{i-1}, x_i]$ 上,取节点 $x_{i-1}, x_{i-\frac{1}{2}}, x_i$ ,构造二次 Lagrange 基函数 $y_1, y_2, y_3$ ,满足:
$$
y_j(x_{i-k}) = \delta_{jk} \quad (j,k=1,2,3)
$$
通过标准化($\displaystyle \xi = \frac{x - x_{i-1}}{h}$,$h = x_i - x_{i-1}$ ),基函数可表示为:
$$
\begin{cases}
N_0(\xi) = 2\left(\xi - \frac{1}{2}\right)(\xi - 1) \
N_{\frac{1}{2}}(\xi) = -4\xi\left(\xi - 1\right) \
N_1(\xi) = 2\xi\left(\xi - \frac{1}{2}\right)
\end{cases}
$$
在参考单元 $[0,1]$ 上,分别对应节点 $0, \frac{1}{2}, 1$ 的基函数
在 $x\in[x_{i-1},x_i]$ 时
$$
u_h(x)=u_{i-1}N_0(\xi)+u_{i-\frac{1}{2}}N_{\frac{1}{2}}(\xi)+u_iN_1(\xi)
$$
$$
u_h(x) =
\begin{cases}
u_0 N_0^1(\xi) + u_{\frac{1}{2}} N_{\frac{1}{2}}^1(\xi) + u_1 N_1^1(\xi), & [x_0, x_1] \
u_1 N_1^2(\xi) + u_{\frac{3}{2}} N_{\frac{3}{2}}^2(\xi) + u_2 N_2^2(\xi), & [x_1, x_2] \
\quad \quad \vdots \
u_{n-1} N_{n-1}^n(\xi) + u_{n-\frac{1}{2}} N_{n-\frac{1}{2}}^n(\xi) + u_n N_n^n(\xi), & [x_{n-1}, x_n]
\end{cases}
$$
$U_h$ 的基函数
$$
\varphi_i(x) =
\begin{cases}
N_i^i(\xi), & [x_{i-1}, x_i] \
N_i^{i+1}(\xi), & [x_i, x_{i+1}] \
0, & \text{其他}
\end{cases}
$$
$$
\varphi_0(x) =
\begin{cases}
N_0^1(\xi), & [x_0, x_1] \
0, & \text{其他}
\end{cases}
$$
$$
\varphi_{i+\frac{1}{2}}(x) =
\begin{cases}
N_{\frac{1}{2}}^{i+1}(\xi), & [x_i, x_{i+1}] \
0, & \text{其他}
\end{cases}
$$
$$
u_h(x) = \sum_{i=0}^{n-1} \left[ u_i \varphi_i + u_{i+\frac{1}{2}} \varphi_{i+\frac{1}{2}} \right] + u_n \varphi_n \quad \quad(2n+1维)
$$
$$
v_h(x) = \sum_{i=0}^{n-1} \left[ v_i \varphi_i + v_{i+\frac{1}{2}} \varphi_{i+\frac{1}{2}} \right] + v_n \varphi_n
$$
变分方程离散形式
$$
\int_a^b u_h’ v_h’ dx + \int_a^b u_h v_h dx - \int_a^b f v_h dx - \beta v_h(b) = 0
$$
在 $ [x_{i-1}, x_i] $ 上
$$
u_h = u_{i-1} N_0(\xi) + u_{i-\frac{1}{2}} N_{\frac{1}{2}}(\xi) + u_i N_1(\xi)
$$
其中 $\displaystyle \xi = \frac{x - x_{i-1}}{h_i} $($ h_i = x_i - x_{i-1} $ 为单元长度 )
单元 $[x_{i−1},x_i]$ 上的导数计算
$$
\begin{align}
\frac{du_h}{dx} &= \left( u_{i-1} \frac{dN_0}{d\xi} + u_{i-\frac{1}{2}} \frac{dN_{\frac{1}{2}}}{d\xi} + u_i \frac{dN_1}{d\xi} \right) \cdot \frac{d\xi}{dx} \
&= \frac{1}{h_i} \left( u_{i-1} \frac{dN_0}{d\xi} + \cdots \right)
\end{align}
$$
同理,$\displaystyle \frac{dv_h}{dx} $ 有类似形式,进而单元积分(以 $ \displaystyle \int_{I_i} u_h’ v_h’ dx $ 为例 ):
$$
\int_{I_i} u_h’ v_h’ dx = \int_{I_i} \left( u_{i-1} \frac{dN_0}{d\xi} + \cdots \right) \left( v_{i-1} \frac{dN_0}{d\xi} + \cdots \right) \frac{1}{h_i} dx
$$
变量替换 $ x = x_{i-1} + h_i \xi $($ \xi \in [0,1] $ )后:
$$
\begin{align}
\int_{I_i} u_h’ v_h’ dx &= \int_0^1 \left( u_{i-1} \frac{dN_0}{d\xi} + \cdots \right) \left( v_{i-1} \frac{dN_0}{d\xi} + \cdots \right) \frac{1}{h_i} \cdot h_i d\xi\
& =(v_{i - 1}, v_{i - \frac{1}{2}}, v_i) \begin{bmatrix}
\displaystyle \int_0^1 N_0’(\xi) N_0’(\xi) d\xi &\displaystyle \int_0^1 N_0’(\xi) N_{\frac{1}{2}}‘(\xi) d\xi & \displaystyle \int_0^1 N_0’(\xi) N_1’(\xi) d\xi \
\displaystyle \int_0^1 N_{\frac{1}{2}}‘(\xi) N_0’(\xi) d\xi & \cdots & \cdots \
\vdots & \vdots & \vdots
\end{bmatrix} \frac{1}{h_i} \begin{bmatrix} u_{i - 1} \ u_{i - \frac{1}{2}} \ u_i \end{bmatrix}\
& =(v_0, v_{\frac{1}{2}}, v_1, \cdots, v_n) \begin{bmatrix}
\ddots & \vdots & \vdots & \cdots & \vdots \
\cdots & \times & \times & \times & \cdots \
\cdots & \times & \times & \times & \cdots \
\vdots & \vdots & \vdots & \ddots & \vdots
\end{bmatrix} \begin{bmatrix} u_0 \ u_{\frac{1}{2}} \ u_1 \ \vdots \ u_n \end{bmatrix} \
&= V^T K^{(i)} U
\end{align}
$$
单元刚度矩阵 $ k_e $
$$
k_e = \begin{bmatrix}
\displaystyle \int_0^1 N_0’(\xi) N_0’(\xi) d\xi & \cdots & \cdots \
\vdots & \ddots & \vdots \
\cdots & \cdots &\displaystyle \int_0^1 N_m’(\xi) N_m’(\xi) d\xi
\end{bmatrix} \cdot \frac{1}{h_i} \quad
$$
整体刚度矩阵组装
$$
\int_a^b u_h’ v_h’ dx = V^T \sum_{i=1}^n K^{(i)} U = V^T K U
$$
一维三次元
在单元 $ [x_{i-1}, x_i] $ 上用 Hermite 插值构造三次多项式 $ u_h(x) $,满足 函数值 + 导数值插值条件
$$
\begin{align}
u_h(x_{i-1}) &= u_{i-1}, \quad u_h’(x_{i-1}) = u_{i-1}‘; \
u_h(x_i) &= u_i, \quad \quad u_h’(x_i) = u_i’
\end{align}
$$
$$
u_h(x) = u_{i-1} \varphi_0(x) + u_{i-1}’ \varphi_1(x) + u_i \varphi_2(x) + u_i’ \varphi_3(x)
$$
基函数条件(以 $ \varphi_0 $ 为例,其余类似 ):
$$
\begin{cases}
\varphi_0(x_{i-1}) = 1, & \varphi_0(x_i) = 0 \
\varphi_0’(x_{i-1}) = 0, & \varphi_0’(x_i) = 0
\end{cases}
$$
标准化
令 $\displaystyle \xi = \frac{x - x_{i-1}}{h_i} $($ h_i = x_i - x_{i-1} $ ),基函数转化为标准区间 $ \xi \in [0,1] $ 的 Hermite 基 $ N_0(\xi), N_1(\xi), N_2(\xi), N_3(\xi) $,满足:
$$
\begin{cases}
N_0(0)=1, , N_0(1)=0, , N_0’(0)=0, , N_0’(1)=0 \
N_1(0)=0, , N_1(1)=0, , N_1’(0)=1, , N_1’(1)=0 \
N_2(0)=0, , N_2(1)=1, , N_2’(0)=0, , N_2’(1)=0 \
N_3(0)=0, , N_3(1)=0, , N_3’(0)=0, , N_3’(1)=1
\end{cases}
$$
$$
u_h(x) = u_{i-1} N_0(\xi) + u_{i-1}’ N_1(\xi) \cdot h_i + u_i N_2(\xi) + u_i’ N_3(\xi) \cdot h_i
$$
对 $ x $ 求导(利用 $\displaystyle \frac{d\xi}{dx} = \frac{1}{h_i} $ ):
$$
\frac{du_h}{dx} = \left( u_{i-1} \frac{dN_0}{d\xi} + u_{i-1}’ \frac{dN_1}{d\xi} + u_i \frac{dN_2}{d\xi} + u_i’ \frac{dN_3}{d\xi} \right) \cdot \frac{1}{h_i}
$$
在 $ x = x_{i-1} $(即 $ \xi = 0 $ )处:
$$
\frac{du_h}{dx}(x_{i-1}) = \left( u_{i-1} N_0’(0) + u_{i-1}’ N_1’(0) + u_i N_2’(0) + u_i’ N_3’(0) \right) \cdot \frac{1}{h_i} = u_{i-1}’
$$
因 $ N_0’(0)=0, N_2’(0)=0, N_3’(0)=0 $,仅 $ N_1’(0)=1 $ 保留
基函数表达式
标准区间 $ \xi \in [0,1] $ 上的 Hermite 基:
$$
\begin{align*}
N_0(\xi) &= (1 - \xi)^2(2\xi + 1) \
N_1(\xi) &= \xi(1 - \xi)^2 \
N_2(\xi) &= \xi^2(-2\xi + 3) \
N_3(\xi) &= \xi^2(\xi - 1)
\end{align*}
$$
单元插值函数
在单元 $ [x_{i-1}, x_i] $ 上,三次插值函数 $ u_h(x) $ 满足函数值 + 导数值插值,形式为:
$$
u_h(x) = u_{i-1}N_0(\xi) + u_{i-1}’ h_i N_1(\xi) + u_i N_2(\xi) + u_i’ h_i N_3(\xi)
$$
$$
u_h(x) =
\begin{cases}
u_0 N_0^1(\xi) + u_{0}’ h_1 N_{1}^1(\xi) + u_1 N_2^1(\xi) +u_1’ h_1 N_3^1(\xi), & [x_0, x_1] \
u_1 N_0^2(\xi) + u_{1}’ h_2 N_{1}^2(\xi) + u_2 N_2^2(\xi) +u_2’ h_2 N_3^2(\xi), & [x_1, x_2] \
\quad \quad \vdots \
u_{n-1} N_{0}^n(\xi) + u_{n-1}’ h_n N_{1}^n(\xi) + u_n N_2^n(\xi) + u_n’ h_n N_3^n(\xi), & [x_{n-1}, x_n]
\end{cases}
$$
整体基函数定义
函数值基 $ \varphi_i^{(0)}(x) $:
$$
\varphi_i^{(0)}(x) =
\begin{cases}
N_2\left( \frac{x - x_{i-1}}{h_i} \right), & [x_{i-1}, x_i] \
N_0\left( \frac{x - x_i}{h_{i+1}} \right), & [x_i, x_{i+1}] \
0, & \text{其他}
\end{cases}
$$
导数值基 $ \varphi_i^{(1)}(x) $:
$$
\varphi_i^{(1)}(x) =
\begin{cases}
h_i N_3\left( \frac{x - x_{i-1}}{h_i} \right), & [x_{i-1}, x_i] \
h_{i+1} N_1\left( \frac{x - x_i}{h_{i+1}} \right), & [x_i, x_{i+1}] \
0, & \text{其他}
\end{cases}
$$
基函数支集特性
边界基 $ \varphi_0^{(0)},\varphi_0^{(1)},\varphi_n^{(0)},\varphi_n^{(1)} $ 的支集(非零区间)仅含一个子区间,内部基支集含两个子区间
空间与基函数
若把 $ u’(a)=u_0 ,,u’(b)=u_n’$ 当作未知量,有限元空间 $ U_h $ 维数 $ 2n + 2 $,基函数为 $ \varphi_i^{(0)}(x) $(函数值基 )、$ \varphi_i^{(1)}(x) $(导数值基 ),展开式
$$
u_h(x) = \sum_{i=0}^n [u_i \varphi_i^{(0)} + u_i’ \varphi_i^{(1)}]
$$
Galerkin 方法离散
变分方程(含 $ u_h(a)=\alpha $ 边界条件 ):
$$
\int_a^b u_h’ v_h’ dx + \int_a^b u_h v_h dx - \int_a^b f v_h dx - \beta v_h(b) = 0, \quad \forall v_h \in U_h, v_h(a)=0
$$
单元导数变换($ x \in [x_{i-1}, x_i] $ )
局部坐标 $\displaystyle \xi = \frac{x - x_{i-1}}{h_i} $($ h_i = x_i - x_{i-1} $ ),则:
$$
\frac{du_h}{dx} = \frac{du_h}{d\xi} \cdot \frac{d\xi}{dx} = \frac{1}{h_i} \left( u_{i-1} N_0’(\xi) + u_{i-1}’ h_i N_1’(\xi) + u_i N_2’(\xi) + u_i’ h_i N_3’(\xi) \right)
$$
同理,$\displaystyle \frac{dv_h}{dx} $ 有对称形式
单元积分与刚度矩阵
单元 $ [x_{i-1}, x_i] $ 上的导数积分(以 $ \displaystyle \int_{I_i} u_h’ v_h’ dx $ 为例 ):
$$
\int_{I_i} u_h’ v_h’ dx = \int_0^1 \left( u_{i-1} N_0’(\xi) + \cdots \right) \left( v_{i-1} N_0’(\xi) + \cdots \right) \frac{1}{h_i} \cdot h_i d\xi
$$
对应单元刚度矩阵 $ K_e $ 与向量内积形式:
$$
\int_{I_i} u_h’ v_h’ dx = (v_{i-1}, v_{i-1}‘, v_i, v_i’) K_e \begin{bmatrix} u_{i-1} \ u_{i-1}’ \ u_i \ u_i’ \end{bmatrix}
$$
单元刚度矩阵
$$
K_e = \begin{bmatrix}
\displaystyle \int_0^1 N_0’(\xi) N_0’(\xi) d\xi &\displaystyle \int_0^1 N_0’(\xi) N_1’(\xi) d\xi & \times & \times \
\vdots & \ddots & \vdots & \vdots \
\times & \times & \times & \times
\end{bmatrix} \cdot \frac{1}{h_i}
$$
单元质量矩阵与内积
$$
\int_{I_i} u_h v_h dx = (v_{i-1}, \cdots, v_i’) M_e \begin{bmatrix} u_{i-1} \ \vdots \ u_i’ \end{bmatrix}
$$
单元载荷积分与近似
$$
\int_{I_i} f v_h dx = \int_0^1 f(x_{i-1} + h_i \xi) \left( v_{i-1} N_0(\xi) + \cdots + v_i’ N_3(\xi) \right) h_i d\xi
$$
数值积分近似:
$$
\begin{align}
\int_{I_i} f v_h dx &\approx (v_{i-1}, \cdots, v_i’) \begin{bmatrix}
\frac{1}{6}f(x_{i-1}) + \frac{2}{3}f(x_{i-\frac{1}{2}} ) N_0\left(\frac{1}{2}\right) \
\vdots \
\frac{2}{3}f(x_{i-1} )N_3\left(\frac{1}{2}\right)+\frac{1}{6}f(x_i) N_3(1) h_i
\end{bmatrix}\
&=(v_{i-1}, \cdots, v_i’) F_e
\end{align}
$$
整体离散系统
最终组装得代数方程:
$$
V^T A U = V^T F + V^T \begin{bmatrix} 0 \ \vdots \ \beta \0 \end{bmatrix}, \quad A = K + M
$$
$ K $ 整体刚度矩阵,$ M $ 整体质量矩阵,$ F $ 整体载荷向量
边界条件与代数系统
已知 $ u(a) = u_0 = \alpha $,约束 $ v_0 = 0, v_0’ = 0 $,整体系统降维:
$$
A(2:\text{end}, 2:\text{end}) , U(2:\text{end}) = F(2:\text{end}) - A(2:\text{end}, 1) , \alpha+\begin{bmatrix} 0 \ \vdots \ \beta \0 \end{bmatrix}
$$
$ U = (u_0, u_0’, \cdots, u_n, u_n’) $ 为未知向量
误差阶
-
一次有限元:$ | u - u_h |_1 = O(h) $
-
二次有限元:$ | u - u_h |_1 = O(h^2) $
-
三次 Hermite 有限元:$ | u - u_h |_1 = O(h^3) $
误差阶拟合
设误差 $ | e_h | \approx c h^\alpha $,取对数:
$$
\log | e_h | \approx \alpha \log h + \log c
$$
用多组 $ (h_i, | e_{h_i} |) $ 拟合 $ (\log h_i, \log | e_{h_i} |) $,线性回归 $ y = rx $