简述有限元:逼近向量有限元 博大精深, 开设本专题意在督促自己学习, 只能讲述一些最简单的有限元知识. 本主题将注重数学推导和有关程序实现(Matlab 为主, Python 为辅), 配以适当图示, 尽量做到不晦涩, 强调趣味性和易读性.
有限元主要用来解(偏)微分方程, 但实际某些思想在逼近向量或者函数时, 就存在了, 比如本节介绍的正交性.
逼近向量
关键词: 正交性
逼近二维向量
Approximation of planar vectors
假设 xy 平面有向量 f=[3,5], 在向量 [2,1] 方向上, 寻找向量 u 逼近 f
一维向量最佳逼近二维向量令 ψ0=[2,1], 则有 xy 平面的子空间
V=span{ψ0}.使得 u=c0ψ0∈V, 并且 ψ0 为 V 的基.
令 e=u−f, 并且定义范数
∥e∥=(e,e)21.则原问题转化为: 寻找 c0, 使得 ∥e∥ 最小.
这里实际上指定在向量二范数下的逼近
最小二乘法
The least squares method
定义函数
E(c0)=(e,e)=(c0ψ0−f,c0ψ0−f)=c02(ψ0,ψ0)−2c0(ψ0,f)+(f,f).当 ∂c0∂E=0 时, E 取极值, 即
\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,ψ0)(ψ0,f).改写式 (\ref{eq:eq1}), 得到,
(f−c0ψ0,ψ0)=(f−u,ψ0)=0.即所谓的 正交性
(e,ψ0)=0.伽辽金方法
Galerkin method
几何上看, 从第一张图中, 很容易得到: 当向量 e 垂直于 V 中任意向量时, e 的二范数最小, 用数学语言描述如下:
对任意 v=s,ψ0∈V, 满足
(e,sψ0)=(c0ψ0−v,sψ0)=c0s(ψ0,ψ0)−s(v,ψ0)=s(ψ0,ψ0)(v,ψ0)(ψ0,ψ0)−s(v,ψ0)=0更进一步地
\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]
ψ0Tc0=fT.上式显然无解, 所以, 左右同乘 ψ0
ψ0ψ0Tc0=ψ0fT.所以
c0=ψ0ψ0Tψ0fT=(ψ0,ψ0)(ψ0,f).
逼近一般向量
二维是容易比较直观的, 但当维数增加时, 尤其 dim≥4, 一般人类是无法想象的 😂
假设 f 是任意 N+1 维向量, 我们在空间
V=span{ψ0,⋯,ψN},中寻找 u 逼近 f. 假设 ψ0,⋯,ψN 线性无关, 即 V 的维数是 N+1. 那么, 对于任意 u∈V 可以被写成以下线性组合
u=j=0∑Ncjψj,cj∈R.最小二乘法
The least squares method
现在确定 u 的系数 c0,⋯,cN 使得距 v 的距离(误差) e=u−f 最小. 定义函数
E(c0,⋯,cN)=(e,e)=(j=0∑Ncjψj−f,j=0∑Ncjψj−f)=p=0∑Nq=0∑Ncpcq(ψp,ψq)−2j=0∑Ncj(ψj,f)+(f,f).\labeleq:eq3当系函数满足
\begin{equation}
\frac{\partial E}{\partial c_i} = 0, \quad i = 0,\cdots, N.
\label{eq:eq4}
\end{equation}
接下来是重点
式 (\ref{eq:eq3}) 的第 2 项对 ci 求导
∂ci∂(−2j=0∑Ncj(ψj,f))=−2c(ψi,f)式 (\ref{eq:eq3}) 的第 1 项对 ci 求导
因为,
∂ci∂cpcq=⎩⎨⎧0,cq,cp,2ci,p=i∧q=ip=i∧q=ip=i∧q=ip=q=i.所以,
\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*}合并前两项至第三项, 即
∂ci∂p=0∑Nq=0∑Ncpcq(ψp,ψq)=2j=0∑Nci(ψj,ψ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,bi=(ψi,f).
伽辽金方法
Galerkin method
令 e=u−f, 寻找 u 对于任意的 v=∑i=0Nciψi∈V, 满足
(e,i=0∑Nciψi)=0.上式可写成
i=0∑Nci(e,ψi)=0.上式对于任意的 c0,⋯,cN 都成立, 所以
(e,ψi)=0,i=0,⋯,N.上式依旧可以形成一个如同式 (5) 的线性方程组
对于 i=0,⋯,N, 有
(j=0∑Ncjψj−f,ψi)=j=0∑N(ψj,ψi)cj−(f,ψi)=0.即
j=0∑N(ψj,ψi)cj=(f,ψi),i=0,⋯,N.小结
对于逼近向量问题, 伽辽金法(Galerkin method)和最小二乘法(The least squares method)等同.
预告
下次讨论逼近函数问题.