46
1 (五) 五五五五五五五 • 5.1 代代代代代• 5.2 代代代 • 5.3 代代代代代 • 5.4 代代代代代代

( 五 ) 代数方程的求解

  • Upload
    psyche

  • View
    140

  • Download
    13

Embed Size (px)

DESCRIPTION

( 五 ) 代数方程的求解. 5.1 代数方程系统 5.2 直接法 5.3 主要迭代法 5.4 其他迭代方法. 5.1 代数方程系统. 有限差分 ( 体积 ) 离散格式提供一个网格点 ( 单元)的代数方程 , 以线性代数方程为例: P 点和周围邻居点构成计算模板 ( 比差分基架还大) 计算模板 ( 计算分子 ; 解元 SE). 5.1 代数方程系统 : 计算模板. 2D 2 阶模板. 2D 3 阶模板. 3D 2 阶模板. 5.1 代数方程系统 : 整体方程系统. - PowerPoint PPT Presentation

Citation preview

Page 1: ( 五 )   代数方程的求解

1

(五 ) 代数方程的求解• 5.1 代数方程系统• 5.2 直接法• 5.3 主要迭代法• 5.4 其他迭代方法

Page 2: ( 五 )   代数方程的求解

2

5.1 代数方程系统• 有限差分 ( 体积 ) 离散格式提供一个网格点

( 单元)的代数方程 , 以线性代数方程为例:

• P 点和周围邻居点构成计算模板 ( 比差分基架还大)• 计算模板 ( 计算分子 ; 解元 SE)

(1) l

PllPP QAA

Page 3: ( 五 )   代数方程的求解

3

5.1 代数方程系统 : 计算模板2D 2 阶模板 2D 3 阶模板 3D 2 阶模板

Page 4: ( 五 )   代数方程的求解

4

5.1 代数方程系统 : 整体方程系统• 流场中每一点都有一个方程 ( 小组 ), 整个计算域就有一个大型稀疏方程系统

向东,向上。从西南角开始,向北,在结构网格上的排序:的排序。其结构依赖于稀疏方阵

, :

(2) A

QA

Page 5: ( 五 )   代数方程的求解

5

5.1 代数方程系统 : 系数矩阵的存储• 只存储非零的对角元素• 2维 5 点格式: 5 Ni *Nj• 3维 7 点格式: 7 Ni *Nj*Nk

• Al,l-Nj=W• Al,l-1 =S• Al,l =P• Al,l+1 =N• Al,l+Nj=E

PQ EENNPPSSWW AAAAA

Page 6: ( 五 )   代数方程的求解

6

5.2 直接法5.2.1 Gauss elimination5.2.2 LU decomposition5.2.3 Tridiagonal system5.2.4 Cyclic reduction

Page 7: ( 五 )   代数方程的求解

7

5.2.1 Gauss Elimination

By backward substitution, we have

from

Require O(n3/3) arithmetic operationBackward substitution O(n2/2)Pivoting Rarely used in CFD

forward elimination

Page 8: ( 五 )   代数方程的求解

8

5.2.2 LU decomposition

QAφ

