简述有限元: 逼近函数 I前情回顾
第一期讨论了逼近向量, 利用 最小二乘法 和 伽辽金法 推到出相同的结果. 理解..正交性..是上一期最重要的目的.
(u−f,v)=(e,v)=0,∀v∈V.补充一道 3 维例题
为方便计算, 假设 A 为坐标原点, AB=[1,3,0]T, AC=[4,0,0]T, AF=[5,6,5]T, 在由向量 AB,AC 确定的平面内寻找向量 u, 使其最佳逼近于 AF.
二维空间逼近三维空间向量记:
⎩⎨⎧ψ1=AB,ψ2=AC,f=AF.以及
u=c1ψ1+c2ψ2.⎩⎨⎧A11=(ψ1,ψ1)=10,A12=(ψ2,ψ1)=4,A21=A12=4,A22=(ψ2,ψ2)=16.所以矩阵
A=104416.⎩⎨⎧b1=(ψ1,f)=23,b2=(ψ2,f)=20.所以
b=2320解
Ac1c2=b得
c1c2=23/4.最后,
u=c1ψ1+c2ψ2=[5,6,0]T.
二维空间最佳逼近三维空间向量也许聪明的同学已经看出, 哪儿用这么麻烦, u 的横纵坐标不就是 f 的横纵坐标嘛, z 取 0 就好了. 的确是这样, 没有错. 这个例子, 用上面的做法的确是大材小用了, 但上面的算法过程具有..一般性.., 更复杂的情况, 乃至高维问题, 都是适用的.
从 正交性 出发, 推导出与上面相同的矩阵.
设线性方程组如下
\begin{equation}
\begin{bmatrix}
\psi_1 & \psi_2
\end{bmatrix}
\begin{bmatrix}
c_1 \\ c_2
\end{bmatrix} =
f.
\label{eq:eq1}
\end{equation}
即
130400c1c2=565.上式显然无解, 式 (1) 左右同乘
ψ1Tψ2T得
\begin{equation}
\begin{bmatrix}
\psi_1^{\rm T}\psi_1 & \psi_1^{\rm T}\psi_2 \\
\psi_2^{\rm T}\psi_1 & \psi_2^{\rm T}\psi_2
\end{bmatrix}
\begin{bmatrix}
c_1 \\ c_2
\end{bmatrix} =
\begin{bmatrix}
\psi_1^{\rm T}f \\ \psi_2^{\rm T}f
\end{bmatrix}.
\label{eq:eq2}
\end{equation}
即
143000130400c1c2=143000565.进一步,
104416c1c2=2320.得到与之前一样的结果. 该解在线性代数上称为最小二乘解.
“复盘"逼近向量
想一想, 上一次的讨论中, 对于任意给定的向量 f, 如何在向量空间 V 中确定最佳逼近向量 u ?
令 d=∥e∥=∥u−f∥ 取最小的 u 即为所求.
其中, 首要工作是用 ..向量二范数.. 来规定..距离... n 维向量 a 的二范数定义为:
∥\mita∥2=a12+a22+⋯+an2.其次, 空间 \mitV 中任意向量 u 用其一组基的线性组合表示:
u=j=0∑Ncjψj,∀u∈V...最小二乘法.. 通过建立范数平方函数 E(c0,⋯,cN), 使用分析手段(求导), 确定基的系数 cj,j=0,1,…,N, 从而确定最佳逼近向量.
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).而 ..伽辽金法.. 从..正交性..出发
(e,j=0∑Ncjψj)=0.经变换, 得到
(e,ψj)=0,j=0,1,…,N.二者的共同点是: 最终都会归结到解一个线性方程组, 来确定基的系数.
[Aij][bi]=(ψj,ψi),=(ψi,f).其中, 矩阵 A 对称, 主元恒正.
若复盘不成功, 建议看一下前一章
逼近函数
Approximation of functions
熟悉上面逼近向量的部分, 逼近函数就会简单很多了.
假设函数空间 V 由一组基 ψ0,ψ1,⋯,ψN 张成的
V=span{ψ0,ψ1,⋯,ψN}.对于任意 u∈V 可表示成这组基的线性组合
u=j∈Is∑cjψj.指标集 Is 定义为 Is={0,1,⋯,N}.
下面首先讨论单变量函数, 之后在讨论多变量的情况.
最小二乘法
The least squares method
给定一个函数 f(x), 如何在函数空间 V 中找到它的最佳逼近函数 u ? 参考逼近向量时的方案, 是否可以选择使得(距离) ∥e∥=∥u−f∥ 最小的 u 呢 ? 但是, 向量是有限维的, 而函数是无限维的, 所以, 首要任务还是需要定义任意两个函数间的"距离”.
接下来通过用积分定义的內积来诱导此范数
积分使无线维转化为有限维
(f,g)=∫Ωf(x)g(x)dx.所以
∥e∥2=(e,e)=∫Ωe2(x)dx.接下来就是熟悉的部分了, 定义距离范数的平方
E=∥e∥=(j∈Is∑cjψj(x)−f(x),j∈Is∑cjψj(x)−f(x)).E 是关于 {cj}j∈Is 的函数, 进一步化简
E(c0,⋯,cN)=(j∈Is∑cjψj(x)−f(x),j∈Is∑cjψj(x)−f(x))=p∈Is∑q∈Is∑cpcqψp(x)ψq(x)−2j∈Is∑cj(ψj(x),f)+(f(x),f(x)).做跟上一节同样的求导运算, 就可以得到如下线性方程组系统
[Aij][bi]=(ψj,ψi),\labeleq:eq3=(ψi,f).\labeleq:eq4伽辽金方法
The Galerkin method
伽辽金方法依旧从 正交性 出发
\begin{equation}
(e, v) = 0, \quad \forall\ v \in V.
\label{eq:eq5}
\end{equation}
将 v=∑i∈Isciψi(x) 带入上式 (\ref{eq:eq5}), 可化简为
(e,ψi)=0,i∈Is.将 e 还原为 ∑_j∈I_scjψj(x)−f(x) 即可以得到线性方程组系统式 (\ref{eq:eq3}) 和式 (\ref{eq:eq4}).
例题 1
给定一个二次(抛物型)函数 f(x)=10(x−1)2−1,x∈Ω=[1,2], 在线性函数空间 V 中寻找最佳逼近向量 u
V=span{1,x}.解: 设 ψ0=1,ψ1=x, 则
u=c0ψ0(x)+c1ψ1(x)=c0+c1x.所以系数矩阵
A11=(ψ0,ψ0)=∫121⋅1dx=1,A12=(ψ1,ψ0)=∫12x⋅1dx=23,A21=A12=23,A22=(ψ1,ψ1)=∫12x⋅xdx=37.所有系数矩阵是
A=1232337右端项为:
b1=(ψ0,f)=∫121⋅(10(x−1)2−1)dx=37,b2=(ψ1,f)=∫12x⋅(10(x−1)2−1)dx=313.所以 b=[37,313]T, 解线性方程组就可以得到
c=−38/310.因此
u=10x−338.
编程题目
本小节是一个小作业 ✍
根据上述最小二乘法, 编程实现例题 1, 要求程序有一定的通用性.
下节预告
下次主要介绍程序以及一些扩展 🤘