微分方程数值解 第六章(3)
二维问题的矩形元
一、问题与变分形式
二维 Poisson 方程( Dirichlet 边界):
变分形式(虚功原理):
找 $u \in H_0^1(\Omega)$(满足边界条件的 Sobolev 空间 ),使
对任意 $v \in H_0^1(\Omega)$ 成立($\Delta$ 是 Laplace 算子,$\nabla$ 是梯度 )
二、Galerkin 离散(有限元方法)
有限元空间 $U_h$:
取 $U_h$ 为分片双线性函数空间(Lagrange 型,在矩形剖分单元上线性 ),满足 $u_h|_{\partial\Omega} = g_h$($g_h$ 是 $g$ 的边界插值 )
离散方程:
找 $u_h \in U_h$ 使
对任意 $v_h \in U_h$($v_h|_{\partial\Omega} = 0$ )成立,代入基函数展开得线性方程组
三、矩形剖分与基函数
区域剖分:
将 $\Omega$ 剖分为矩形单元 $R_{ij} = [x_i, x_{i+1}] \times [y_j, y_{j+1}]$ ,步长 $\Delta x = x_{i+1}-x_i$,$\Delta y = y_{j+1}-y_j$ 。
双线性基函数:
单元上基函数为 $1, x, y, xy$ 的线性组合(双线性插值 ),通过节点值 $u_{ij}, u_{i+1,j}, u_{i,j+1}, u_{i+1,j+1}$ 构造,满足分片双线性与 Kronecker delta 性质(节点处取 1,其余为 0 )
标准化与坐标变换
对矩形单元 $R_{ij} = [x_i, x_{i+\Delta x}] \times [y_j, y_{j+\Delta y}]$,通过仿射变换标准化到参考单元 $[0,1] \times [0,1]$:
双线性插值函数构造
设单元顶点值为 $u_{00}, u_{10}, u_{01}, u_{11}$(对应 $(\xi,\eta)=(0,0),(1,0),(0,1),(1,1)$ ),双线性插值函数 $p(\xi,\eta)$ 满足:
通过顶点插值条件
解得 Lagrange 插值多项式:
二维 Lagrange 基函数:
表示为Lagrange 基函数的乘积形式:
基函数为:
四、单元插值函数($ (x,y) \in R_{ij} $ )
给矩形单元排序(从左下至上依次记为 $R_{11},R_{12},\cdots,R_{MN}$)
五、整体双线性基函数
六、自由度与空间维数
若把 $u_h$ 在所有节点的函数值都当作自变量,节点数 $ (M+1) \times (N+1) $,故:
七、网格剖分与数据结构
一、网格剖分与标号规则
节点标号:
矩形区域剖分为 $M \times N$ 单元,节点总数 $K = (M+1)(N+1)$,按顺序标号 $1, 2, \dots, K$ 。
单元标号:
单元总数 $M \cdot N$,按顺序标号 $1, 2, \dots, M \cdot N$ ,每个单元对应 4 个顶点(左下→右下→右上→左上 )。
二、数据结构定义
节点数组(node):
存储节点坐标,维度 $K \times 2$ ,每行对应一个节点的 $(x,y)$ 坐标:
单元数组(elem):
存储单元顶点的节点标号,维度 $M \cdot N \times 4$ ,每行对应一个单元的 4 个顶点标号(按左下→右下→右上→左上顺序 ):
八、单元刚度矩阵积分
九、插值函数与导数(局部坐标 $ \xi, \eta $ )
单元内 $ u_h(x,y) $ 展开:
$ x $ 方向导数($ \displaystyle \frac{\partial \xi}{\partial x} = \frac{1}{\Delta x} $ ):
$v_h$ 同理
十、单元刚度矩阵计算($ x $ 方向示例)
$K_ey$ 同理
十一、整体单元刚度矩阵
$ K_{e}y $ 为 $ y $ 方向单元刚度矩阵,对称推导
十二、总刚度矩阵 $K$ 的组装
初始化:
总刚度矩阵 $K$ 维度为 $(M+1)(N+1) \times (M+1)(N+1)$,初始化为零矩阵:
单元循环组装:
遍历每个单元(标号 $k=1$ 到 $ne = M \cdot N$ ),计算单元刚度矩阵并叠加到总矩阵对应位置(通过节点标号索引 )
伪代码示意 :
十三、载荷向量的积分计算
对载荷项 $\displaystyle \int_{\Omega} f v_h \, dxdy$,在矩形单元 $R_{ij}$ 上通过双线性基函数展开,利用变量替换(标准化到参考单元 $[0,1] \times [0,1]$ ),将积分转化为:
$\Delta x, \Delta y$ 是单元步长,$v_j$ 是节点载荷系数
十四、最终变分形式
离散后的变分方程表示为:
其中,$A = K$ 是总刚度矩阵,$\mathbf{U}$ 是节点值向量,$\mathbf{V}$ 是检验函数向量,$\mathbf{F}$ 是载荷向量,体现有限元离散的线性方程组形式($K \mathbf{U} = \mathbf{F}$ )
十五、边界条件处理
节点分类:
边界节点 $ \text{bdnode} $(已知 $ U(\text{bdnode}) $ )、自由节点 $ \text{freenode} $(待求 $ U(\text{freenode}) $ )
变分约束:
检验函数 $ V(\text{bdnode}) = 0 $,自由节点 $ V(\text{freenode}) $ 任意,由此从整体系统 $ A U = F $ 中提取自由节点子系统:
子系统分解:
展开为自由节点与边界节点的矩阵块形式:
求解自由节点:
移项得自由节点的代数方程:
最终解为:
核心是有限元中Dirichlet 边界条件的离散处理方法,通过节点分类和矩阵分块,将已知边界值代入整体系统,求解自由节点未知量
三角元法
一、问题与变分形式
二维 Poisson 方程( Dirichlet 边界):
变分形式(虚功原理):
找 $u \in H_0^1(\Omega)$(满足边界条件的 Sobolev 空间 ),使
对任意 $v \in H_0^1(\Omega)$ 成立($\Delta$ 是 Laplace 算子,$\nabla$ 是梯度 )
二、三角元法的核心优势
三角形剖分可逼近任意复杂曲线边界(通过多边形域近似 $\Omega$ ),适配工程中不规则区域(如飞机翼型、地质构造 )的数值求解
三、三角剖分规则
将多边形域 $\Omega$ 剖分为有限个三角形单元 $\Delta_j$,需满足:
- 单元不重叠($\Delta_i^o \cap \Delta_j^o = \emptyset, i \neq j$ ,$^o$ 表示内部 )
- 无悬挂节点(三角形顶点不落在另一三角形的边上 )
进一步定义正则剖分(最小角有下界 )和拟一致剖分(单元尺寸均匀 ),保证有限元解的收敛性
四、Lagrange 型三角元空间
有限元空间 $U_h$ 定义为:
其中,$P^m(\Delta_j)$ 是三角形单元上的 $m$ 次 Lagrange 多项式,形式为:
$m$ 次多项式的系数个数为 $\frac{1}{2}(m+1)(m+2)$,需取对应数量的插值节点保证唯一性
五、单元与插值函数推导
对二维 Poisson 方程的三角剖分单元 $\Delta_{(123)}$(节点按逆时针排序为 $(x_1,y_1),(x_2,y_2),(x_3,y_3)$ ),构造线性插值函数 $p(x,y) = ax + by + c$ ,满足顶点插值条件 $p(x_i,y_i) = u_i$($i=1,2,3$ )
通过顶点条件建立线性方程组:
写成矩阵形式 $A \begin{bmatrix} a \ b \ c \end{bmatrix} = \begin{bmatrix} u_1 \ u_2 \ u_3 \end{bmatrix}$ ,其中 $A = \begin{bmatrix} x_1 & y_1 & 1 \ x_2 & y_2 & 1 \ x_3 & y_3 & 1 \end{bmatrix}$
解得系数:
因此,插值函数可表示为:
六、面积坐标(Lagrange 基函数)
定义面积坐标 $L_1,L_2,L_3$:
则插值函数简化为:
其中,$L_i(x,y)$ 是线性 Lagrange 基函数,满足 $L_i(x_j,y_j) = \delta_{ij}$(Kronecker delta ),且 $L_1 + L_2 + L_3 = 1$
七、几何意义(Cramer 法则)
通过 Cramer 法则计算 $L_i$,发现分母 $ \det(A^T) = \det(A) $ 与三角形面积相关:
其中
记 $(x_1,y_1)\rightarrow(x_2,y_2)$ 的向量为 $\vec{a}$,$(x_1,y_1)\rightarrow(x_3,y_3)$ 的向量为 $\vec{b}$,则
八、面积坐标与直角坐标的关系
九、单元插值函数
三角形单元上的线性插值函数表示为:
$u_i$ 是顶点 $i$ 的函数值,$L_i$ 是面积坐标基函数
十、全域基函数与自由度
通过 “单元拼接” 构造全域基函数 $\varphi_j(x,y)$(在节点 $P_j$ 处取 1,其他单元为 0 ),有限元空间 $U_h$ 的维度为节点总数 $nd$(自由度 )
十一、单元刚度矩阵
单元刚度矩阵 $K_e$ 由变分形式的积分推导:
十二、面积坐标的梯度
对面积坐标 $L_i(x,y)$,通过对坐标变换矩阵求导,得梯度分量:
$(i,j,k)$ 是三角形顶点的循环标号,$S$ 是三角形面积
性质:$\nabla L_i$ 是常向量(与位置无关 )
十三、刚度矩阵的积分
单元刚度矩阵的积分项(梯度内积)可简化为:
利用 $\nabla L_i$ 是常向量,积分转化为向量点乘与面积乘积
十四、单元载荷的积分
载荷项 $\int_{\Delta_j} f u_h \, dxdy$ 分解为基函数的线性组合,积分后表示为: