迭代法的收敛性与稳定性 - 松弛迭代法、迭代法的收敛性与稳定性
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Bk 0(零矩阵)(k )
定义 6.5 设有矩阵序列 Ak (aij(k ) ) Rnn 及 Ak (aij ) Rnn ,如果 n2 个数列极限存在
且有
lim
k
a (k) ij
aij
(i,
j
1,2,..., n)
则
Ak
称收敛于
A
记为 lim(k
)
。
定理 6.5
lim
k
Ak
A
lim
三 松弛法例题与程序
例 6.9 取 1.4, x(0) (1,1,1)T 用超松弛法解方程组
2x1 x2
1
x1 2x2 x3 0
x2 2x3 1.8
� � 解:由 xi(k1)
(1 )xik
aii
(bi
i 1 j 1
a x(k 1) ij j
n
aij
x
(k j
x j(k ) ) / aii xi(k )
j i
j i 1
i 1
n
(bi aij x j(k 1) aij x j(k ) ) / aii
ji
ji
(i 1,, n; k 0,1,).
� � i1
n
xi
b x(k 1) ij j
bij
x(k) j
gi
x(k) i
j 1
j i 1
a x(k1) ij j
aij x(jk ) ) / aii .
j 1
j i 1
(2) 再由 x(k) 与 ~xi(k 1) 加权平均定义 xi(k 1) ,即
x(k 1) i
(1 )xi(k)
x%i(k 1)
x(k) i
( x%i(k 1)
xi(k ) )
将(2.13)代入(2.14)得到解 Ax b 的 SOR 迭代公式.
《数值计算方法》 教案
课程名称: 数值计算方法 主讲教师: 龚佃选
授课章节
第 6 章 §6.4 — §6.5
开课学院: 理学院
讲次
第 16 讲 【共 22 讲】
授课题目
本讲 教学目的
本讲教学重点 本讲教学难点
松弛迭代法、
授课学时
2 学时
迭代法的收敛性与稳定性
掌握内容 松弛迭代法原理与求解过程;迭代法收敛条件,迭代法的收敛性分析。
L=-{{0,0,0},{A[[2,1]],0,0},{A[[3,1]],A[[3,2]],0}};
DDLN=Inverse[DD-w*L];
SOR=I1-w*DDLN.A;
R=Max[Abs[Eigenvalues[N[SOR]]]]-1
f=w*DDLN.b;
x[0]={1,1,1};
x[n_]:=SOR.x[n-1]+f;
x(k1) I (D L)1 A x(k) f
解 Ax b 的 SOR 方法为
x(0) (初始向量) x(k 1) SOR x(k ) f 其中 f (D L)1b.
k 0,1,
SOR 方法的计算公式
x(k ) ( x1(k) , xi(k ) , xn(k ) )T
x( (xii(
x4 k
1
x4 k
1
x1 k 1
x2 k 1
x3 k 1
4x4 k
4;
取 1.3 第 11 次迭代结果为
x11 0.9999646,1.0000310,0.9999953,0.9999912T ,
11 0.64 105. 2
对 取其他值,迭代次数如下表,从此例看到,松弛因子选择得好,会使 SOR 迭代法的
�
↓↓↓xx2(1(kk11))
0.4
x(k) 1
0.4x2(k )
0.7(1 x2(k ) 0.7(x1(k 1)
) x3(k
)
)
↓ ↓
x3( k
1)
0.4x3(k )
0.7(1.8
x2(k 1) )
(k 0,1, 2,)
将 x(0) (1,1,1)T 带入上式开始迭代 x(9) (1.200, 1.3996, 1.6001)T 。
x(k 1) x(k ) x
x(k 1) i
x(k) i
xi
� �
(1 )xi(k)
aii
(bi
i 1 j 1
a x(k 1) ij j
n
aij x(jk ) )
j i 1
(i 1, 2,, n)
按上式计算 Ax b 的近似解序列的方法称为松弛法。 称为松弛因子。
当 1 时称为低松弛; 1 是 Gauss-Seidel 迭代; 1 时称为超松弛法。
收敛大大加速,本例中 1.3 是最佳松弛因子。
松弛因子
满足误差 x k x* 105 的迭代次数 2
1.0
22
1.1
17
1.2
12
1.3
11
1.4
14
1.5
17
1.6
23
1.7
33
1.8
53
1.9
109
结论:松弛法收敛的必要条件是: 0 2
前面的判定定理虽然给出了判别迭代收敛的充要条件,但要求逆矩阵和特征值。而
(充分性)
引用:设A为n阶方阵,则对任意的 ,存在一种矩阵的范数 . 使得: A ( A)
若
(A) 1,则对
1
( 2
A)
1,必存在一种范数
.
,使得
A
(A)
1
( A) 2
1
lim A k 0
k
而: Ak A k (范数定义)
于是: lim Ak =lim A k 0
k
k
定理 6.8 (迭代法基本原理)
Table[x[n],{n,0,16}];
MatrixForm[%]//N
LinearSolve[A,b]
运行结果:
1.
1.
1.
1.
1.
1.56
1.
1.392 1.532
1.2744
1.3528 1.602
1.1372
1.40376 1.59164
1.22775 1.39396 1.60108
1.18467 1.40106 1.59889
为 Gauss-Seidel 迭代法加速,记:
x x1, x2 ,, xn T x(k1) x(k)
其中x(k1)由Gauss-Seidel 迭代公式得到,于是有
x↓
↓
(k 1)
1
b x b x b x g 12
(k )
2
13
(k 3
)
1n
(k )
n
1
x b x ↓↓
↓
(k 1)
2
1.6
1.20001 1.4
1.6
精确解: x (1.2, 1.4, 1.6)T
例 6.10 用 SOR 方法解方程组
4 1 1 1 x1 1
1
1
1
4 1 1
1 4 1
1
1
4
x2 x3 x4
1 1 1
验证:松弛因子与迭代次数的关系,它的精确解为 x* 1,1,1,1T 。
解:取 x 0 0, ,迭代公式为
x1 k x2 k x3 k
1 1 1
x1 k x2 k x3 k
1 1 1
4x1 k x1 k 1 x1 k 1
x2 k x3 k x4 k 4; 4x2 k x3 k x4 k 4 ; x2 k1 4x3 k x4 k 4 ;
熟悉内容 松弛迭代法原理;相关概念;迭代法收敛条件,迭代法的收敛性分析。
了解内容 对迭代结果进行误差估计。
松弛迭代法原理;相关概念;迭代法收敛条件。 迭代法收敛条件,迭代法的收敛性分析。
教学过程
备注
§6.4 松弛迭代法
松弛法是将 Gauss-Seidel 迭代法稍加改进而得到的一种加速迭代法,是解大型稀疏矩阵 方程组的有效方法之一。 一 松弛法的基本思想
Mathmatica 程序设计:
A={{2,-1,0},{-1,2,-1},{0,-1,2}};
MatrixForm[%];
b={1,0,1.8};
w=1.4;
I1=IdentityMatrix[3];;
DD={{A[[1,1]],0,0},{0,A[[2,2]],0},{0,0,A[[3,3]]}};
设线性方程组
Ax b
(6.1)
其中 A (aij ) Rnn 为非奇异矩阵,记 x* 为(6.1)精确解,且设有等价的方程组
Ax b x Bx f .
于是
x* Bx* f
设有解 Ax b 的一阶定常迭代法
x(k 1) Bx(k) f , (k 0,1,2)
(6.2) (6.3)
↓
(k 1) 21 1
b x b x g
23
(k 3
)
2n
(k )
n
2
x b x b x b x ↓
↓↓
(k 1)
n
(k 1)
n1 1
n2
(k 2
1)
( k 1) n,n1 n1
g n
x(0)
(x1(0) ,, xn(0) )T ,
xi
xi
x (k 1) i
i 1
(bi
xi(k ) aij x j (k 1)
0 2 也只是松弛法收敛的必要条件,应用不方便。下一节会对一些特殊的矩阵给出常用
的判别收敛的条件。
§6.5 迭代法的收敛性与稳定性
一、阶定常迭代法的基本定理
矩阵的谱半径:设 i (i 1,2,...n) 为 n 阶方阵的特征值, A 的谱半径定义为:
(
A)
max{
1in
i
}
A 的谱定义为:{1, 2 ,..., n}
有意义的问题是:迭代矩阵 B 满足什么条件时,由迭代法产生的向量序列 x(k) 收敛到
x* . 引进误差向量 (k) x(k) x (k 0,1,2,). 由(6.3)式减(6.2)得到误差向量的递推公
式
(k 1) B (k ) , (k ) Bk (0) (k 0,1,2,). 研究迭代法(3.3)收敛性问题就是要研究迭代矩阵 B 满足什么条件时,有
选取分裂矩阵 M 为带参数下三角阵
其中 0 为可选择的松弛因子.
M 1 (D L)
松弛因子的选取对收敛速度影响极大,但目前尚无可供实用的计算最佳松弛因子的方法。
实际计算时,通常是根据系数矩阵的性质及实际计算经验,通过试算来确定松弛因子的值。
二 松弛法的矩阵表示
构造以 SOR I (D L)1 A 为迭代矩阵的迭代公式
即 lim Ak 0 k
设有方程组 x Bx f , 及一阶定常迭代法
x(k1) Bx(k ) f
对任意选取初始向量 x(0) ,迭代法收敛的充要条件是 (B) 1
证明: (k) x(k ) x B (k 1) ... Bk (0) 0
常用结论
1) ( Ak ) [( A)]k Ax x Ak x k x
注意矩阵的 谱半径与范 数的关系。
2) (A) A
事实上:对 A 的 i 及特征向量 ui
i ui iui Aui A ui i A
由 i 的任意性
( A)
max
1in
i
A ,当 A 对称时, ( A)
A2。
lim
k
Ak
lim Bk
k
0 0
00 .
定理 6.7 设 A
aij
nn
,则
lim
k
Ak
0 (零矩阵)的充要条件:
A 1
证明:(必要性)
lim Ak 0 lim Ak 0
k
k
0 ( Ak ) [ ( A)]k Ak
lim[( A)]k 0 ( A) 1 k
k
Ak
A
0, 其中||·||为矩阵的任意一种算子范数.
定理 6.6
lim
k
Ak
A
x Rn
都有
lim
k
Ak
x
Ax 。
例 6.11 设有矩阵序列 Ak ,其中 Ak Bk 而
B
0
1
,
B
2
2 0
2 2
,,
B
k
k 0
kk 1 k
,
且设 1 ,考查矩阵序列极限.
解:显然, 当 1 时, 则有
0) (x1(0) , xn(0) )T
k1) xi(k ) xi , 1,2,, n; k 0,1,),
为松弛因子
(或xxii((0kx)i1(1)k,21(),x(11(0),x,ni(k;))k,xxi(nk(0)0)()b,1Ti),(biji11aiijjx11(jakij1x) (jk1jn) iaijjxni(j1ka) i)j
x
(k j
)
)
aii
aii
SOR 迭代法是 Gauss—Seidel 迭代法的一种修正,可由下述思想得到.
设已知
x(k)
及已计算
x(k 1)
的分量
x
(k j
1)
(
j
1,2,...,i
1)
(1) 首先用 Gauss—Seidel 迭代法定义辅助量 ~xi(k 1) ,
� � i1
n
x%i(k1) (bi
� �
1 aii
(bi
i1
a x(k 1) ij j j 1
n
aij x(jk ) ) xi(k )
j i 1
(i 1, 2,, n)
可以把 x 看作 Gauss-Seidel 迭代的修正项,即第 k 次近似解 x(k) 以此项修正后得到新
的近似解。
x(k1) x(k ) x 松弛法是将 x 乘上一个参数因子 作为修正项而得到新的近似解,具体公式为
1.20687 1.39917 1.60024
1.19667 1.40021 1.59984
1.20148 1.39988 1.60004
1.19932 1.40004 1.59998
1.2003
1.39998 1.60001
1.19987 1.40001 1.6
1.20006 1.4
1.6
1.19998 1.4
定义 6.5 设有矩阵序列 Ak (aij(k ) ) Rnn 及 Ak (aij ) Rnn ,如果 n2 个数列极限存在
且有
lim
k
a (k) ij
aij
(i,
j
1,2,..., n)
则
Ak
称收敛于
A
记为 lim(k
)
。
定理 6.5
lim
k
Ak
A
lim
三 松弛法例题与程序
例 6.9 取 1.4, x(0) (1,1,1)T 用超松弛法解方程组
2x1 x2
1
x1 2x2 x3 0
x2 2x3 1.8
� � 解:由 xi(k1)
(1 )xik
aii
(bi
i 1 j 1
a x(k 1) ij j
n
aij
x
(k j
x j(k ) ) / aii xi(k )
j i
j i 1
i 1
n
(bi aij x j(k 1) aij x j(k ) ) / aii
ji
ji
(i 1,, n; k 0,1,).
� � i1
n
xi
b x(k 1) ij j
bij
x(k) j
gi
x(k) i
j 1
j i 1
a x(k1) ij j
aij x(jk ) ) / aii .
j 1
j i 1
(2) 再由 x(k) 与 ~xi(k 1) 加权平均定义 xi(k 1) ,即
x(k 1) i
(1 )xi(k)
x%i(k 1)
x(k) i
( x%i(k 1)
xi(k ) )
将(2.13)代入(2.14)得到解 Ax b 的 SOR 迭代公式.
《数值计算方法》 教案
课程名称: 数值计算方法 主讲教师: 龚佃选
授课章节
第 6 章 §6.4 — §6.5
开课学院: 理学院
讲次
第 16 讲 【共 22 讲】
授课题目
本讲 教学目的
本讲教学重点 本讲教学难点
松弛迭代法、
授课学时
2 学时
迭代法的收敛性与稳定性
掌握内容 松弛迭代法原理与求解过程;迭代法收敛条件,迭代法的收敛性分析。
L=-{{0,0,0},{A[[2,1]],0,0},{A[[3,1]],A[[3,2]],0}};
DDLN=Inverse[DD-w*L];
SOR=I1-w*DDLN.A;
R=Max[Abs[Eigenvalues[N[SOR]]]]-1
f=w*DDLN.b;
x[0]={1,1,1};
x[n_]:=SOR.x[n-1]+f;
x(k1) I (D L)1 A x(k) f
解 Ax b 的 SOR 方法为
x(0) (初始向量) x(k 1) SOR x(k ) f 其中 f (D L)1b.
k 0,1,
SOR 方法的计算公式
x(k ) ( x1(k) , xi(k ) , xn(k ) )T
x( (xii(
x4 k
1
x4 k
1
x1 k 1
x2 k 1
x3 k 1
4x4 k
4;
取 1.3 第 11 次迭代结果为
x11 0.9999646,1.0000310,0.9999953,0.9999912T ,
11 0.64 105. 2
对 取其他值,迭代次数如下表,从此例看到,松弛因子选择得好,会使 SOR 迭代法的
�
↓↓↓xx2(1(kk11))
0.4
x(k) 1
0.4x2(k )
0.7(1 x2(k ) 0.7(x1(k 1)
) x3(k
)
)
↓ ↓
x3( k
1)
0.4x3(k )
0.7(1.8
x2(k 1) )
(k 0,1, 2,)
将 x(0) (1,1,1)T 带入上式开始迭代 x(9) (1.200, 1.3996, 1.6001)T 。
x(k 1) x(k ) x
x(k 1) i
x(k) i
xi
� �
(1 )xi(k)
aii
(bi
i 1 j 1
a x(k 1) ij j
n
aij x(jk ) )
j i 1
(i 1, 2,, n)
按上式计算 Ax b 的近似解序列的方法称为松弛法。 称为松弛因子。
当 1 时称为低松弛; 1 是 Gauss-Seidel 迭代; 1 时称为超松弛法。
收敛大大加速,本例中 1.3 是最佳松弛因子。
松弛因子
满足误差 x k x* 105 的迭代次数 2
1.0
22
1.1
17
1.2
12
1.3
11
1.4
14
1.5
17
1.6
23
1.7
33
1.8
53
1.9
109
结论:松弛法收敛的必要条件是: 0 2
前面的判定定理虽然给出了判别迭代收敛的充要条件,但要求逆矩阵和特征值。而
(充分性)
引用:设A为n阶方阵,则对任意的 ,存在一种矩阵的范数 . 使得: A ( A)
若
(A) 1,则对
1
( 2
A)
1,必存在一种范数
.
,使得
A
(A)
1
( A) 2
1
lim A k 0
k
而: Ak A k (范数定义)
于是: lim Ak =lim A k 0
k
k
定理 6.8 (迭代法基本原理)
Table[x[n],{n,0,16}];
MatrixForm[%]//N
LinearSolve[A,b]
运行结果:
1.
1.
1.
1.
1.
1.56
1.
1.392 1.532
1.2744
1.3528 1.602
1.1372
1.40376 1.59164
1.22775 1.39396 1.60108
1.18467 1.40106 1.59889
为 Gauss-Seidel 迭代法加速,记:
x x1, x2 ,, xn T x(k1) x(k)
其中x(k1)由Gauss-Seidel 迭代公式得到,于是有
x↓
↓
(k 1)
1
b x b x b x g 12
(k )
2
13
(k 3
)
1n
(k )
n
1
x b x ↓↓
↓
(k 1)
2
1.6
1.20001 1.4
1.6
精确解: x (1.2, 1.4, 1.6)T
例 6.10 用 SOR 方法解方程组
4 1 1 1 x1 1
1
1
1
4 1 1
1 4 1
1
1
4
x2 x3 x4
1 1 1
验证:松弛因子与迭代次数的关系,它的精确解为 x* 1,1,1,1T 。
解:取 x 0 0, ,迭代公式为
x1 k x2 k x3 k
1 1 1
x1 k x2 k x3 k
1 1 1
4x1 k x1 k 1 x1 k 1
x2 k x3 k x4 k 4; 4x2 k x3 k x4 k 4 ; x2 k1 4x3 k x4 k 4 ;
熟悉内容 松弛迭代法原理;相关概念;迭代法收敛条件,迭代法的收敛性分析。
了解内容 对迭代结果进行误差估计。
松弛迭代法原理;相关概念;迭代法收敛条件。 迭代法收敛条件,迭代法的收敛性分析。
教学过程
备注
§6.4 松弛迭代法
松弛法是将 Gauss-Seidel 迭代法稍加改进而得到的一种加速迭代法,是解大型稀疏矩阵 方程组的有效方法之一。 一 松弛法的基本思想
Mathmatica 程序设计:
A={{2,-1,0},{-1,2,-1},{0,-1,2}};
MatrixForm[%];
b={1,0,1.8};
w=1.4;
I1=IdentityMatrix[3];;
DD={{A[[1,1]],0,0},{0,A[[2,2]],0},{0,0,A[[3,3]]}};
设线性方程组
Ax b
(6.1)
其中 A (aij ) Rnn 为非奇异矩阵,记 x* 为(6.1)精确解,且设有等价的方程组
Ax b x Bx f .
于是
x* Bx* f
设有解 Ax b 的一阶定常迭代法
x(k 1) Bx(k) f , (k 0,1,2)
(6.2) (6.3)
↓
(k 1) 21 1
b x b x g
23
(k 3
)
2n
(k )
n
2
x b x b x b x ↓
↓↓
(k 1)
n
(k 1)
n1 1
n2
(k 2
1)
( k 1) n,n1 n1
g n
x(0)
(x1(0) ,, xn(0) )T ,
xi
xi
x (k 1) i
i 1
(bi
xi(k ) aij x j (k 1)
0 2 也只是松弛法收敛的必要条件,应用不方便。下一节会对一些特殊的矩阵给出常用
的判别收敛的条件。
§6.5 迭代法的收敛性与稳定性
一、阶定常迭代法的基本定理
矩阵的谱半径:设 i (i 1,2,...n) 为 n 阶方阵的特征值, A 的谱半径定义为:
(
A)
max{
1in
i
}
A 的谱定义为:{1, 2 ,..., n}
有意义的问题是:迭代矩阵 B 满足什么条件时,由迭代法产生的向量序列 x(k) 收敛到
x* . 引进误差向量 (k) x(k) x (k 0,1,2,). 由(6.3)式减(6.2)得到误差向量的递推公
式
(k 1) B (k ) , (k ) Bk (0) (k 0,1,2,). 研究迭代法(3.3)收敛性问题就是要研究迭代矩阵 B 满足什么条件时,有
选取分裂矩阵 M 为带参数下三角阵
其中 0 为可选择的松弛因子.
M 1 (D L)
松弛因子的选取对收敛速度影响极大,但目前尚无可供实用的计算最佳松弛因子的方法。
实际计算时,通常是根据系数矩阵的性质及实际计算经验,通过试算来确定松弛因子的值。
二 松弛法的矩阵表示
构造以 SOR I (D L)1 A 为迭代矩阵的迭代公式
即 lim Ak 0 k
设有方程组 x Bx f , 及一阶定常迭代法
x(k1) Bx(k ) f
对任意选取初始向量 x(0) ,迭代法收敛的充要条件是 (B) 1
证明: (k) x(k ) x B (k 1) ... Bk (0) 0
常用结论
1) ( Ak ) [( A)]k Ax x Ak x k x
注意矩阵的 谱半径与范 数的关系。
2) (A) A
事实上:对 A 的 i 及特征向量 ui
i ui iui Aui A ui i A
由 i 的任意性
( A)
max
1in
i
A ,当 A 对称时, ( A)
A2。
lim
k
Ak
lim Bk
k
0 0
00 .
定理 6.7 设 A
aij
nn
,则
lim
k
Ak
0 (零矩阵)的充要条件:
A 1
证明:(必要性)
lim Ak 0 lim Ak 0
k
k
0 ( Ak ) [ ( A)]k Ak
lim[( A)]k 0 ( A) 1 k
k
Ak
A
0, 其中||·||为矩阵的任意一种算子范数.
定理 6.6
lim
k
Ak
A
x Rn
都有
lim
k
Ak
x
Ax 。
例 6.11 设有矩阵序列 Ak ,其中 Ak Bk 而
B
0
1
,
B
2
2 0
2 2
,,
B
k
k 0
kk 1 k
,
且设 1 ,考查矩阵序列极限.
解:显然, 当 1 时, 则有
0) (x1(0) , xn(0) )T
k1) xi(k ) xi , 1,2,, n; k 0,1,),
为松弛因子
(或xxii((0kx)i1(1)k,21(),x(11(0),x,ni(k;))k,xxi(nk(0)0)()b,1Ti),(biji11aiijjx11(jakij1x) (jk1jn) iaijjxni(j1ka) i)j
x
(k j
)
)
aii
aii
SOR 迭代法是 Gauss—Seidel 迭代法的一种修正,可由下述思想得到.
设已知
x(k)
及已计算
x(k 1)
的分量
x
(k j
1)
(
j
1,2,...,i
1)
(1) 首先用 Gauss—Seidel 迭代法定义辅助量 ~xi(k 1) ,
� � i1
n
x%i(k1) (bi
� �
1 aii
(bi
i1
a x(k 1) ij j j 1
n
aij x(jk ) ) xi(k )
j i 1
(i 1, 2,, n)
可以把 x 看作 Gauss-Seidel 迭代的修正项,即第 k 次近似解 x(k) 以此项修正后得到新
的近似解。
x(k1) x(k ) x 松弛法是将 x 乘上一个参数因子 作为修正项而得到新的近似解,具体公式为
1.20687 1.39917 1.60024
1.19667 1.40021 1.59984
1.20148 1.39988 1.60004
1.19932 1.40004 1.59998
1.2003
1.39998 1.60001
1.19987 1.40001 1.6
1.20006 1.4
1.6
1.19998 1.4