有限元简述(1):逼近向量与伽辽金法

简述有限元:逼近向量
简述有限元:逼近向量

有限元 博大精深, 开设本专题意在督促自己学习, 只能讲述一些最简单的有限元知识. 本主题将注重数学推导和有关程序实现(Matlab 为主, Python 为辅), 配以适当图示, 尽量做到不晦涩, 强调趣味性易读性.

有限元主要用来解(偏)微分方程, 但实际某些思想在逼近向量或者函数时, 就存在了, 比如本节介绍的正交性

逼近向量

关键词: 正交性

逼近二维向量

Approximation of planar vectors

假设 xyxy 平面有向量 f=[3,5]f=[3, 5], 在向量 [2,1][2, 1] 方向上, 寻找向量 uu 逼近 ff

一维向量最佳逼近二维向量
一维向量最佳逼近二维向量

ψ0=[2,1]\psi_0=[2, 1], 则有 xyxy 平面的子空间

V=span{ψ0}.V={\rm span} \{\psi_0 \}.

使得 u=c0ψ0Vu = c_0 \psi_0 \in V, 并且 ψ0\psi_0VV 的基.

e=ufe=u-f, 并且定义范数

e=(e,e)12.\lVert e \rVert = (e, e)^{\frac{1}{2}}.

则原问题转化为: 寻找 c0c_0, 使得 e\lVert e \rVert 最小.

这里实际上指定在向量二范数下的逼近

最小二乘法

The least squares method

定义函数

E(c0)=(e,e)=(c0ψ0f,c0ψ0f)=c02(ψ0,ψ0)2c0(ψ0,f)+(f,f). \begin{align*} E(c_0) &= (e, e) = (c_0\psi_0-f, c_0\psi_0-f) \\\\[3pt] &= c_0^2(\psi_0, \psi_0) - 2c_0(\psi_0, f) + (f, f). \end{align*}

Ec0=0\frac{\partial E }{\partial c_0} = 0 时, EE 取极值, 即

\begin{equation} \frac{\partial E}{\partial c_0} = 2c_0(\psi_0, \psi_0)-2(\psi_0, f)=0. \label{eq:eq1} \end{equation}

所以,

c0=(ψ0,f)(ψ0,ψ0).c_0=\frac{(\psi_0, f)}{(\psi_0, \psi_0)}.

改写式 (\ref{eq:eq1}), 得到,

(fc0ψ0,ψ0)=(fu,ψ0)=0. (f-c_0\psi_0, \psi_0)=(f-u,\psi_0)=0.

即所谓的 正交性

(e,ψ0)=0. (e, \psi_0)=0.

伽辽金方法

Galerkin method

几何上看, 从第一张图中, 很容易得到: 当向量 ee 垂直于 VV 中任意向量时, ee 的二范数最小, 用数学语言描述如下:

对任意 v=s,ψ0Vv=s, \psi_0\in V, 满足

(e,sψ0)=(c0ψ0v,sψ0)=c0s(ψ0,ψ0)s(v,ψ0)=s(v,ψ0)(ψ0,ψ0)(ψ0,ψ0)s(v,ψ0)=0 \begin{align*} (e, s\psi_0) &=(c_0\psi_0-v, s\psi_0) \\\\[3pt] &= c_0s(\psi_0, \psi_0)-s(v, \psi_0) \\\\[3pt] &= s\frac{(v, \psi_0)}{(\psi_0, \psi_0)}(\psi_0, \psi_0)-s(v,\psi_0)\\\\[3pt] &=0 \end{align*}

更进一步地

\begin{equation} (e, v) = 0,\quad \forall v \in V. \label{eq:eq2} \end{equation}

式 (\ref{eq:eq1}) 和式 (\ref{eq:eq2}) 本质上是一样的.

补充

从线性代数的角度看, 是这样的 ψ0=[2,1],f=[3,5]\psi_0=[2, 1], f=[3, 5]

ψ0Tc0=fT.\psi_0^{\rm T} c_0 = f^{\rm T}.

上式显然无解, 所以, 左右同乘 ψ0\psi_0

ψ0ψ0Tc0=ψ0fT. \psi_0\psi_0^{\rm T}c_0 = \psi_0f^{\rm T}.

所以

c0=ψ0fTψ0ψ0T=(ψ0,f)(ψ0,ψ0). c_0 = \frac{\psi_0f^{\rm T}}{\psi_0\psi_0^{\rm T}} =\frac{(\psi_0, f)}{(\psi_0, \psi_0)}.

逼近一般向量

二维是容易比较直观的, 但当维数增加时, 尤其 dim4\dim \geq 4, 一般人类是无法想象的 😂

假设 ff 是任意 N+1N+1 维向量, 我们在空间

V=span{ψ0,,ψN}, V = {\rm span}\{ \psi_0, \cdots, \psi_N \},

