线性方程组的解法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
矩阵形式的高斯-塞德尔迭代公式。 B:迭代矩阵
例 9 x1 x 2 x 3 7
x1 10 x 2 x 3 8 x x 15 x 13 2 3 1
( k 1) (k ) (k ) x1 (7 x2 x3 )/ 9
x1 ( 7 x 2 x 3 ) / 9 x 2 (8 x1 x 3 ) / 10 x (13 x x ) / 15 1 2 3
x1*= 1.0000,x2*= 1.0000,x3*= 1.0000
可以看出,迭代每前进一步,结果就逼近准确解一步 迭代过程收敛
矩阵形式: x
( k 1)
Bx
(k )
f
( k 1) (k ) x1 0 x 1 / 9 1 / 9 1 7 / 9 ( k 1) (k ) x 1 / 10 0 1 / 10 x 8 / 10 2 2 x ( k 1) 1 / 15 1 / 15 x ( k ) 13 / 15 0 3 3
( k 1) (k ) x1 0 x 1 / 9 1 / 9 1 7 / 9 ( k 1) (k ) x 1 / 10 0 1 / 10 x 8 / 10 2 2 x ( k 1) 1 / 15 1 / 15 x ( k ) 13 / 15 0 3 3
Jacobi迭代算法
9 x1 x 2 x 3 7 x1 10 x 2 x 3 8 x x 15 x 13 2 3 1
0.7778 0.8000 0.8667
0.9630 0.9644 0.9719
0.9929 0.9935 0.9987 0.9988 0.9998 0.9998 1.0000 1.0000 1.0000 1.0000 0.9952 0.9991 0.9998 1.0000 1.0000
X(1),
若 X(2),· · · · · · , X(k),· · · · · ·
lim x ( k ) x *
k
则迭代过程收敛。x* 是方程组 Ax = b 的解
迭代法适用于解大型稀疏方程组 (万阶以上的方程组,系数矩阵中零元素占很 大比例,而非零元按某种模式分布) 背景: 电路分析、边值问题的数值解和数学物 理方程
a
j 1
n
ij
x j bi
(i = 1,2,…,n)
xi( k 1)
i 1 n 1 [bi aij x (jk 1) aij x (jk ) ] aii j 1 j i 1
(i = 1,2,· · · ,n; k =0,1,2,· · · ) 分量形式的高斯-塞德尔迭代公式。
将A分解为:A=U+D+L
其中
a11 0 a12 a1n 0 a 2n D U 0 0 0 a 22
0 0 a 21 L a n1 a nn
0 an 2
0 0
( k 1) (k ) x x 0 0 1 1 0 1 / 9 1 / 9 1 7 / 9 ( k 1) (k ) 1 / 10 1 0 x 0 0 1 / 10 x 8 / 10 2 2 x ( k 1 ) 0 0 x ( k ) 13 / 15 1 / 15 1 / 15 1 0 3 3
于是
(U+D+L)Fra Baidu bibliotek = b
得
X= -D- (U+L)X +D-b X(k+1)=-D-(U+L)X(k) +D-b
据此得矩阵形式的雅可比迭代公式 记 B=-D- (U+L), f= D-b
· · · · · ) X(k+1)= BX(k) + f ( k=0,1,2,· B:迭代矩阵
有
任取 X(0), 迭代计算产生向量序列:
A=[9 -1 -1;-1 10 -1;-1 -1 15]; b=[7;8;13];x=[0;0;0]; er=1;k=0; while er>0.00005 er=0;k=k+1; for i=1:3 s=0;t=x(i);x(i)=0; for j=1:3 s=s+A(i,j)*x(j); end x(i)=t; y(i)=(b(i)-s)/A(i,i); er=max(abs(x(i)-y(i)),er); end x=y;x' end
如果
lim xi( k ) xi* 迭 代 收 敛
k
否则 迭代发散
用矩阵形式来表示雅可比迭代公式
设有方程组:
AX = b
其中A=(aij)n为非奇异矩阵,X=(x1, x2, · · · , xn)T,
b=(b1, b2, · · · , bn)T,唯一解为X*=(x1*, x2*, · · · , xn*)T
雅可比(Jacobi)迭代法
举例说明雅可比迭代法的基本思路
9 x1 x 2 x 3 7 例4.1 x1 10 x 2 x 3 8 特点:系数矩阵主 x x 15 x 13 对角元均不为零 2 3 1
将方程改写成如下等价形式
x1 ( 7 x 2 x 3 ) / 9 x 2 (8 x1 x 3 ) / 10 x (13 x x ) / 15 1 2 3
线性方程组的解法
解线性方程组的迭代法
Iterative Methods for Linear Systems
Jacobi迭代和Gauss-Seidel迭代
迭代法的矩阵表示
Matrix form of the Iterative Methods
线性方程组的解法在计算数学中占有极其 重要的地位。 线性方程组的解法大致分为迭代法与直接 法两大类
用矩阵形式来表示高斯-塞德尔迭代公式 DX(k+1)=b-LX(k+1) - UX(k)
即
(D+L)X(k+1) = -UX(k)+b
X(k+1) =-(D+L)- UX(k)+ (D+L)- b
如果 (D+L)-存在,则 记 则 B=(D+L)-, f= (D+L)- b · · ) X(k+1)= BX(k) + f ( k=0,1,2,·
(0) x1 0 (0) x 2 0 x ( 0 ) 0 3
( k 1) ( k 1) (k ) x2 (8 x1 x3 ) / 10
( k 1) ( k 1) ( k 1) x3 (13 x1 x2 ) / 15
都是用前一步的旧值
x(k)=[x1(k),x2(k) , · · · ,xn(k)]T
的全部分量计算出来的。那么在计算第i个分量 xi(k+1) 时,已经计算出 x1(k+1),x2(k+1) , · · · ,xi-1(k+1) (i-1) 个分量,这些分量新值没用在计算xi(k+1) 上。将这
将这些分量利用起来,有可能得到一个收敛更 快的迭代公式。 具体作法:将分量形式的雅可比迭代公式右端 前(i-1)个分量的上标为k换成k+1,即
(0) x1 0 (0) x 2 0 x ( 0 ) 0 3
( k 1) (k ) (k ) x2 (8 x1 x3 ) / 10
( k 1) (k ) (k ) x3 (13 x1 x2 ) / 15
问题: (1)如何构造迭代格式? (2)迭代格式是否收敛?
(3)收敛速度如何?
(4)如何进行误差估计?
高斯塞德尔Gauss-Seidel迭代法
Gauss-Seidel迭代法是通过对Jacobi迭代法稍加改 进得到的。 Jacobi迭代法的每一步迭代新值 x(k+1)=[x1(k+1),x2(k+1) , · · · ,xn(k+1)]T
( k 1) (k ) x1 1 x 0 0 0 1 / 9 1 / 9 1 7 / 9 ( k 1) (k ) x 1 / 10 1 0 0 0 1 / 10 x 8 / 10 2 2 x ( k 1) 1 / 15 1 / 15 1 0 0 x ( k ) 13 / 15 0 3 3 (k ) x 0 0 0 1 / 9 1 / 9 1 7 / 9 1 (k ) 1 / 10 1 0 0 0 1 / 10 x2 8 / 10 x ( k ) 13 / 15 11 / 150 1 / 15 1 0 0 0 3 (k ) x 1/ 9 1 / 9 1 7 / 9 0 (k ) 0 1 / 90 1 / 9 x2 8 / 10 x ( k ) 13 / 15 0 1 / 1350 2 / 135 3
以上这种迭代方法称雅可比(Jacobi)迭代法。 基本思想:将方程组的求解问题转化为重复 计算一组彼此独立的线性表达式。
设有方程组
a11 x1 a12 x 2 a1n x n b1 a x a x a x b 21 1 22 2 2n n 2 a n1 x1 a n 2 x 2 a nn x n bn
取迭代初值x1(0) =0, x2(0) =0, x3(0) =0
x(0)
x(1)
x(2)
x(3)
x(4)
· · · · · · · ·
0
0 0
0.7778
0.8000 0.8667
0.9630
0.9644 0.9778
0.9929
0.9935 0.9952
0.9987
0.9988 0.9991
准确解
据此建立迭代公式
x1 (7 x2 x3 ) / 9 ( k 1 ) (k ) (k ) x2 (8 x1 x3 ) / 10 x ( k 1 ) (13 x ( k ) x ( k ) ) / 15 1 2 3
( k 1 ) (k ) (k )
例 9 x1 x 2 x 3 7
x1 10 x 2 x 3 8 x x 15 x 13 2 3 1
( k 1) (k ) (k ) x1 (7 x2 x3 )/ 9
x1 ( 7 x 2 x 3 ) / 9 x 2 (8 x1 x 3 ) / 10 x (13 x x ) / 15 1 2 3
a
j 1
n
ij
x j bi
(i = 1,2, · · · ,n)
将第i个方程的第i个变量xi分离出来,据此建立分量形式 的雅可比迭代公式
xi( k 1)
i 1 n 1 [bi aij x (jk ) aij x (jk ) ] aii j 1 j i 1
(i = 1,2, · · · ,n; k=0,1,2, · · · )