的所有元素)(可求出 UL, ALU

QLUφ

YUφ

QLY

where

let

then

Require O(2n2) arithmetic operationBasis of other iterative methods

Page 9: ( 五 )   代数方程的求解

9

5.2.3 Tridiagonal system (TDMA)

*

Gives upper bi-diagonal matrix. By backward substitution, we get

elimination:

*

*

*

Page 10: ( 五 )   代数方程的求解

10

5.2.3 Tridiagonal system: 块三对角方程组

1*1*

*1

1**

11**

11

:onsubstitutiback

and

:neliminatio

iiEi

iPi

iiP

iWii

iE

iP

iW

iP

iP

iiiEi

iPi

iW

AQA

QAAQQ

AAAAA

QAAA

Page 11: ( 五 )   代数方程的求解

11

5.2.3 Tridiagonal system (cont)

• 计算量 O (n)• 周期三对角方程组• 三对角方程组的并行化解法

– cyclic reduction, recursive doubling, SPP… • 五对角方程组(类似三对角)

Page 12: ( 五 )   代数方程的求解

12

5.3 迭代法• 5.3.1 基本概念• 5.3.2 收敛速度• 5.3.3 一些基本方法• 5.3.4 不完全 LU 分解方法• 5.3.5 ADI 和其他分裂方法• 5.3.6 Conjugate gradient methods• 5.3.7 Bi-conjugate gradients,CGSTAB, GMRES• 5.3.8 Multigrid methods

Page 13: ( 五 )   代数方程的求解

13

迭代误差

迭代解的收敛:

Matrix A is sparse

设 n 次迭代的近似解为 , 不满足上述方程,带入上述方程后有残量 :n

n

5.3.1 基本概念

0or ,0

实际计算中 :速度预处理矩阵,加速收敛P

PQPA

Page 14: ( 五 )   代数方程的求解

14

5.3.2 收敛性• Consider an iterative scheme for a linear system

上两式相减或 n 这里

M 称为迭代矩阵

Page 15: ( 五 )   代数方程的求解

15

设特征向量完备,则

1 is the largest eigenvalue

迭代次数:

5.3.2 收敛性(续)

趋于零的充要条件: 1k

Page 16: ( 五 )   代数方程的求解

16

5.3.2 收敛性:收敛速度

0,

NAMNMA

QA

要想收敛快,要求:

Page 17: ( 五 )   代数方程的求解

17

• Jacobi method:

ii

kik

iki A

R 1 nixAxAQR

n

ij

kjij

i

j

kjiji

ki ,...,2,1,

1

1

1

• Gauss-Seidel Method:

ii

kik

iki A

R 1

n

ij

kjij

i

j

kjiji

ki xAxAQR

1

1

1

1

• Successive Over-relaxation (SOR if w>1):Useful for solving linear systems occurring in certain PDE’s

ii

kik

iki A

R 1

n

ij

kjij

i

j

kjiji

ki xAxAQR

1

1

1

For positive definite matrix, the SOR converges for .20

Converge slow

2 times as fast as Jacobi

5.3.3 一些基本迭代方法

Page 18: ( 五 )   代数方程的求解

18

GS 和 SOR 的一般形式

ijijii

ijijii

ppp

pp

pp

aa

i

iaa

XUXbLX

SORUXbLX

UXbLX

GSULA

bAX

有且至少对一个

收敛条件:

,

)1(

:

:

,

11

11

1

Page 19: ( 五 )   代数方程的求解

19

GS 迭代法的应用: LU-SGS

ppp

pppp

ppp

pp

ppp

XUXDXD

eiXUXLAXbXD

XLAXbXD

AXbXUDL

XXX

UDLAbAX

*

*

**

1

..

:SweepU

:SweepL)(

,

奇次迭代步从左下角开始,偶次迭代步就从右上角开始

Page 20: ( 五 )   代数方程的求解

20

GS 迭代法的应用:线 -SGS

jin

jinj

nji

nji

nj

nji fuuuBuuuA

ybB

xaA

fyub

xua

,1

1,11

1,,111

,1

22

2

2

2

2

)2()2(

GS

,,

:线

定义

对于方程

Page 21: ( 五 )   代数方程的求解

21

GS 迭代法的应用:并行的 Red-black

Page 22: ( 五 )   代数方程的求解

22

5.3.4 不完全 LU 分解方法 (ILU)在 PDE 中的应用: SIP 方法

• LU method 是通用方法,但没有利用原矩阵的稀疏性质;• ILU: 非精确分解, i.e. M=LU =A+N;• 在 ILU中 , 如果迭代矩阵 M 尽量接近原矩阵 A ,则收敛快 .• ILU method for CFD is Strongly Implicit Procedure (SIP), by Stone.

N 含有 两个对角线的非零元素,而在 A 却为零 .M 中的元素由矩阵相乘得出: M=LU

专用的 2D 五点格式:L M=A+NU

Page 23: ( 五 )   代数方程的求解

23

Standard ILU:

收敛慢!

Page 24: ( 五 )   代数方程的求解

24

Stone (1968):SIP

• N在 7 条对角线都可以有元素• N 和向量 φ 相的结果尽量接近零

N* φ :

要求:

Page 25: ( 五 )   代数方程的求解

25

SIP: (cont)

• 带入 (5.39) ,并等于( 5.38) ,可以得到 N 的所有元素,并令M=A+N, 可得到 SIP的 LU.

• (5.40) 仅对 PDE 的5点离散格式有效。• SIP 求解用更新变量: • SIP 求解由 L-sweep和 U-sweep 组成 • 收敛所用迭代次数少 , 但计算 L和 U 的工作量大,总体效率较高• 3D 七对角线和 2D 九对角线 ( 九点格式)的程序见 Peric 书附件。

pp AQLU 1

Page 26: ( 五 )   代数方程的求解

26

5.3.5 ADI 和其他分裂方法 主要解对多维抛物型方程,也可以解拟时间的抛物型方程 -> 椭圆形方程

Crank-Nicholson Discretization

where

2D 抛物型方程

Page 27: ( 五 )   代数方程的求解

27

改写成

The last term is proportion to and can be neglected.3)( t

只需求解两个坐标坐标方向的三对角线方程。2D 无条件稳定。 3D 有条件稳定。特殊形式可以无条件稳定。增量形式 ADI 称为 approximate factorization (AF) 。优点 : 收敛性快 , 计算量不大,缺点:中间变量的边界条件不知道。

Page 28: ( 五 )   代数方程的求解

28

5.3.6 Conjugate gradient methods

• 线性代数方程和极小化: 对于对称正定矩阵 A ,求解

•共轭 :

021

22

110

21

PP

PP

A

A

F

FPP

是共轭的:关于矩阵如果这两个方向意一个方向做极小化,我们只需要针对其中任

:平面内极小化假设在

等价于找到 , 使 F极小化: i

Page 29: ( 五 )   代数方程的求解

29

5.3.6 Conjugate gradient methods (cont)

• 最速下降法:收敛慢,搜索方向可能重复• 共轭梯度法:新的搜索方向要求和过去所有的搜索方向共轭 n*n 矩阵, n 次搜索就可以收敛 CG 的收敛速度依赖于 A 的条件数

CFD 问题的条件数 ~ Ni**2 • 改进(其实对所有方法都有效 ): 预处理

min

max

CACC

QCCACC

精心选择共轭梯度法应用于 11

111 (1)

Page 30: ( 五 )   代数方程的求解

30

M=C-1, C为 pre-conditioning matrix. The choice of M is incomplete cholesky LU

对称正定矩阵方程的 Conjugate gradient method(Golub and van Loan, Matrix computation, 1990)

Page 31: ( 五 )   代数方程的求解

31

非对称矩阵方程的 Bi-conjugate gradient method

• CG 方法只适用于对称系统 (如 Poisson 方程 )• 把非对称转化为对称:

0AQA

T

第一个方程:原始方程第二个方程:转置方程,与解无关。When preconditioned CG method is applied to above system , the following bi-conjugate gradient method results:

Page 32: ( 五 )   代数方程的求解

32

适用于非对称 矩阵的 Bi-conjugate gradient 算法如下 :

2倍于 CG 的计算量,相同的收敛速度,鲁棒性好

Page 33: ( 五 )   代数方程的求解

33

其他解法• CGSTAB ( 稳定化的 CG)• √GMRES (Saad and Shultz, 1986)

Page 34: ( 五 )   代数方程的求解

34

5.3.8 Multigrid methods• 大多数迭代法在细网格上可以很快消除误差的高频分量,但低频分量相当顽固。可以在粗网格上消除这些低频分量。

100

31

)(2

)2()2(

GS,

,,

,1,11

1,,111

,1

22

2

2

2

2

G

G

BABeAeBA

BeAeG

fuuuBuuuA

ybB

xaA

fyub

xua

ii

ii

jin

jinj

nji

nji

nj

nji

,有,对于低频分量

,有且对

误差放大因子

迭代法:点中心差分

定义

对于方程

Page 35: ( 五 )   代数方程的求解

35

典型 V循环式多重网格法的粗网格、限制和插值算子

Page 36: ( 五 )   代数方程的求解

36

两级线性多重网格法步骤

多级多重网格法:继续向更粗的网格限制,直到无更粗的网格为止。在最粗网格上精确求解修正方程。

Page 37: ( 五 )   代数方程的求解

37

公式描述 : 线性方程

(3) )(I

,)2(

.

(2) )(R

,,

(1)

cfc

fold

fnew

c

ffh

fcf

ch

fhf

f

ffff

ff

h

f

c

f

f

L

EL

LQ

QL

可以得到,将此更新插值到细网格的近似解是设

的误差方程该方程逼近于细网格上

网格上求解差比较光滑,可以在粗当收敛较慢时,表明残

残差

为更新近似解

细网格上需解方程:

Page 38: ( 五 )   代数方程的求解

38

公式描述 : 非线性方程

(6) )(I

(5) )(R)(R

:

(4)

fold

cf

cfc

fold

fnew

fcfh

fcf

ch

fhf

f

hh

ff

h

R

LL

LQ

LL

QL

cc

f

f

网格上的误差方程差比较光滑,可以在粗当收敛较慢时,表明残

细网格上残差

误差方程

细网格上需解方程:

Page 39: ( 五 )   代数方程的求解

39

限制和插值算子 :

对于 eq (5.63)

1/2*eq(i-1)+

½*eq(i+1)

+eq(i) results in:

Page 40: ( 五 )   代数方程的求解

40

Comparison of count for convergence• On 2D Poisson equation, k*k grid, n=k2, unknownMethod Method CostCostGaussian elimination O(n3)GS O(n2logn)CG O(n1.5)FFT/Cyclic reduction O(nlogn)Multigrid O(n)

optimal

Page 41: ( 五 )   代数方程的求解

41

选择 solver

• MG+SIP or MG +GS > ICCG > SIP >ADI> GS

• GMRES+MG • 没有 MG 时, ICCG>SIP >ADI >GS

Page 42: ( 五 )   代数方程的求解

42

5.4 其他迭代法coupled equations (system of nonlinear equations)

• Simultaneous approach: All equations are considered part of a single system.

• Sequential approach: Each equation is solved for its dominant variable, treating the other as known, and one iterates through the equations until the solution of the coupled system is obtained.

• Iterations performed on each equation are called inner iteration.

• In order to obtain a solution which satisfy all equations, the coefficient matrices and source vector must be updated after each cycle ad the process repeated. The cycle are called outer iteration.

Page 43: ( 五 )   代数方程的求解

43

Sequential solution: Under-Relaxation

On the nth iteration the equation for generic variable is

Patankar 1980对 SIMPLE采用 , 稳定求解,但可能降低收敛率时间相关法就是一种松驰法。

Page 44: ( 五 )   代数方程的求解

44

5.4.2延迟修正办法deferred-correction approaches

对于高阶差分离散,如果左端项用高阶差分 , 则计算复杂如果左端项只保留相邻点的项,远邻点移到右端,则计算可能发散为克服上述困难,可用延迟修正 :

高阶差分移到右端,同时在左右两端加仅涉及相邻点的低阶差分:用途:可以处理隐式高阶差分、交叉导数项、非正交相等。但不能处理高阶导数项。

Page 45: ( 五 )   代数方程的求解

45

第 5 次课阅读提示• 傅《计算流体力学》第 5章全部。• Peric《书》 Chapter 5 全部。

Page 46: ( 五 )   代数方程的求解

46

第五次课后作业• 实践 Peric《书》附的代数方程求解程序• (待具体 化)