中寻找 uu 逼近 ff. 假设 ψ0,,ψN\psi_0, \cdots, \psi_N 线性无关, 即 VV 的维数是 N+1N+1. 那么, 对于任意 uVu \in V 可以被写成以下线性组合

u=j=0Ncjψj,cjR. u = \sum_{j=0}^N c_j\psi_j, \quad c_j \in \mathbb{R}.

最小二乘法

The least squares method

现在确定 uu 的系数 c0,,cNc_0, \cdots, c_N 使得距 vv 的距离(误差) e=ufe=u-f 最小. 定义函数

E(c0,,cN)=(e,e)=(j=0Ncjψjf,j=0Ncjψjf)=p=0Nq=0Ncpcq(ψp,ψq)2j=0Ncj(ψj,f)+(f,f).\labeleq:eq3 \begin{equation} \begin{aligned} E(c_0, \cdots, c_N) &= (e, e) = ( \sum_{j=0}^N c_j\psi_j-f , \sum_{j=0}^N c_j\psi_j-f) \\\\ &= \sum_{p=0}^N\sum_{q=0}^N c_pc_q(\psi_p, \psi_q) - 2\sum_{j=0}^Nc_j(\psi_j, f) + (f, f). \end{aligned} \label{eq:eq3} \end{equation}

当系函数满足

\begin{equation} \frac{\partial E}{\partial c_i} = 0, \quad i = 0,\cdots, N. \label{eq:eq4} \end{equation}

接下来是重点

  • 第一步

式 (\ref{eq:eq3}) 的第 2 项对 cic_i 求导

ci(2j=0Ncj(ψj,f))=2c(ψi,f) \frac{\partial}{\partial c_i}(-2\sum_{j=0}^Nc_j(\psi_j, f))=-2c(\psi_i, f)
  • 第二步

式 (\ref{eq:eq3}) 的第 1 项对 cic_i 求导

因为,

cicpcq={0,piqicq,p=iqicp,piq=i2ci,p=q=i. \frac{\partial}{\partial c_i} c_pc_q= \begin{cases} 0, \quad & p \neq i \wedge q \neq i\\\\ c_q, \quad & p = i \wedge q \neq i\\\\ c_p, \quad & p \neq i \wedge q =i \\\\ 2c_i, \quad & p=q=i. \end{cases}

所以,

\begin{multline*} \frac{\partial}{\partial c_i}\sum_{p=0}^N\sum_{q=0}^Nc_pc_q(\psi_p, \psi_q) =\\\\ \sum_{p=0,p\neq i}^Nc_p(\psi_p, \psi_i) + \sum_{q=0,q\neq i}^Nc_q(\psi_q, \psi_i) + 2c_i(\psi_i, \psi_i). \end{multline*}

合并前两项至第三项, 即

cip=0Nq=0Ncpcq(ψp,ψq)=2j=0Nci(ψj,ψi). \frac{\partial}{\partial c_i}\sum_{p=0}^N\sum_{q=0}^Nc_pc_q(\psi_p, \psi_q) = 2\sum_{j=0}^Nc_i(\psi_j, \psi_i).

结合 (\ref{eq:eq4}), 得到 线性方程组:

\begin{equation} \sum*{j_0}^NA*{i, j}c_j = b_i, \quad i = 0, \cdots, N. \end{equation}

其中

Ai,j=(ψj,ψi)=(ψi,ψj)=Aj,i, A_{i, j} = (\psi_j, \psi_i) = (\psi_i, \psi_j) = A_{j, i}, bi=(ψi,f). b_i = (\psi_i, f).

伽辽金方法

Galerkin method

e=ufe=u-f, 寻找 uu 对于任意的 v=i=0NciψiVv = \sum_{i=0}^N c_i\psi_i \in V, 满足

(e,i=0Nciψi)=0. (e, \sum_{i=0}^N c_i\psi_i) = 0.

上式可写成

i=0Nci(e,ψi)=0. \sum_{i=0}^Nc_i(e, \psi_i) = 0.

上式对于任意的 c0,,cNc_0, \cdots, c_N 都成立, 所以

(e,ψi)=0,i=0,,N. (e, \psi_i) = 0, \quad i = 0, \cdots, N.

上式依旧可以形成一个如同式 (5) 的线性方程组

对于 i=0,,Ni=0, \cdots, N, 有

(j=0Ncjψjf,ψi)=j=0N(ψj,ψi)cj(f,ψi)=0. ({\sum_{j=0}^N} c_j\psi_j - f, \psi_i) = {\sum_{j=0}^N} (\psi_j, \psi_i)c_j - (f, \psi_i) = 0.

j=0N(ψj,ψi)cj=(f,ψi),i=0,,N. \sum_{j=0}^N (\psi_j, \psi_i)c_j = (f, \psi_i), \quad i=0, \cdots, N.

小结

对于逼近向量问题, 伽辽金法(Galerkin method)和最小二乘法(The least squares method)等同.

预告

下次讨论逼近函数问题.