数值分析第三章 线性方程组的迭代法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
yi xi i =1,2,…,n
max
1i n
xi
yi
?
n n
k=M? y
输出迭代 失败标志
y
输出
y1, y2,… yn
§ 3.3 高斯-塞德尔(Gauss-Seidel)迭代法
§ 3.3.1 高斯-塞德尔迭代法的基本思想
在Jacobi迭代法中,每次迭代只用到前一次
的迭代值,若每次迭代充分利用当前最新的迭代值
an1
an2
ann1 0
a1n
a2n
an1n
0
记作 A = D + L + U
则 Ax b 等价于 (D L U )x b
即 Dx (L U )x b 因为 aii 0(i 1,2,, n)
x D1(L U )x D1b
0.9998813 )T
计算结果表明,此迭代过程收敛于方程组的精
确解x*= (3, 2, 1)T。
考察一般的方程组,将n元线性方程组
a11x1 a12 x2 a1n xn b1
a21 x1
a22 x2
a2n xn
b2
an1x1 an2 x2 ann xn bn
A=d+L+U, 则超松弛迭代公式用矩阵表示为
x(k1) (1 )x(k ) D1(b Lx(k1) Ux(k ) )
或 Dx(k1) (1 )Dx(k) (b Lx(k1) Ux(k) )
故 (D L)x(k1) (1)D U x(k) b
§3.2.2 雅可比迭代法的矩阵表示
设方程组 Ax b 的系数矩阵A非奇异,且主对
角元素 aii 0(i 1,2,, n) ,则可将A分裂成
a11
A
a22
0
a21
0
0 a12 a13
0 a23
a31
a32
0
0
ann
其具体计算公式如下:
⑴ 用高斯—塞德尔迭代法定义辅助量。
~xi(k 1)
1 aii
bi
i 1
aij x j (k 1)
j 1
n
aij
x
j
(
k
)
,
(i
j i 1
1,2,...,n)
⑵
把
取为 与 x (k1) i
x (k ) i
~xi(k 1) 的加权平均,即
15 15,
xx2(1(55))
33 33,
迭代解离精确解 x1 1, x2 1 越来越远 迭代不收敛
§3.2 雅可比(Jacobi)迭代法
§3.2.1雅可比迭代法算法构造 例2 用雅可比迭代法求解方程组
8x1 3x2 2x3 20 4x1 11x2 x3 33
,即在求
x (k 1) i
时用新分量 x1(k
1)
,
x 2( k
1)
,,
x (k 1) i 1
代替旧分量
x1(
k
)
,
x2(k
)
,,
x(k) i 1
, 就得到高斯-赛德尔迭
代法。其迭代法格式为:
x(k1) i
1 aii
(bi
i1
aij
x
(k j
1)
j 1
n
aij
x
x (k 1) 1
x (k 1) 2
x1(k 2x1(k)
)
x(k) 2
4x2(k )
3 3
取
x (0) 1
x (0) 2
0
计算得
xx2(1(11))
3 3,
xx2(1(22))
3 3,
xx2(1(33))
9 9,
xx2(1(44))
写据成此建立n 迭ai代j x公j 式 bi
i 1,2,, n
上若xi式(xkai称1ii)为0ja1解a11i(iiii方((bb程1ii,2组,jj的njn,1i n1Jaa)aijcxio,j分(jxbk)ij离)迭) 代出公i变i式量1,。21x,,2i , n , n j i
, 故 x* 是方程组 Ax b 的解。
对于给定的方程组可以构造各种迭代公式。 并非全部收敛
例1 用迭代法求解线性方程组
2x1 2x1
x2 5x2
3
3
解 构造方程组的等价方程组
x1 x2
x1 2x1
x2 3 4x2 3
据此建立迭代公式
2 x203
20
44x1(xk )1
x3(k)x333 33
xx3(3k
1) 11 1122
66x1(xk1) 33x2(xk )2
36 36
取初始向量
x (0)
( x1(0)
,
x
(0) 2
,
x3(0)
)T
(0,0,0)T
进行迭代, 可以逐步得出一个近似解的序列:
§ 3.3.3 高斯—塞德尔迭代算法实现
高斯-塞德尔迭代算法的计算步骤与流程图
与雅可比迭代法大致相同,只是一旦求出变元 xi
的某个新值
x (k 1) i
后,
就改用新值
x (k 1) i
替代老
值
x (k ) i
,再进行这一步剩下的计算。
§ 3.4 超松弛迭代法(SOR方法) 使用迭代法的困难在于难以估计其计算
,则
这样便得到一个迭代公式
x(k1) D1(L U )x(k ) D1b
令
B D1(L U ) f D1b
则有
x (k 1) Bx (k ) f (k = 0,1,2…)
称为雅可比迭代公式, B称为雅可比迭代矩阵
雅可比迭代矩阵表示法,主要是用来讨论其收敛 性,实际计算中,要用雅可比迭代法公式的分量 形式。即
( x1(k ) , x2(k ) , x3(k ) )
(k=1, 2, …)
直到求得的近似解能达到预先要求的精度,
则迭代过程终止,以最后得到的近似解作为线
性方程组的解。 当迭代到第10次有
x (10)
(
x (10) 1
,
x (10) 2
,
x (10) 3
)T
(3.000032 ,
1.999838 ,
出一个等价同解方程组 x Gx d 将上式改写成迭代式
x (k 1) Gx (k ) d (k 0,1,)
选定初始向量 x(0) x1(0) , x2(0) ,, xn(0) T ,反复不断
地使用迭代式逐步逼近方程组的精确解,直到 满足精度要求为止。这种方法称为迭代法
§3.1 迭代法的基本思想
迭代法的基本思想是将线性方程组转化 为便于迭代的等价方程组,对任选一组初始 值 xi(0) (i 1,2,, n) ,按某种计算规则,不断地 对所得到的值进行修正,最终获得满足精度 要求的方程组的近似解。
设 A Rnn 非奇异,b Rn,则线性方程组
Ax b 有惟一解 x A1b ,经过变换构造
x1(
k
1)
1 a11
(a12 x2(k )
a13 x3(k )
a1n xn(k )
Hale Waihona Puke Baidu
b1 )
x2(k
1)
1 a22
(a21 x1(k )
a23 x3(k )
a2n
x
(k n
)
b2 )
xn(k
1)
1 ann
(an1 x1(k )
则超松弛迭代 公式可写成
x(k1) L x(k) f
例4 用SOR法求解线性方程组
该方程组4的x1 精 2确x2解 4xx(*3) 10(2,1,1)T 如值只果x(0需取) ω迭取(0=,代0ω1,0(=2)即42T10,xx高要.次411 6斯达便,11— 到07可要xx同塞22达求样德到1精9尔0x精度迭x3 3,度代x需(k法要37要1))求和迭x同代(k)一11初01次06
0.4925 )T
0.4939 )T 0.4936 )T
1,2,3)
解 GaussSeidel 迭代格式为
x1(k x2(k
1) 1)
( (2x1(k 1)
x(k) 2
x(k) 3
1)
/
8
x(k) 3
4)
/ 10
x3(k
1)
( x1(k 1)
显然对任何一个ω值,(D+ωL)非奇异, (因为假设 aii 0,i 1,2,, n )于是超松弛迭代公式为
x(k1) (D L)1 (1)D U x(k) (D L)1b
令 L (D L)1 (1)D U
f (D L)1b
如果 x(k ) x1(k ) , x2(k ) ,, xn(k ) T
存在极限 x* x1* , x2* ,, xn* T
则称迭代法是收敛的,否则就是发散的。 收敛时,在迭代公式
x(k1) Gx (k) d (k 0,1,) 中当 k 时,x(k) x* , 则 x* Gx* d
精确解x*= (3, 2, 1)T
6x1 3x2 12x3 36
解建:立从迭方代程公组式的三个方程中分离出 x1, x2 和 x3
xx1(1k xx2(2k
1)
1 8
1) 111111
31x2(k 8
)3x22x3(k )
式中系数ω 称为松弛因子,当ω =1时,便为高斯塞德尔迭代法。为了保证迭代过程收敛,要求 0<ω< 2。 当0<ω< 1时,低松弛法;当1<ω< 2时称为超松弛法。但通常统称为超松弛法(SOR) 。
§ 3.4.2超松弛迭代法的矩阵表示 设线性方程组 Ax=b 的系数矩阵A非奇异,且主对角
元素 aii 0(i 1,2,, n) , 则将A分裂成
x(k 1) 2
3) / 5
取初始迭代向量 x(0) (0 ,0 ,0)T ,迭代结果为:
§ 3.3.2 Gauss—Seidel 迭代法的矩阵表示
将A分裂成A =D+L+U,则Ax b 等价于 (D+L+U )x = b
于是,则高斯—塞德尔迭代过程
Dx(k1) Lx(k1) Ux(k) b
§ 3.4.1超松弛迭代法的基本思想
超松弛迭代法目的是为了提高迭代法的收敛速
度,在高斯—塞德尔迭代公式的基础上作一些修改
。这种方法是将前一步的结果
x
( i
k
)与高斯-塞德尔迭
代方法的迭代值 ~xi(k1) 适当加权平均,期望获得更好
的近似值
x (k 1) i
。是解大型稀疏矩阵方程组的有效方
法之一,有着广泛的应用。
(k j
)
)
j i 1
(i=1,2,…,n k=0,1,2,…)
例3 用Gaxu(s1)s (S0e.i1d2e5l0迭, 代0格.37式50解, 方程0组.5000 )T
x*精≈ 确xxxx82x要((i((341x4x2))))11求x为((x(1x0200i(02..ε3.222)x22352=454xx050433.0,,,0x.003 0105300.5..333,0400553961,,,(i
x (k 1) i
(1 )xi(k )
~xi(k 1)
x(k) i
(~xi(k 1)
x(k) i
)
合并表示为:
x(k1) i
(1 )xi(k)
aii
(bi
i 1
a x (k 1) ij j
j 1
n
aij
x
(k j
)
)
j i 1
an2 x2(k )
an
n1 xn(k)1
bn )
(k=0,1,2,…)
3.2.1
雅 可 比 迭 代 法 的 算 法 实 现
输入 aij,bi,和 方程阶数 n,ε ,M
1k
n
(bi aij x j ) / aii yi j 1 j i
i 1,2,, n
k+1k
因为 D 0 ,所以 D L D 0
故
(D L)x(k1) Ux(k) b
x(k1) (D L)1Ux(k) (D L)1b
令 G1 (D L)1U , d1 (D L)1b
则高斯-塞德尔迭代形式为:
x (k 1) G1 x (k ) d1
量。有时迭代过程虽然收敛,但由于收敛速 度缓慢,使计算量变得很大而失去使用价值 。因此,迭代过程的加速具有重要意义。逐 次超松弛迭代(Successive Over relaxatic Method,简称SOR方法)法,可以看作是 带参数的高斯—塞德尔迭代法,实质上是高 斯-塞德尔迭代的一种加速方法。
max
1i n
xi
yi
?
n n
k=M? y
输出迭代 失败标志
y
输出
y1, y2,… yn
§ 3.3 高斯-塞德尔(Gauss-Seidel)迭代法
§ 3.3.1 高斯-塞德尔迭代法的基本思想
在Jacobi迭代法中,每次迭代只用到前一次
的迭代值,若每次迭代充分利用当前最新的迭代值
an1
an2
ann1 0
a1n
a2n
an1n
0
记作 A = D + L + U
则 Ax b 等价于 (D L U )x b
即 Dx (L U )x b 因为 aii 0(i 1,2,, n)
x D1(L U )x D1b
0.9998813 )T
计算结果表明,此迭代过程收敛于方程组的精
确解x*= (3, 2, 1)T。
考察一般的方程组,将n元线性方程组
a11x1 a12 x2 a1n xn b1
a21 x1
a22 x2
a2n xn
b2
an1x1 an2 x2 ann xn bn
A=d+L+U, 则超松弛迭代公式用矩阵表示为
x(k1) (1 )x(k ) D1(b Lx(k1) Ux(k ) )
或 Dx(k1) (1 )Dx(k) (b Lx(k1) Ux(k) )
故 (D L)x(k1) (1)D U x(k) b
§3.2.2 雅可比迭代法的矩阵表示
设方程组 Ax b 的系数矩阵A非奇异,且主对
角元素 aii 0(i 1,2,, n) ,则可将A分裂成
a11
A
a22
0
a21
0
0 a12 a13
0 a23
a31
a32
0
0
ann
其具体计算公式如下:
⑴ 用高斯—塞德尔迭代法定义辅助量。
~xi(k 1)
1 aii
bi
i 1
aij x j (k 1)
j 1
n
aij
x
j
(
k
)
,
(i
j i 1
1,2,...,n)
⑵
把
取为 与 x (k1) i
x (k ) i
~xi(k 1) 的加权平均,即
15 15,
xx2(1(55))
33 33,
迭代解离精确解 x1 1, x2 1 越来越远 迭代不收敛
§3.2 雅可比(Jacobi)迭代法
§3.2.1雅可比迭代法算法构造 例2 用雅可比迭代法求解方程组
8x1 3x2 2x3 20 4x1 11x2 x3 33
,即在求
x (k 1) i
时用新分量 x1(k
1)
,
x 2( k
1)
,,
x (k 1) i 1
代替旧分量
x1(
k
)
,
x2(k
)
,,
x(k) i 1
, 就得到高斯-赛德尔迭
代法。其迭代法格式为:
x(k1) i
1 aii
(bi
i1
aij
x
(k j
1)
j 1
n
aij
x
x (k 1) 1
x (k 1) 2
x1(k 2x1(k)
)
x(k) 2
4x2(k )
3 3
取
x (0) 1
x (0) 2
0
计算得
xx2(1(11))
3 3,
xx2(1(22))
3 3,
xx2(1(33))
9 9,
xx2(1(44))
写据成此建立n 迭ai代j x公j 式 bi
i 1,2,, n
上若xi式(xkai称1ii)为0ja1解a11i(iiii方((bb程1ii,2组,jj的njn,1i n1Jaa)aijcxio,j分(jxbk)ij离)迭) 代出公i变i式量1,。21x,,2i , n , n j i
, 故 x* 是方程组 Ax b 的解。
对于给定的方程组可以构造各种迭代公式。 并非全部收敛
例1 用迭代法求解线性方程组
2x1 2x1
x2 5x2
3
3
解 构造方程组的等价方程组
x1 x2
x1 2x1
x2 3 4x2 3
据此建立迭代公式
2 x203
20
44x1(xk )1
x3(k)x333 33
xx3(3k
1) 11 1122
66x1(xk1) 33x2(xk )2
36 36
取初始向量
x (0)
( x1(0)
,
x
(0) 2
,
x3(0)
)T
(0,0,0)T
进行迭代, 可以逐步得出一个近似解的序列:
§ 3.3.3 高斯—塞德尔迭代算法实现
高斯-塞德尔迭代算法的计算步骤与流程图
与雅可比迭代法大致相同,只是一旦求出变元 xi
的某个新值
x (k 1) i
后,
就改用新值
x (k 1) i
替代老
值
x (k ) i
,再进行这一步剩下的计算。
§ 3.4 超松弛迭代法(SOR方法) 使用迭代法的困难在于难以估计其计算
,则
这样便得到一个迭代公式
x(k1) D1(L U )x(k ) D1b
令
B D1(L U ) f D1b
则有
x (k 1) Bx (k ) f (k = 0,1,2…)
称为雅可比迭代公式, B称为雅可比迭代矩阵
雅可比迭代矩阵表示法,主要是用来讨论其收敛 性,实际计算中,要用雅可比迭代法公式的分量 形式。即
( x1(k ) , x2(k ) , x3(k ) )
(k=1, 2, …)
直到求得的近似解能达到预先要求的精度,
则迭代过程终止,以最后得到的近似解作为线
性方程组的解。 当迭代到第10次有
x (10)
(
x (10) 1
,
x (10) 2
,
x (10) 3
)T
(3.000032 ,
1.999838 ,
出一个等价同解方程组 x Gx d 将上式改写成迭代式
x (k 1) Gx (k ) d (k 0,1,)
选定初始向量 x(0) x1(0) , x2(0) ,, xn(0) T ,反复不断
地使用迭代式逐步逼近方程组的精确解,直到 满足精度要求为止。这种方法称为迭代法
§3.1 迭代法的基本思想
迭代法的基本思想是将线性方程组转化 为便于迭代的等价方程组,对任选一组初始 值 xi(0) (i 1,2,, n) ,按某种计算规则,不断地 对所得到的值进行修正,最终获得满足精度 要求的方程组的近似解。
设 A Rnn 非奇异,b Rn,则线性方程组
Ax b 有惟一解 x A1b ,经过变换构造
x1(
k
1)
1 a11
(a12 x2(k )
a13 x3(k )
a1n xn(k )
Hale Waihona Puke Baidu
b1 )
x2(k
1)
1 a22
(a21 x1(k )
a23 x3(k )
a2n
x
(k n
)
b2 )
xn(k
1)
1 ann
(an1 x1(k )
则超松弛迭代 公式可写成
x(k1) L x(k) f
例4 用SOR法求解线性方程组
该方程组4的x1 精 2确x2解 4xx(*3) 10(2,1,1)T 如值只果x(0需取) ω迭取(0=,代0ω1,0(=2)即42T10,xx高要.次411 6斯达便,11— 到07可要xx同塞22达求样德到1精9尔0x精度迭x3 3,度代x需(k法要37要1))求和迭x同代(k)一11初01次06
0.4925 )T
0.4939 )T 0.4936 )T
1,2,3)
解 GaussSeidel 迭代格式为
x1(k x2(k
1) 1)
( (2x1(k 1)
x(k) 2
x(k) 3
1)
/
8
x(k) 3
4)
/ 10
x3(k
1)
( x1(k 1)
显然对任何一个ω值,(D+ωL)非奇异, (因为假设 aii 0,i 1,2,, n )于是超松弛迭代公式为
x(k1) (D L)1 (1)D U x(k) (D L)1b
令 L (D L)1 (1)D U
f (D L)1b
如果 x(k ) x1(k ) , x2(k ) ,, xn(k ) T
存在极限 x* x1* , x2* ,, xn* T
则称迭代法是收敛的,否则就是发散的。 收敛时,在迭代公式
x(k1) Gx (k) d (k 0,1,) 中当 k 时,x(k) x* , 则 x* Gx* d
精确解x*= (3, 2, 1)T
6x1 3x2 12x3 36
解建:立从迭方代程公组式的三个方程中分离出 x1, x2 和 x3
xx1(1k xx2(2k
1)
1 8
1) 111111
31x2(k 8
)3x22x3(k )
式中系数ω 称为松弛因子,当ω =1时,便为高斯塞德尔迭代法。为了保证迭代过程收敛,要求 0<ω< 2。 当0<ω< 1时,低松弛法;当1<ω< 2时称为超松弛法。但通常统称为超松弛法(SOR) 。
§ 3.4.2超松弛迭代法的矩阵表示 设线性方程组 Ax=b 的系数矩阵A非奇异,且主对角
元素 aii 0(i 1,2,, n) , 则将A分裂成
x(k 1) 2
3) / 5
取初始迭代向量 x(0) (0 ,0 ,0)T ,迭代结果为:
§ 3.3.2 Gauss—Seidel 迭代法的矩阵表示
将A分裂成A =D+L+U,则Ax b 等价于 (D+L+U )x = b
于是,则高斯—塞德尔迭代过程
Dx(k1) Lx(k1) Ux(k) b
§ 3.4.1超松弛迭代法的基本思想
超松弛迭代法目的是为了提高迭代法的收敛速
度,在高斯—塞德尔迭代公式的基础上作一些修改
。这种方法是将前一步的结果
x
( i
k
)与高斯-塞德尔迭
代方法的迭代值 ~xi(k1) 适当加权平均,期望获得更好
的近似值
x (k 1) i
。是解大型稀疏矩阵方程组的有效方
法之一,有着广泛的应用。
(k j
)
)
j i 1
(i=1,2,…,n k=0,1,2,…)
例3 用Gaxu(s1)s (S0e.i1d2e5l0迭, 代0格.37式50解, 方程0组.5000 )T
x*精≈ 确xxxx82x要((i((341x4x2))))11求x为((x(1x0200i(02..ε3.222)x22352=454xx050433.0,,,0x.003 0105300.5..333,0400553961,,,(i
x (k 1) i
(1 )xi(k )
~xi(k 1)
x(k) i
(~xi(k 1)
x(k) i
)
合并表示为:
x(k1) i
(1 )xi(k)
aii
(bi
i 1
a x (k 1) ij j
j 1
n
aij
x
(k j
)
)
j i 1
an2 x2(k )
an
n1 xn(k)1
bn )
(k=0,1,2,…)
3.2.1
雅 可 比 迭 代 法 的 算 法 实 现
输入 aij,bi,和 方程阶数 n,ε ,M
1k
n
(bi aij x j ) / aii yi j 1 j i
i 1,2,, n
k+1k
因为 D 0 ,所以 D L D 0
故
(D L)x(k1) Ux(k) b
x(k1) (D L)1Ux(k) (D L)1b
令 G1 (D L)1U , d1 (D L)1b
则高斯-塞德尔迭代形式为:
x (k 1) G1 x (k ) d1
量。有时迭代过程虽然收敛,但由于收敛速 度缓慢,使计算量变得很大而失去使用价值 。因此,迭代过程的加速具有重要意义。逐 次超松弛迭代(Successive Over relaxatic Method,简称SOR方法)法,可以看作是 带参数的高斯—塞德尔迭代法,实质上是高 斯-塞德尔迭代的一种加速方法。