第三章 椭圆方程迭代法介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章 椭圆型问题的差分法
§3-1 流体力学中的椭圆型问题
·无旋流场中 速度势02=∇ϕ (Laplace Eq.) ·二维不可压定常流动,利用涡-流函数表示:
⎪⎩⎪
⎨⎧-=∇∇=∇⋅+∂∂方程Poisson V t
ζ
ϕζυζζ22
·不可压分离流问题中,扰动压力场:02='∇p
·定常的N -S 方程求解问题
·在网格自动生成中,求解椭圆型方程的网格生成方法 由于椭圆型方程的数学性质:求解域内部任何一点的解函数依赖于所有边界上的边界条件,因此从数值计算方法来看,就不能从一部分边界起步进行推进计算到另外的边界,这与发展方程的求解方法有很大的差别,椭圆型方程的数值求解方法,只能是在整个流场中进行迭代计算来求解。
§3-2 椭圆型问题的迭代法求解
(一)迭代法的基本概念
例:方程ζψ=∇2 ( Poisson 方程) 二维
ζψψ=∂∂+
∂∂2
22
2y
x
差分离散
j i j i j i j i j
i j i j i y x ,2
1
,1,1,2
,1,,1)
(2)
(2ζψψψψψψ=∆+-+
∆+---+-+ ………………..(*)
写成矩阵形式代数方程组为: B A =ψ (1)
其中 ⎥⎥
⎥
⎥⎥⎥⎦⎤
⎢⎢⎢⎢
⎢
⎢⎣
⎡=
A ⎥⎥
⎥⎥⎥⎥
⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡=ψJ I j i ,,2,11,1ψψψψ 一般地,对于线性方程组有B A =ψ,欲求未知函数ψ的解矢量 若A 为非奇异矩阵,即:∃1
-A ,则B A 1
-=ψ
由于A 是个阶数甚大的矩阵(非三对角),直接求解,或利用Gauss 消去法求逆矩
阵,计算量及所需计算机的内存都将十分巨大,所以在实际计算中不希望采用直接法求解。
迭代法的基本思想是:定义一个序列)
(k ψ,当∞→k 时,B A k 1
)(-→ψ,从而得到
方程(1)的解。
迭代法设法给出[]
)()2()1()(,,,,r k k k k k B A F ---ψψψ=ψ 的迭代关系。(通常为计算方便,迭代法采取1=r ,使之简单)
[]
)1()(,,-ψ=ψk k k B A F
若k F (即迭代关系式)与迭代步k 无关,则称为平稳迭代; 若k F 是)
1(-ψ
k 的线性函数关系,则称为线性迭代。
例如最简单的线性迭代关系可设为:)()1()()
(k k k k V H +ψ=ψ- (2)
若迭代是有效的,则)()
(k k V H
+ψ=ψ
即)(1)
(1
k k V B A H
B A +=-- (3)
B M B A H I V k M k k k )(1)()()
()(=-=∴-
即 B M H k k k )()()
(+ψ=ψ
且 1)
()(--=A H I M
k
或 I MA H =+
● 研究迭代的收敛性:
引入误差:B A E
k k 1)()
(--ψ=
而由(2)-(3)得:)(1)1()(1)
(B A H B A k k k ----ψ=-ψ
即 )1()()
(-⋅=k k k E H E
或有递推关系式:)
0()2()1()()
(E H H H HE H E H E k k k k k
个
⋅==⋅=⋅=-- 由于)
0(E
是初始解与精确解的误差,应是一个有界的任意函数,故迭代矩阵H 应具有:
当∞→k 时,0lim =⋅∞
→Z H H H k
k
,Z 为任意的有界向量函数。 可以证明:(参阅 “偏微分方程的有限差分方法”P239)
● 对于任意的向量Z ,
0)1()1()
(→-Z H H H k k 的充分必要条件是H 的所有的特征值i λ的
绝对值(即谱半径)都小于1。
推论 当k 很大时,)(~)()
1(H E E
k k ρ+ i i
H λρm a x )(=
所以若1~ρ,则迭代法的收敛速率很慢。
二、几种迭代法介绍
1. Jacobi 迭代 (简单点迭代)
由方程 B A =ψ
将矩阵分解为:A=L+D+U
L :主对角线以下的元素 ij a (i>j 时等于A ,其余为零) D : 主对角线元素
U : 主对角线以上的元素 ij a (i B U D L =ψ++)( B U D L k k k =ψ+ψ+ψ--)1()()1( B D U L D k k 1)1(1)()(---+ψ+-=ψ∴ )(1D L D H +-=∴-, 1-=D M , B D V 1-= H ,M 可以验证满足迭代有效性条件,即I MA H =+ 2、Gauss-Seidel 点迭代 类似1 但是 B U D L k k k =ψ +ψ+ψ-) 1()()( B D L UW D L k k 1)1(1)()()(---+++-=ψ∴ 在实际计算中 L 中(i>j )只要遵循已有新值时,用新值,没有新值时用旧值,即为G-S 。 *往返扫描的Gauss-Seidel 迭代,即 step1: B U D L k k k =ψ +ψ+ψ-) 1()()( step2: B U D L k k k =ψ+ψ +ψ++)1() 1()( 3、SOR (逐点松弛迭代) step1. 用G -S 迭代法求中间值,即 B U D L k k k =ψ+ψ+ψ-)1()()( …………………………………(a) step2. )1((*)) ()1(-ψ-+ψ=ψ k k ωω …. …………………………….(b)