常用算子符号
- 梯度算子
R d \mathbb{R}^d Rd空间中标量函数 u ( x ) u(\bf{x}) u(x),其梯度算子定义如下:
g r a d u ( x ) = ∇ u ( x ) = [ ∂ u ∂ x 0 ∂ u ∂ x 1 ⋮ ∂ u ∂ x d − 1 ] grad u(\mathbf{x})=\nabla u(\mathbf{x})= \begin{bmatrix} \frac{\partial u}{\partial x_0} \\ \frac{\partial u}{\partial x_1} \\ \vdots \\ \frac{\partial u}{\partial x_{d-1}} \end{bmatrix} gradu(x)=∇u(x)=⎣⎢⎢⎢⎡∂x0∂u∂x1∂u⋮∂xd−1∂u⎦⎥⎥⎥⎤
梯度的几何意义:标量函数在一点的梯度向量,指向该点处函数值增加最快的方向,且长度是该点处沿这个方向的函数变化率。 - 散度算子
R d \mathbb{R}^d Rd空间中标量函数 u ( x ) = [ u 0 ( x ) , u 1 ( x ) , ⋯ , u d − 1 ( x ) ] T \mathbf{u}(\mathbf{x})=[u_0(\mathbf{x}),u_1(\mathbf{x}), \cdots,u_{d-1}(\mathbf{x})]^T u(x)=[u0(x),u1(x),⋯,ud−1(x)]T,其散度算子定义如下:
d i v u ( x ) = ∇ ⋅ u ( x ) = ∂ u 0 ∂ x 0 + ∂ u 1 ∂ x 1 + ⋯ + ∂ u d − 1 ∂ x d − 1 div \mathbf{u}(\mathbf{x})=\nabla \cdot \mathbf{u}(\mathbf{x})= \frac{\partial u_0}{\partial x_0} + \frac{\partial u_1}{\partial x_1}+\cdots +\frac{\partial u_{d-1}}{\partial x_{d-1}} divu(x)=∇⋅u(x)=∂x0∂u0+∂x1∂u1+⋯+∂xd−1∂ud−1
散度的物理意义:假设 u ( x ) \mathbf{u}(\bf{x}) u(x)代表一个稳定流动的不可压缩流体(密度为1)的速度场,他在 x \bf{x} x处的散度,就是穿出单位体积边界的通量,也叫通量密度,而通量是流场单位时间内沿指定侧通过的一个曲面的量。给定一个位于封闭曲面S内点 x \bf{x} x,S围成的区域记为 Ω \Omega Ω,
∇ ⋅ u ( x ) = l i m S → x 1 ∣ Ω ∣ ∫ S u ⋅ n d s \nabla \cdot \mathbf{u}(\mathbf{x})=lim_{S\rightarrow\mathbf{x}}\frac{1}{|\Omega|}\int_S \mathbf{u}\cdot \mathbf{n} d\mathbf{s} ∇⋅u(x)=limS→x∣Ω∣1∫Su⋅nds - 旋度算子
R 3 \mathbb{R}^3 R3空间中标量函数 u ( x ) = [ u 0 ( x ) , u 1 ( x ) , u 2 ( x ) ] T \mathbf{u}(\mathbf{x})=[u_0(\mathbf{x}),u_1(\mathbf{x}), u_{2}(\mathbf{x})]^T u(x)=[u0(x),u1(x),u2(x)]T,其旋度算子定义如下:
c u r l u ( x ) = ∇ × u ( x ) = [ ∂ u 2 ∂ y − ∂ u 1 ∂ z ∂ u 0 ∂ z − ∂ u 2 ∂ x ∂ u 1 ∂ x − ∂ u 0 ∂ y ] curl u(\mathbf{x})=\nabla \times u(\mathbf{x})= \begin{bmatrix} \frac{\partial u_2}{\partial y}-\frac{\partial u_1}{\partial z} \\ \frac{\partial u_0}{\partial z}-\frac{\partial u_2}{\partial x} \\ \frac{\partial u_1}{\partial x}-\frac{\partial u_0}{\partial y} \end{bmatrix} curlu(x)=∇×u(x)=⎣⎢⎡∂y∂u2−∂z∂u1∂z∂u0−∂x∂u2∂x∂u1−∂y∂u0⎦⎥⎤
散度的物理意义:向量场 u \mathbf{u} u在点 x \bf{x} x处的旋度向量,用来描述流体以 x \bf{x} x为中心的漩涡强度和方向,它的指向与漩涡旋转最快的方向满足右手法则,长度为旋转最快的方向的角速度的两倍。
- Laplace算子
R d \mathbb{R}^d Rd空间中标量函数 u ( x ) u(\bf{x}) u(x)的梯度的散度给出的微分算子称为Laplace算子,通常写成
Δ u ( x ) = ∇ 2 u ( x ) = ∇ ⋅ ∇ u ( x ) = ∑ i = 0 d − 1 ∂ 2 u ∂ x i 2 \Delta u(\mathbf{x})=\nabla^2u(\mathbf{x})=\nabla\cdot \nabla u(\mathbf{x})=\sum_{i=0}^{d-1}\frac{\partial^2u}{\partial x^2_i} Δu(x)=∇2u(x)=∇⋅∇u(x)=i=0∑d−1∂xi2∂2u
散度定理
给定定义在
Ω
∈
R
d
\Omega \in\mathbb{R}^d
Ω∈Rd向量函数
F
(
x
)
\bf{F}(\bf{x})
F(x),记
n
\bf{n}
n为边界
∂
Ω
\partial \Omega
∂Ω上的单位外法线向量,则有
∫
Ω
∇
⋅
F
d
x
=
∫
∂
Ω
F
⋅
n
d
s
\int_{\Omega}\nabla \cdot \mathbf{F}d\mathbf{x}=\int_{\partial\Omega} \mathbf{F}\cdot \mathbf{n}d\mathbf{s}
∫Ω∇⋅Fdx=∫∂ΩF⋅nds
这就是散度定理。
散度定理的应用
1)取
F
=
v
∇
u
\mathbf{F}=v\nabla u
F=v∇u,可得:
∫
Ω
∇
⋅
(
v
∇
u
d
x
)
=
∫
∂
Ω
v
∇
u
⋅
n
d
s
\int_{\Omega}\nabla \cdot (v\nabla ud\mathbf{x})=\int_{\partial\Omega} v\nabla u\cdot \mathbf{n}d\mathbf{s}
∫Ω∇⋅(v∇udx)=∫∂Ωv∇u⋅nds
∫
Ω
v
Δ
u
d
x
+
∫
Ω
∇
u
⋅
∇
v
d
x
=
∫
∂
Ω
v
∇
u
⋅
n
d
s
\int_{\Omega}v\Delta ud\mathbf{x}+\int_{\Omega}\nabla u \cdot \nabla vd\mathbf{x}=\int_{\partial\Omega} v\nabla u\cdot \mathbf{n}d\mathbf{s}
∫ΩvΔudx+∫Ω∇u⋅∇vdx=∫∂Ωv∇u⋅nds
2)取
F
=
[
u
,
0
,
0
]
T
\mathbf{F}=[u,0,0]^T
F=[u,0,0]T,可得:
∫
Ω
∇
⋅
[
u
0
0
]
d
x
=
∫
Ω
u
x
=
∫
∂
Ω
u
n
x
d
s
\int_{\Omega}\nabla \cdot \begin{bmatrix} u\\0\\0 \end{bmatrix}d\mathbf{x}=\int_{\Omega}u_x=\int_{\partial\Omega} u \mathbf{n}_xd\mathbf{s}
∫Ω∇⋅⎣⎡u00⎦⎤dx=∫Ωux=∫∂Ωunxds
3)
函数空间
这里所用到的函数空间,简单来讲就是具有某些共同性质,且对于线性运算封闭的函数组成集合,它里面通常有无穷多个函数。
-
线性运算封闭性:对于函数空间V中任意两个函数 v v v, w w w,及实数空间 R \mathbb{R} R中任意两个常数 c 0 c_0 c0和 c 1 c_1 c1,满足
c 0 v + c 1 w ∈ V c_0v+c_1w\in V c0v+c1w∈V -
函数空间的基:设 S = ϕ i S={\phi_i} S=ϕi是 V V V的一个子集,如果 S S S中的元素线性无关,且 V V V中的任意一个函数 v v v都可以由它们线性表出,即存在一组和 S S S中函数一样多的常数集合 c i {c_i} ci,使得
v = ∑ i = 0 c i ϕ i v=\sum_{i=0}c_i\phi_i v=i=0∑ciϕi
则称 ϕ i {\phi_i} ϕi为 V V V的一组基。
(1)函数空间由基唯一决定,即给定一组基,就唯一张成一个空间 V = s p a n { ϕ i } V=span\{\phi_i\} V=span{ϕi}
(2)函数空间的基不是唯一的,问题是编程实现的时候你要选择哪一组?
(3)给定空间的一组基,就可以建立起空间 V V V到空间 R d \mathbb{R}^d Rd的一一映射,其中 d d d是向量空间的维数,可以为无穷
v ∈ V ↔ [ c 0 , c 1 , ⋯ ] ∈ R d v\in V \leftrightarrow [c_0,c_1,\cdots]\in\mathbb{R}^d v∈V↔[c0,c1,⋯]∈Rd -
函数空间的维数:函数空间基函数的个数就成为函数空间的维数。包括有限维空间和无限维空间。编程实现只能处理有限位的函数空间!
-
常见的函数空间:
记 Ω \Omega Ω为 R d \mathbb{R}^d Rd空间中的任意子区域
1) L 2 ( Ω ) L^2(\Omega) L2(Ω):对于任意的$V \in L 2 ( Ω ) L^2(\Omega) L2(Ω), ∫ Ω v 2 d x < ∞ \int_{\Omega}v^2d\mathbf{x}<\infty ∫Ωv2dx<∞。
2) H 1 ( Ω ) H^1(\Omega) H1(Ω):函数及其导数都属于 L 2 ( Ω ) L^2(\Omega) L2(Ω)空间。
3) H ( d i v , Ω ) \mathbf{H}(div,\Omega) H(div,Ω):向量函数空间,向量函数的每个分量及其散度都属于 L 2 ( Ω ) L^2(\Omega) L2(Ω)空间。
4) H ( c u r l , Ω ) \mathbf{H}(curl,\Omega) H(curl,Ω):向量函数空间,向量函数的每个分量及其旋度都属于 L 2 ( Ω ) L^2(\Omega) L2(Ω)空间。
5) P k ( Ω ) \mathbb{P}_k(\Omega) Pk(Ω):不大于 k k k次的多项式函数组成的空间。
6) P k ( Ω ; R d ) \mathbb{P}_k(\Omega;\mathbb{R}^d) Pk(Ω;Rd):每个分量都是不大于 k k k次的多项式函数的向量函数空间。
多项式函数空间是编程实现有限元算法的基础空间。
偏微分方程数值解:从无限到有限
“Hello World"模型:Possion方程
给定区域
Ω
⊂
R
d
\Omega\subset\mathbb{R}^d
Ω⊂Rd,其边界记为
∂
Ω
\partial \Omega
∂Ω,求标量函数
u
(
x
)
u(\mathbf{x})
u(x),满足
−
Δ
u
(
x
)
=
f
(
x
)
,
∀
x
∈
Ω
u
(
x
)
=
0
,
∀
x
∈
∂
Ω
-\Delta u(\mathbf{x})=f(\mathbf{x}), \forall \mathbf{x}\in \Omega\\ u(\mathbf{x})=0,\forall \mathbf{x}\in \partial\Omega
−Δu(x)=f(x),∀x∈Ωu(x)=0,∀x∈∂Ω
-
Laplace算子 Δ \Delta Δ的定义
- d = 1 d=1 d=1: Δ ( x ) = Δ u ( x ) = u x \Delta (\mathbf{x})=\Delta u(x)=u_x Δ(x)=Δu(x)=ux
- d = 2 d=2 d=2: Δ ( x ) = Δ u ( x , y ) = u x x + u y y \Delta (\mathbf{x})=\Delta u(x,y)=u_{xx}+u_{yy} Δ(x)=Δu(x,y)=uxx+uyy
- d = 3 d=3 d=3: Δ ( x ) = Δ u ( x , y , z ) = u x x + u y y + u z z \Delta (\mathbf{x})=\Delta u(x,y,z)=u_{xx}+u_{yy}+u_{zz} Δ(x)=Δu(x,y,z)=uxx+uyy+uzz
-
未知量是什么?需要求无穷多个点处对应的函数值。
-
该问题求解的困难之处:算子和未知量的无限性。
从微分到积分:连续的弱形式
从无限到有限:离散的弱形式
从无限到有限:数值积分
总结
- 上面通过弱形式(变分)把偏微分方程转化为代数方程的方法统称为Galerkin方法。
- 偏微分数值计算方法就是为解决偏微分方程模型的无限性和计算资源的有限性这对本质矛盾而出现,并不断前进发展的。
- 与Galerkin方法不同的另一种方法——有限差分方法,是通过数值微分来解决微分算子定义的无限性问题。
全部内容来自湘潭大学魏华祎老师暑期学校课程https://www.bilibili.com/video/BV1np4y1S7LK/