数值分析第三章 解线性方程组的迭代法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
由此建立J迭代法迭代公式 J D L U x D x(k+1)=D-1(L+U)x(k)+D-1b 或写成 x(k+1)=Bx(k)+g Bx g 其中
0 a21 1 a B = D (L + U ) = 22 an1 a nn a12 a11 0 a n2 ann a1n a11 a 2n a22 0
或
Ax=b
改写成等价的方程组 x1 = m11 x1 + m12 x2 + + m1n xn + g1 x = m x + m x + + m x + g 2 21 1 22 2 2n n 2 xn = mn1 x1 + mn 2 x2 + + mnn xn + g n
,或x=Mx+g
x(k+1)=Bx(k)+g Bx g
k=0,1,2,…
若在J迭代法中,充分利用新值, 则可以得到如下的迭 J 代公式
a1n ( k ) b1 a12 ( k ) a13 ( k ) ( k +1) = x2 x3 xn + x1 a11 a11 a11 a11 a 2 n ( k ) b2 a 21 ( k +1) a 23 ( k ) ( k +1) x1 x3 xn + x 2 = a 22 a 22 a 22 a 22 a n1 ( k +1) a n 2 ( k +1) a nn 1 ( k +1) bn ( k +1) x n = a x 1 a x 2 a x n 1 + a nn nn nn nn
x
(k )
M (k ) ( k 1) x ≤ x x 1 M
*
≤≤
M
k
1 M
x (1) x ( 0 )
0.8 0.5 0 0.7
定理3.2只是收敛的充分条件,并不必要,如 M =
则‖M‖1=1.2,‖M‖∞=1.3,‖M‖2=1.09,‖M‖F=1.17 但ρ(M)=0.8<1, 所以对应的迭代法是收敛的. 由(3.5)式可见,‖x (k) -x(k-1) ‖很小时,‖x(k) –x*‖就 很小,实际上用‖x (k) -x(k-1) ‖<ε作为迭代终止的条件.
, i = 1,2, n, k = 0,1,2,
可见 ,J迭代法的迭代矩阵为 J
0 a 21 B = a 22 a n1 a nn a12 a11 0 an2 a nn a1n a11 a2n a 22 0
若记
g=(
b b1 b2 , , , n ) T ,则J迭代法可写成 a11 a 22 a nn
, i = 1,2, n, k = 0,1,2,
例1 用J法和G-S法求解线性方程组
10x1 + 3x2 + x3 =14 2x1 10x2 + 3x3 = 5 x + 3x +10x =14 1 2 3
方程组的精确解为x*=(1,1,1)T. x 解 J迭代法计算公式为
( ( 3 1 x1( k +1) = 10 x 2k ) 10 x 3k ) + 7 5 ( k +1) 1 ( k ) 3 ( k ) 1 x 2 = 5 x1 + 10 x 3 + 2 x ( k +1) = 1 x ( k ) 3 x ( k ) + 7 10 1 10 2 5 3
同样取初始向量x(0)=(0,0,0)T, 计算结果为 x k 0 1 2 3 x1(k) x2(k) x3(k)
‖x(k)-x*‖∞
0 0 0 1 1.4 0.78 1.026 0.4 1.0634 1.02048 0.987516 0.0634 0.9951044 0.99527568 1.00190686 0.0048956 由计算结果可见,G-S迭代法收敛较快.取精确到小数
ຫໍສະໝຸດ Baidu
由此建立方程组的迭代公式 x(k+1)=Mx(k)+g , k=0,1,2,… (3.2) x 其中M称为迭代矩阵 对任意取定的初始向量x(0),由(3.2) 迭代矩阵. 迭代矩阵 式可逐次算出迭代向量x(k),k=1,2,…, 如果向量序列{x(k)} x 收敛于x*,由(3.2)式可得 x*=Mx*+g 从而x*是方程组x=Mx+g的解,也就是方程组Ax=b的解. x 这种求解线性方程组的方法称为迭代法 ,若迭代序列 迭代法 {x(k)}收敛,则称迭代法收敛,否则称迭代法发散.
点后两位的近似解,G-S迭代法只需迭代3次,而J迭代法需 要迭代7次.
为了进一步研究,从矩阵角度来讨论上述迭代法. 对线性方程组Ax b,记 Ax=b Ax D=diag(a11,a22,…,ann)
0 a 21 L = a 31 a n1 0 a 32 an2 a nn 1
于是有 ‖x(k+1) -x(k) ‖≤‖M‖‖x (k) -x(k-1) ‖ ‖x(k+1) –x*‖≤‖M‖‖x (k) –x*‖ ‖x(k) –x*‖=‖(x (k) –x(k+1))+(x(k+1) –x* )‖ ≤‖x (k) –x(k+1)‖+‖x(k+1) –x*‖
‖x(k) –x* ‖≤‖M‖‖x (k) –x(k-1) ‖+‖M‖‖x(k) –x* ‖ 所以
0 a12 0 , U = 0
a13 a1n a 23 a 2 n a n 1n 0
则有
A=D-L-U D L U
于是线性方程组 Ax b 可写成 Ax=b (D-L-U)x=b D L U x b 等价于 Dx=(L U x b Dx L+U)x+b 或 x=D-1(L+U)x+D-1b D L U x D
k=0,1,2,…
k=0,1,2,…
b1 a11 b2 , g = D 1b = a 22 bn a nn
G-S迭代法迭代公式可写成 D D D x(k+1)=D-1Lx(k+1)+D-1Ux(k)+D-1b
Dx(k+1)=Lx(k+1)+Ux(k)+b Lx Ux b (D-L)x(k+1)=Ux(k)+b D L x Ux b x(k+1)=(D-L)-1Ux(k)+(D-L)-1b D L D L 所以G-S迭代法可以写成 G x(k+1)=Gx(k)+g Gx g 其中 D L G=(D-L)-1U , g=(D-L)-1b D L k=0,1,2,…
可见,迭代序列逐次收敛于方程组的解, 而切迭代7次得到 精确到小数点后两位的近似解. G-S迭代法的计算公式为:
( ( 3 1 x1( k +1) = 10 x 2k ) 10 x 3k ) + 7 5 ( k +1) 1 ( k +1) 3 ( k ) 1 + 10 x 3 + 2 x 2 = 5 x1 x ( k +1) = 1 x ( k +1) 3 x ( k +1) + 7 5 10 1 10 2 3
从而得迭代公式
a1n ( k ) b1 a12 ( k ) a13 ( k ) ( k +1) = x2 x3 xn + x1 a11 a11 a11 a11 a 2 n ( k ) b2 a 21 ( k ) a 23 ( k ) ( k +1) x1 x3 xn + x 2 = a 22 a 22 a 22 a 22 a n1 ( k ) a n 2 ( k ) a nn 1 ( k ) bn ( k +1) x n = a x 1 a x 2 a x n 1 + a nn nn nn nn
第3章 解线性方程组的迭代法
迭代法的基本思想是,把n元线性方程组 迭代法是从某一取定的初始向量x(0)出发,按照一个适 x
a11 x1 a12 x2 + ... + a1n xn = bx 1 当的迭代公式 +,逐次计算出向量x(1), x(2),…,使得向量序 a x + a x + ... + a x = b 2n n 2 (3.1) 列{x(k)}收敛于方程组的精确解.迭代法是一类逐次近似的 x 21 1 22 2 ................................................ 方法.其优点是,算法简便,程序易于实现. an1 x1 + an 2 x2 + ... + ann xn = bn
取初始向量x(0)=(0,0,0)T,迭代可得 x
( ( x1(1) = 1.4, x 21) = 0.5, x 31) = 1.4 ( ( x1( 2 ) = 1.11, x 22 ) = 1.2, x 32 ) = 1.11
计算结果列表如下:
k 0 1 2 3 4 5 6 7
x1(k) 0 1.4 1.11 0.929 0.9906 1.01159 1.000251 0.9982364
定理3.2 定理
若‖M‖<1,则对任意x(0),迭代法收敛,而且 x
x
(k )
x ≤
*
M 1 M
x ( k ) x ( k 1)
(3.5)
x (k) x * ≤
M
k
1 M
x (1) x (0)
(3.6)
证
所以
由于 x(k+1)=Mx(k)+g x(k)=Mx(k-1)+g x*=Mx*+g x(k+1) -x(k)=M(x (k) -x(k-1) ) , x(k+1) –x*=M(x (k) –x* )
例如,例1中J-法计算结果如下: k 0 1 2 3 4 5 6 7 x1(k) 0 1.4 1.11 0.929 0.9906 1.01159 1.000251 0.9982364 x2(k) 0 0.5 1.20 1.055 0.9645 0.9953 1.005795 1.0001255 x3(k) 0 1.4 1.11 0.929 0.9906 1.01159 1.000251 0.9982364
(3.3)
, k = 1,2,3,
式(3.3)称为Jacobi迭代法,简称为J迭代法. J法也记为 Jacobi迭代法 Jacobi迭代法 J迭代法.
xi
( k +1) i 1 n 1 (k ) = (bi ∑ a ij x j ∑ a ij x (jk ) ) j =1 j = i +1 a ii
x2(k) 0 0.5 1.20 1.055 0.9645 0.9953 1.005795 1.0001255
x3(k) 0 1.4 1.11 0.929 0.9906 1.01159 1.000251 0.9982364
‖x(k)-x*‖∞
1 0.5 0.2 0.071 0.0355 0.01159 0.005795 0.0017636
迭代法和Gauss-Seidel迭代法 §1 Jacobi迭代法和 迭代法和 迭代法
Jacobi方法是由方程组(3.1)中第k个方程解出x(k),得 x 到等价方程组:
a13 a1n a12 b1 x1 = a x2 a x3 a xn + a 11 11 11 11 a23 a2 n a21 b2 x1 x3 xn + x2 = a22 a22 a22 a22 an1 an 2 ann 1 bn xn = a x1 a x2 a xn 1 + a nn nn nn nn
(3.4)
, k = 1,2,3,
式(3.4)称为Gauss-Seidel迭代法 Gauss-Seidel迭代法,简称为G-S迭代法. Gauss 迭代法 G 迭代法. G-S迭代法也可记为
xi
( k +1) i 1 n 1 ( k +1) = (bi ∑ a ij x j ∑ a ij x (jk ) ) j =1 j = i +1 a ii
§2 迭代法的收敛性
讨论迭代法 x(k+1)=Mx(k)+g 的收敛性. k=0,1,2,…
记误差向量e(k)=x(k)-x*,则迭代法收敛就是e(k)→0. e x x e 由于 x(k+1)=Mx(k)+g x*=Mx*+g 所以 e(k+1)=Me(k) 递推可得 e(k)=Mke(0) , k=0,1,2,… 可见,当k→∞时, e(k)→0 Mk →O. 定理3.1 对任意初始向量x(0),迭代法收敛ρ(M)<1. 定理 x 证 若‖Mk‖→0, 则ρk(M)=ρ(Mk)≤‖Mk‖→0, 所以ρ(M)<1. 若ρ(M)<1,则存在ε>0,使得ρ(M)+ε<1.则 ‖Mk‖≤‖M‖k ≤(ρ(M)+ε)k →0. , k=0,1,2,… k=0,1,2,… k=0,1,2,…