计算传热学第7节-第4章 求解代数方程组
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
* x 即如果数
x1 ( x 0 )
再将 x1 代入式 x ( x) 的右端, 得到 x2 依此类推, 得到一个数列 x3 ( x2 ) …, 其一般表示
xk 1 ( xk ) (k 0,1,2,)
( x1 ) ,
(2.4)
15
式(2.4)称为求解非线性方程的简单迭代法。
lim[T ]n [T ] *
n
Sun Jining 2008 @ BUAA
17
4 求解代数方程组
迭代求解方法
点迭代
Jacobi点迭代格式 aPTPk+1=aETEk +aWTWk +aNTNk +aSTSk + b Gauss-Seidel点迭代格式 aPTPk+1=aETEk +aWTWk+1 +aNTNk +aSTSk+1 + b n=1
a11 a 21j 2 ai1 an1 a12
22 i2 n2
a1n a2 j 2 a 2 n n aij ain anj jn ann a1 j
11
12
1j
1n
21
22
2j
2n
l l l 0 ij i1 i 2 0 0 l l l l nj nn 0 0 n1 n 2A LU
u2 j 1 0
A LU
Sun Jining 2008 @ BUAA
11
4 求解代数方程组
直接求解方法
TDMA方法
Sun Jining 2008 @ BUAA
12
4 求解代数方程组
迭代求解方法
Sun Jining 2008 @ BUAA
13
对于一般的非线性方程,没有通常所说的求根 公式求其精确解,需要设计近似求解方法,即迭代法。 它是一种逐次逼近的方法,用某个固定公式反复校正 根的近似值,使之逐步精确化,最后得到满足精度要 求的结果。 2.3.1 迭代法的基本思想
收敛速度是指达到一定的残差需要用多少轮迭代
对线性代数方程组,加速收敛有两类主要思路 一类是通过超松弛,放大每步变化的量,使之加速逼近真值 一类是通过增加迭代公式中隐式迭代的比例,使每一步内各节点相互 影响更充分,影响因素更快向各个方向扩展 加速收敛算法不一定减少计算时间 计算时间不但取决于迭代步数,还取决于每迭代步的计算量 隐式比例越重,每迭代步计算量越大
Sun Jining 2008 @ BUAA
22
例:设有一正方形区域,其边界温度如图。物体 内无热源,物性为常数。试分别用Jacobi点迭代、 G-S点迭代及线迭代求解稳态导热问题(1、2、3、 4点的温度)
Jacobi点迭代
G-S点迭代
线迭代
4 求解代数方程组
迭代求解方法
加速收敛
Sun Jining 2008 @ BUAA
2
一维瞬态物理属性为常数的导热问题,时间显式格式 ——按时间步推进,每时间步做代数计算,不需要求解代数方程组 一维瞬态物理属性为常数的导热问题,时间隐式格式 ——按时间步推进,每时间步为三对角常系数矩阵线性代数方程组 一维瞬态物理属性为温度函数的导热问题,时间显式格式 ——按时间步推进,时间步做代数计算,不需要求解代数方程组 一维瞬态物理属性为温度函数的导热问题,时间隐式格式 ——按时间步推进,每时间步为三对角系数矩阵为求解变量函数 的非线性代数方程组
n=0
Sun Jining 2008 @ BUAA
18
4 求解代数方程组
迭代求解方法
亚松弛与超松弛
aPTP*=aETEk +aWTWk +aNTNk +aSTSk + b TPk+1 =fTP* +(1-f)TPk 0<f<1时为亚松弛,亚松弛可以减小每步变化量,避免发散 1<f时为超松弛,超松弛可以放大每步变化量,加速收敛 超松弛Tk+1
11 12 1j 1n 21 22 2j 2n
ai1 an1
ai 2 an 2
aij anj
ain ann
u a u 4 求解代数方程组 a 1 a u 0 0 0 1 u l u u l l 0 0 0 1 u u 1 0
可以直接求解的线性代数方程组 需要迭代求解的线性代数方程组 需要迭代求解的非线性方程组 需要时间推进的非线性方程组
Sun Jining 2008 @ BUAA
5
4 求解代数方程组
最复杂的求解过程
Sun Jining 2008 @ BUAA
6
4 求解代数方程组
最复杂的导热求解过程
1 0
u jn 1
0 0 lij
lnj
0 1 u12 0 1 0 0 0 0 lnn 0 0
A LU
AX LUX b
u1 j u1n 令 u2 n Y UX u jn 则 LY b 1
计算传热学
第4章 求解代数方程组
Solving Algebraic Equations
Sun Jining 2008 @ BUAA
1
4 求解代数方程组
物理问题分类
一维稳态物理属性为常数的导热问题
——三对角常系数矩阵线性代数方程组 一维稳态物理属性为温度函数的导热问题 ——三对角系数矩阵为求解变量函数的非线性代数方程 组
[T ]k 1 [ A*][T ]k [b*]
lim[T ]n [T ] *
n
[ A([T ])][ T ] [b([T ])]
[T ] [ A * ([T ])][T ] [b * ([T ])]
[T ]k 1 [ A * ([T ]k )][T ]k [b * ([T ]k )]
Sun Jining 2008 @ BUAA
9
4 求解代数方程组
直接求解方法
高斯消元法
(1) a1 n (1) a2 n (1) b1 (1) b2 (1) bn
(1) (1) a11 a12 (1) (1) a a 22 21 (1) (1) a a n2 n1
Sun Jining 2008 @ BUAA
25
4 求解代数方程组
迭代求解方法
克服发散
温度场变化速度比较快时,可能导致发散
对线性代数方程组,克服发散有两类主要思路 一类是通过亚松弛,减缓每步变化的量,使之不致迈出稳定区域 一类是通过增加迭代公式中显式迭代的比例,使影响因素缓慢向各个 方向扩展
T
亚松弛 Tk+1 Tk
T*
k
Sun Jining 2008 @ BUAA
k+1
k
19
4 求解代数方程组
迭代求解方法
线迭代
Jacobi线迭代格式 aPTPk+1=aETEk+1 +aWTWk+1 +aNTNk +aSTSk + b Gauss-Seidel线迭代格式 aPTPk+1=aETEk+1 +aWTWk+1 +aNTNk +aSTSk+1 + b n=1 n=2 n=3
Sun Jining 2008 @ BUAA
8
4 求解代数方程组
线性代数方程组(内迭代)
直接求解方法
高斯消元法 LU分解法 TDMA方法
ห้องสมุดไป่ตู้
迭代求解方法
Jacobi点迭代 Gauss-Seidel迭代 亚松弛与超松弛 线迭代 ADI迭代 显式迭代与隐式迭代 SIP迭代
4 求解代数方程组
物理问题分类
二维稳态物理属性为常数的导热问题
——对角占优的常系数矩阵线性代数方程组 二维瞬态物理属性为温度函数的导热问题 ——按时间步推进,每时间步为系数矩阵为求解变量 函数的非线性代数方程组
Sun Jining 2008 @ BUAA
4
4 求解代数方程组
求解方程分类
n=0 n=1
Sun Jining 2008 @ BUAA
21
4 求解代数方程组
迭代求解方法
显式迭代与隐式迭代
显式迭代:新一轮计算完全用上一轮迭代值计算 Jacobi点迭代格式 aPTPk+1=aETEk +aWTWk +aNTNk +aSTSk + b 隐式迭代:新一轮计算完全用本轮迭代值 计算 直接求解 aPTPk+1=aETEk+1 +aWTWk+1 +aNTNk+1 +aSTSk+1 + b 部分隐式迭代:新一轮计算部分用上一轮迭代 值计算,部分用本轮迭代值计算 Gauss-Seidel点迭代格式、线迭代、ADI迭代 n=0 n=1 n=2 n=3
(1) a nn
(1) a11
(1) a12 ( 2) a 22
(1) a1 n
( 2) a2 n
(n) a nn
(1) b1 ( 2) b2 ( n) bn
Sun Jining 2008 @ BUAA
10
0 0 1 直接求解方法 0 0 0 LU分解法 a a a a a a a a 0 l 0 nn
为求解非线性方程f(x)=0的根,先将其写成便 于迭代的等价方程
x ( x)
其中 ( x) 为x的连续函数
Sun Jining 2008 @ BUAA
(2.3)
14
使f(x)=0, 则也有 x* ( x* ) , 反之, 若 x * ( x * ), 则也有 f ( x * ) 0, 称 ( x) 为迭代函数 任 取一个初值 x0 , 代入式 x ( x) 的右端, 得到
当然,迭代函数
x
*
xk
( x)
Sun Jining 2008 @ BUAA 16
的构造方法是多种多样的。
上若干节回顾
f ( x) 0 x ( x)
xk 1 ( xk )
lim xn x *
n
[ A][T ] [b]
[T ] [ A*][T ] [b*]
克服发散算法通常增加计算时间,但不必然增加计算时间
Sun Jining 2008 @ BUAA
26
4 求解代数方程组
迭代求解方法
SIP迭代(强隐过程迭代)
Sun Jining 2008 @ BUAA
27
Sun Jining 2008 @ BUAA
如果由迭代格式 xk 1 ( xk ) 产生的序列 xn 收敛, 即 lim x n x *
n
则称迭代法收敛。
实际计算中当然不可能也没必要无穷多步地做 下去, 对预先给定的精度要求ε,只要某个k满足
xk xk 1
即可结束计算并取
开始 初始化温度场 求系数矩阵
时间推进 外迭代
内迭代
迭代?
迭代求解
直接求解
非线性? 瞬态? 结束
Sun Jining 2008 @ BUAA 7
4 求解代数方程组
代数方程组分类
线性代数方程组(内迭代) 求解线化了的代数方程组
[A][T]=[b] 非线性代数方程组(外迭代) 代数方程组系数的更新 [A([T])][T]=[b([T])]
n=0
Sun Jining 2008 @ BUAA
20
4 求解代数方程组
迭代求解方法
ADI迭代
Jacobi ADI迭代格式 aPTPk+1/2=aETEk+1/2 +aWTWk+1/2 +aNTNk +aSTSk + b aPTPk+1=aETEk+1/2 +aWTWk+1/2 +aNTNk+1 +aSTSk+1 + b Gauss-Seidel ADI迭代格式 aPTPk+1/2=aETEk+1/2 +aWTWk+1/2 +aNTNk +aSTSk+1/2 + b aPTPk+1=aETEk+1 +aWTWk+1/2 +aNTNk+1 +aSTSk+1 + b n=2 n=3
x1 ( x 0 )
再将 x1 代入式 x ( x) 的右端, 得到 x2 依此类推, 得到一个数列 x3 ( x2 ) …, 其一般表示
xk 1 ( xk ) (k 0,1,2,)
( x1 ) ,
(2.4)
15
式(2.4)称为求解非线性方程的简单迭代法。
lim[T ]n [T ] *
n
Sun Jining 2008 @ BUAA
17
4 求解代数方程组
迭代求解方法
点迭代
Jacobi点迭代格式 aPTPk+1=aETEk +aWTWk +aNTNk +aSTSk + b Gauss-Seidel点迭代格式 aPTPk+1=aETEk +aWTWk+1 +aNTNk +aSTSk+1 + b n=1
a11 a 21j 2 ai1 an1 a12
22 i2 n2
a1n a2 j 2 a 2 n n aij ain anj jn ann a1 j
11
12
1j
1n
21
22
2j
2n
l l l 0 ij i1 i 2 0 0 l l l l nj nn 0 0 n1 n 2A LU
u2 j 1 0
A LU
Sun Jining 2008 @ BUAA
11
4 求解代数方程组
直接求解方法
TDMA方法
Sun Jining 2008 @ BUAA
12
4 求解代数方程组
迭代求解方法
Sun Jining 2008 @ BUAA
13
对于一般的非线性方程,没有通常所说的求根 公式求其精确解,需要设计近似求解方法,即迭代法。 它是一种逐次逼近的方法,用某个固定公式反复校正 根的近似值,使之逐步精确化,最后得到满足精度要 求的结果。 2.3.1 迭代法的基本思想
收敛速度是指达到一定的残差需要用多少轮迭代
对线性代数方程组,加速收敛有两类主要思路 一类是通过超松弛,放大每步变化的量,使之加速逼近真值 一类是通过增加迭代公式中隐式迭代的比例,使每一步内各节点相互 影响更充分,影响因素更快向各个方向扩展 加速收敛算法不一定减少计算时间 计算时间不但取决于迭代步数,还取决于每迭代步的计算量 隐式比例越重,每迭代步计算量越大
Sun Jining 2008 @ BUAA
22
例:设有一正方形区域,其边界温度如图。物体 内无热源,物性为常数。试分别用Jacobi点迭代、 G-S点迭代及线迭代求解稳态导热问题(1、2、3、 4点的温度)
Jacobi点迭代
G-S点迭代
线迭代
4 求解代数方程组
迭代求解方法
加速收敛
Sun Jining 2008 @ BUAA
2
一维瞬态物理属性为常数的导热问题,时间显式格式 ——按时间步推进,每时间步做代数计算,不需要求解代数方程组 一维瞬态物理属性为常数的导热问题,时间隐式格式 ——按时间步推进,每时间步为三对角常系数矩阵线性代数方程组 一维瞬态物理属性为温度函数的导热问题,时间显式格式 ——按时间步推进,时间步做代数计算,不需要求解代数方程组 一维瞬态物理属性为温度函数的导热问题,时间隐式格式 ——按时间步推进,每时间步为三对角系数矩阵为求解变量函数 的非线性代数方程组
n=0
Sun Jining 2008 @ BUAA
18
4 求解代数方程组
迭代求解方法
亚松弛与超松弛
aPTP*=aETEk +aWTWk +aNTNk +aSTSk + b TPk+1 =fTP* +(1-f)TPk 0<f<1时为亚松弛,亚松弛可以减小每步变化量,避免发散 1<f时为超松弛,超松弛可以放大每步变化量,加速收敛 超松弛Tk+1
11 12 1j 1n 21 22 2j 2n
ai1 an1
ai 2 an 2
aij anj
ain ann
u a u 4 求解代数方程组 a 1 a u 0 0 0 1 u l u u l l 0 0 0 1 u u 1 0
可以直接求解的线性代数方程组 需要迭代求解的线性代数方程组 需要迭代求解的非线性方程组 需要时间推进的非线性方程组
Sun Jining 2008 @ BUAA
5
4 求解代数方程组
最复杂的求解过程
Sun Jining 2008 @ BUAA
6
4 求解代数方程组
最复杂的导热求解过程
1 0
u jn 1
0 0 lij
lnj
0 1 u12 0 1 0 0 0 0 lnn 0 0
A LU
AX LUX b
u1 j u1n 令 u2 n Y UX u jn 则 LY b 1
计算传热学
第4章 求解代数方程组
Solving Algebraic Equations
Sun Jining 2008 @ BUAA
1
4 求解代数方程组
物理问题分类
一维稳态物理属性为常数的导热问题
——三对角常系数矩阵线性代数方程组 一维稳态物理属性为温度函数的导热问题 ——三对角系数矩阵为求解变量函数的非线性代数方程 组
[T ]k 1 [ A*][T ]k [b*]
lim[T ]n [T ] *
n
[ A([T ])][ T ] [b([T ])]
[T ] [ A * ([T ])][T ] [b * ([T ])]
[T ]k 1 [ A * ([T ]k )][T ]k [b * ([T ]k )]
Sun Jining 2008 @ BUAA
9
4 求解代数方程组
直接求解方法
高斯消元法
(1) a1 n (1) a2 n (1) b1 (1) b2 (1) bn
(1) (1) a11 a12 (1) (1) a a 22 21 (1) (1) a a n2 n1
Sun Jining 2008 @ BUAA
25
4 求解代数方程组
迭代求解方法
克服发散
温度场变化速度比较快时,可能导致发散
对线性代数方程组,克服发散有两类主要思路 一类是通过亚松弛,减缓每步变化的量,使之不致迈出稳定区域 一类是通过增加迭代公式中显式迭代的比例,使影响因素缓慢向各个 方向扩展
T
亚松弛 Tk+1 Tk
T*
k
Sun Jining 2008 @ BUAA
k+1
k
19
4 求解代数方程组
迭代求解方法
线迭代
Jacobi线迭代格式 aPTPk+1=aETEk+1 +aWTWk+1 +aNTNk +aSTSk + b Gauss-Seidel线迭代格式 aPTPk+1=aETEk+1 +aWTWk+1 +aNTNk +aSTSk+1 + b n=1 n=2 n=3
Sun Jining 2008 @ BUAA
8
4 求解代数方程组
线性代数方程组(内迭代)
直接求解方法
高斯消元法 LU分解法 TDMA方法
ห้องสมุดไป่ตู้
迭代求解方法
Jacobi点迭代 Gauss-Seidel迭代 亚松弛与超松弛 线迭代 ADI迭代 显式迭代与隐式迭代 SIP迭代
4 求解代数方程组
物理问题分类
二维稳态物理属性为常数的导热问题
——对角占优的常系数矩阵线性代数方程组 二维瞬态物理属性为温度函数的导热问题 ——按时间步推进,每时间步为系数矩阵为求解变量 函数的非线性代数方程组
Sun Jining 2008 @ BUAA
4
4 求解代数方程组
求解方程分类
n=0 n=1
Sun Jining 2008 @ BUAA
21
4 求解代数方程组
迭代求解方法
显式迭代与隐式迭代
显式迭代:新一轮计算完全用上一轮迭代值计算 Jacobi点迭代格式 aPTPk+1=aETEk +aWTWk +aNTNk +aSTSk + b 隐式迭代:新一轮计算完全用本轮迭代值 计算 直接求解 aPTPk+1=aETEk+1 +aWTWk+1 +aNTNk+1 +aSTSk+1 + b 部分隐式迭代:新一轮计算部分用上一轮迭代 值计算,部分用本轮迭代值计算 Gauss-Seidel点迭代格式、线迭代、ADI迭代 n=0 n=1 n=2 n=3
(1) a nn
(1) a11
(1) a12 ( 2) a 22
(1) a1 n
( 2) a2 n
(n) a nn
(1) b1 ( 2) b2 ( n) bn
Sun Jining 2008 @ BUAA
10
0 0 1 直接求解方法 0 0 0 LU分解法 a a a a a a a a 0 l 0 nn
为求解非线性方程f(x)=0的根,先将其写成便 于迭代的等价方程
x ( x)
其中 ( x) 为x的连续函数
Sun Jining 2008 @ BUAA
(2.3)
14
使f(x)=0, 则也有 x* ( x* ) , 反之, 若 x * ( x * ), 则也有 f ( x * ) 0, 称 ( x) 为迭代函数 任 取一个初值 x0 , 代入式 x ( x) 的右端, 得到
当然,迭代函数
x
*
xk
( x)
Sun Jining 2008 @ BUAA 16
的构造方法是多种多样的。
上若干节回顾
f ( x) 0 x ( x)
xk 1 ( xk )
lim xn x *
n
[ A][T ] [b]
[T ] [ A*][T ] [b*]
克服发散算法通常增加计算时间,但不必然增加计算时间
Sun Jining 2008 @ BUAA
26
4 求解代数方程组
迭代求解方法
SIP迭代(强隐过程迭代)
Sun Jining 2008 @ BUAA
27
Sun Jining 2008 @ BUAA
如果由迭代格式 xk 1 ( xk ) 产生的序列 xn 收敛, 即 lim x n x *
n
则称迭代法收敛。
实际计算中当然不可能也没必要无穷多步地做 下去, 对预先给定的精度要求ε,只要某个k满足
xk xk 1
即可结束计算并取
开始 初始化温度场 求系数矩阵
时间推进 外迭代
内迭代
迭代?
迭代求解
直接求解
非线性? 瞬态? 结束
Sun Jining 2008 @ BUAA 7
4 求解代数方程组
代数方程组分类
线性代数方程组(内迭代) 求解线化了的代数方程组
[A][T]=[b] 非线性代数方程组(外迭代) 代数方程组系数的更新 [A([T])][T]=[b([T])]
n=0
Sun Jining 2008 @ BUAA
20
4 求解代数方程组
迭代求解方法
ADI迭代
Jacobi ADI迭代格式 aPTPk+1/2=aETEk+1/2 +aWTWk+1/2 +aNTNk +aSTSk + b aPTPk+1=aETEk+1/2 +aWTWk+1/2 +aNTNk+1 +aSTSk+1 + b Gauss-Seidel ADI迭代格式 aPTPk+1/2=aETEk+1/2 +aWTWk+1/2 +aNTNk +aSTSk+1/2 + b aPTPk+1=aETEk+1 +aWTWk+1/2 +aNTNk+1 +aSTSk+1 + b n=2 n=3