线性方程组的直接法和迭代法
线性代数求解方法和技巧

线性代数求解方法和技巧线性代数是数学中重要的一个分支,研究向量空间、线性变换和线性方程组等内容。
在实际问题中,我们常常需要用线性代数的方法来解决问题,因此掌握线性代数的求解方法和技巧对于理解和应用数学是非常重要的。
首先,我们讨论线性方程组的求解方法。
线性方程组是由一组线性方程组成的方程组,其中每个方程的未知数的次数都为1。
对于n个未知数和m个方程的线性方程组,我们有以下几种常用的求解方法:1. 列主元消元法:这是最常用的线性方程组求解方法之一。
它的基本思想是通过行变换将线性方程组化为一个三角形式,进而求解得到方程组的解。
在进行行变换时,要选择合适的列主元,即选择主元元素绝对值最大的一列作为主元素。
2. 矩阵求逆法:对于一个可逆的n阶方阵A,我们可以通过求A的逆矩阵来求解线性方程组Ax=b。
具体地,我们首先通过高斯消元法将方程组化为三角形式,然后根据三角形式的矩阵求逆公式来求解x。
3. LU分解法:对于一个n阶非奇异矩阵A,我们可以将其分解为一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU。
接着,我们可以通过LU分解来求解线性方程组Ax=b。
具体地,我们首先通过LU分解将方程组化为Lc=b和Ux=c两个方程组,然后依次求解这两个方程组得到x的值。
除了以上的求解方法,还有一些线性方程组的特殊情况和对应的求解方法:1. 齐次线性方程组:如果线性方程组右边的常数项都为0,即b=0,那么我们称为齐次线性方程组。
对于齐次线性方程组,其解空间是一个向量空间。
我们可以通过高斯消元法来求解齐次线性方程组,先将其化为三角形式,然后确定自由未知量的个数,最后确定解空间的基底。
2. 奇异线性方程组:如果线性方程组的系数矩阵A是奇异矩阵,即det(A)=0,那么我们称为奇异线性方程组。
对于奇异线性方程组,其解可能不存在,或者存在无穷多解。
我们可以通过计算矩阵A的秩来确定线性方程组的解的情况。
另外,在实际问题中,我们可能会遇到大规模的线性方程组,这时候求解方法和技巧还需要考虑到计算效率的问题。
线性代数方程组的数值解法讨论

线性代数方程组的数值解法讨论解线性方程组的方法,主要分为直接方法和迭代方法两种。
直接法是在没有舍入误差的假设下能在预定的运算次数内求得精确解。
而实际上,原始数据的误差和运算的舍入误差是不可以避免的,实际上获得的也是近似解。
迭代法是构造一定的递推格式,产生逼近精确解的序列。
对于高阶方程组,如一些偏微分方程数值求解中出现的方程组,采用直接法计算代价比较高,迭代法则简单又实用,因此比较受工程人员青睐。
小组成员本着工程应用,讨论将学习的理论知识转变为matlab 代码。
讨论的成果也以各种代码的形式在下面展现。
1 Jacobi 迭代法使用Jacobi 迭代法,首先必须给定初始值,其计算过程可以用以下步骤描述: 步骤1 输入系数矩阵A ,常熟向量b ,初值(0)x ,误差限ε,正整数N ,令1k =.步骤2 (0)11ni i ij jj ii j i x b a x a =≠⎡⎤⎢⎥=-⎢⎥⎢⎥⎣⎦∑,(0)j x 代表(0)x 的第j 个分量。
步骤3 计算11ni i ij j j ii j i y b a x a =≠⎡⎤⎢⎥=-⎢⎥⎢⎥⎣⎦∑,判断1max i i i n x y ε≤≤-<,如果是,则结束迭代,转入步骤5;否则,转入步骤4。
步骤4 判断k N =?如果是,则输出失败标志;否则,置1k k =+,i i x y ⇐,1,2,,i n =,转入步骤2。
步骤5 输出12,,n y y y 。
雅可比迭代代码function [x,k]=Fjacobi(A,b,x0,tol)% jacobi 迭代法 计算线性方程组% tol 为输入误差容限,x0为迭代初值max1= 300; %默认最多迭代300,超过要300次给出警告 D=diag(diag(A)); L=-tril(A,-1);U=-triu(A,1); B=D\(L+U); f=D\b; x=B*x0+f;k=1; %迭代次数while norm(x-x0)>=tol x0=x;x=B*x0+f; k=k+1;if(k>=max1)disp('迭代超过300次,方程组可能不收敛'); return; end%[k x'] %显示每一步迭代的结果 End2 高斯赛德尔迭代由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值,若每一次迭代充分利用当前最新的迭代值,即在计算第i 个分量(1)k i x +时,用最新分量11()k x +,12()k x +…(1)1k i x +-代替旧分量)1(k x ', )2(k x …)3(k x 就得到高斯赛德尔迭代格式,其数学表达式为:1(1)(1)()111(1,2,,)i n k k k ii ij j ij j j j i ii xb a x a x i n a -++==+⎛⎫=--= ⎪⎝⎭∑∑具体形式如下:()()()(1)()()()11221331111(1)(1)()()22112332222(1)(1)(1)(1)(1)112233,11111k k k k n n k k k k n n k k k k k n n n n n n n n nnx a x a x a x b a x a x a x a x b a x a x a x a x a x b a ++++++++--=----+=----+⋯⋯⋯⋯⋯⋯=-----+矩阵形式表示为:()(1)1(1)()(0,1,2,,),k k k k n +-+=++=x D Lx Ux b将(1)(1)()(0,1,2,,)k k k k n ++=++=Dx Lx Ux b 移项整理得: (1)1()1()()(0,1,2,,))k k x D L Ux D L b k n +--=-+-=记11(),()--=-=-M D L U g D L b ,则(1)()k k x x +=+M g高斯塞德尔迭代function [x,k]=Fgseid(A,b,x0,tol)%高斯-塞德尔迭代法 计算线性方程组 % tol 为误差容限max1= 300; %默认最高迭代300次D=diag(diag(A)); L=-tril(A,-1); U=-triu(A,1); G=(D-L)\U; f=(D-L)\b; x=G*x0+f;k=1; while norm(x-x0)>=tol x0=x;x=G*x0+f; k=k+1;if(k>=max1)disp('迭代次数太多,可能不收敛'); return; end% [k,x'] %显示每一步迭代结果 End3 超松弛迭代法在工程中最常遇到的问题便是线性代数方程组的求解,而线性代数方程组的求解一般可以分为两类,一类是直接法(精确法),包括克莱姆法则方法、LD 分解法等,另一类是迭代法(近似法),包括雅克比迭代法、高斯迭代法、超松弛迭代法等。
07线性代数方程组的解法

总计∑ n (k2k) n(n21)
k1
3
除法
n1
k
n(n1)
k1
2
回 代 总 计 算 量 n(n1) 2
总 乘 除 法 共 n 3 3 n 2 1 3 n (n 3 0 ,为 9 8 9 0 )
21
三、Gauss消去法的矩阵表示
每一步消去过程相当于左乘初等变换矩阵Lk
a x a x a x a b 得
到
(1)
同
解 (1)
方
程 (1)A(3组 )x=b(1() 3)
(1)
11 1
12 2
13 3
1n
1
a x a x (2) (2)
22 2
23 3
a x(3) 33 3
a b (2) (2)
2n
2
a b (3) (3)
11 1
12 2
1n n
1
b x 22 2
b2nxn g 2
称 消 元 过 程 。 逐 次 计 算 b出 nn x xn n, x gn 1 n,, x 1 称 回 代 过 1程 0 。
一、Gauss 消去法计算过程
a a b b 统一记 → 号 (1) : , →(1)
(2) ,
2
(3)
(2)
2
1
0
1
L m 0 2
32
1
0 mn2 0
m a a
(2) (2)
i2
i2
22
i 3,4, ,n
数值分析第三章线性方程组解法

数值分析第三章线性方程组解法在数值分析中,线性方程组解法是一个重要的主题。
线性方程组是由一组线性方程组成的方程组,其中未知数的次数只为一次。
线性方程组的解法包括直接解法和迭代解法两种方法。
一、直接解法1.1矩阵消元法矩阵消元法是求解线性方程组的一种常用方法。
这种方法将方程组转化为上三角矩阵,然后通过回代求解得到方程组的解。
1.2LU分解法LU分解法是将系数矩阵A分解为一个下三角矩阵L和一个上三角矩阵U的乘积,然后通过解两个三角方程组求解线性方程组。
这种方法可以减少计算量,提高计算效率。
1.3 Cholesky分解法Cholesky分解法是对称正定矩阵进行分解的一种方法。
它将系数矩阵A分解为一个下三角矩阵L和它的转置的乘积,然后通过解两个三角方程组求解线性方程组。
Cholesky分解法适用于对称正定矩阵的求解,具有较高的精度和稳定性。
二、迭代解法2.1 Jacobi迭代法Jacobi迭代法是一种迭代求解线性方程组的方法。
它通过分解系数矩阵A为一个对角矩阵D和一个余项矩阵R,然后通过迭代更新未知数的值,直至达到一定精度要求为止。
Jacobi迭代法简单易懂,容易实现,但收敛速度较慢。
2.2 Gauss-Seidel迭代法Gauss-Seidel迭代法是一种改进的Jacobi迭代法。
它通过使用新计算出的未知数值代替旧的未知数值,达到加快收敛速度的目的。
Gauss-Seidel迭代法是一种逐步逼近法,每次更新的未知数值都会被用于下一次的计算,因此收敛速度较快。
2.3SOR迭代法SOR迭代法是一种相对于Jacobi和Gauss-Seidel迭代法更加快速的方法。
它引入了一个松弛因子,可以根据迭代的结果动态地调整未知数的值。
SOR迭代法在理论上可以收敛到线性方程组的解,而且收敛速度相对较快。
三、总结线性方程组解法是数值分析中的一个重要内容。
直接解法包括矩阵消元法、LU分解法和Cholesky分解法,可以得到线性方程组的精确解。
第五章 解线性方程组的迭代解法

定义迭代法为: 定义迭代法为:
x ( k + 1) = G J x ( k ) + g
其中Jacobi迭代矩阵:GJ = D1 ( L + U ) 迭代矩阵: 其中 迭代矩阵
g = D 1b = (7.2, 8.3, 8.4)T 取 x ( 0 ) = (0, 0, 0)T , 代入迭代式,得x(1) = Bx ( 0 ) + g = (7.2, 8.3, 8.4)T x ( 2 ) = Bx (1) + g = (9.71,10.70,11.5)T x (9 ) = (10.9994,11.9994,12.9992) 精确解为 x = (11,12,13)T .
记
A = D L U
其中 D = diag (a11 ,, ann ) , L, U 分别为 A 的 严格下、上三角形部分元素构成的三角阵 严格下、上三角形部分元素构成的三角阵. Gauss-Seidel方法的矩阵形式为 方法的矩阵形式为
x ( k +1) = D1 ( Lx ( k +1) + Ux ( k ) + b)
或者
x ( k +1) = ( D L)1Ux ( k ) + ( D L)1 b
( 这说明Gauss-Seidel方法的迭代矩阵为 D L)1U 方法的迭代矩阵为 这说明
从而有
定理5.2 定理5.2 Gauss-Seidel方法收敛的充分必要条件为 方法收敛的充分必要条件为
ρ (GG ) < 1 或
方程组的解的三种情况

方程组的解的三种情况线性方程组的解的三种情况如下:第一种是无解。
也就是说,方程之间出现有矛盾的情况。
第二种情况是解为零。
这也是其次线性方程组唯一解的情况。
第三种是齐次线性方程组系数矩阵线性相关。
这种情况下有无数个解。
线性方程组是各个方程关于未知量均为一次的方程组(例如2元1次方程组)。
对线性方程组的研究,中国比欧洲至少早1500年,记载在公元初《九章算术》方程章中。
1、解线性方程组的方法大致可以分为两类:直接方法和迭代法。
直接方法是指假设计算过程中不产生舍入误差,经过有限次运算可求得方程组的精确解的方法;迭代法是从解的某个近似值出发,通过构造一个无穷序列去逼近精确解的方法。
2、消去法:Gauss(高斯)消去法——是最基本的和最简单的直接方法,它由消元过程和回代过程构成,基本思想是:将方程组逐列逐行消去变量,转化为等价的上三角形方程组(消元过程);然后按照方程组的相反顺序求解上三角形方程组,得到原方程组的解(回代过程)。
优缺点:简单易行,但是要求主元均不为0,适用范围小,数值稳定性差。
列主元素消去法——基本思想是在每次消元前,在要消去未知数的系数中找到绝对值大的系数作为主元,通过方程对换将其换到主对角线上,然后进行消元。
优点:计算简单,工作量大为减少,数值稳定性良好,是求解中小型稠密线性方程组的最好方法之一。
全主元素消去法——基本思想是在全体待选系数a(ij)(k)中选取主元,并通过行与列的互换把它换到a(kk)(k)的位置,进行消元。
优缺点:这种方法的精度优于列主元素法,它对控制舍入误差十分有效,但是需要同时作行列变换,因而程序比较复杂,计算时间较长。
3、直接三角分解法:消元过程实际上是把系数矩阵A分解成单位下三角形矩阵与上三角形矩阵乘积的过程,其中L为单位下三角形矩阵,U为上三角形矩阵。
这种分解过程称为杜利特尔(Doolittle分解),也称为LU 分解。
当系数矩阵进行三角分解后,求解方程组Ax = b的问题就等价于求解两个三角形方程组Ly=b和Ux=y。
数值方法线性方程组的迭代法

迭代法的特点
若在求解过程中 xkx*(k) ,由 xk+1=(xk)产生的迭代 xk 向x*的逼近 ,在数次迭代求解 之后,由于机器跳动产生的xk 值误差或是有效数字产生的舍 入误差,都会在第k+1次迭代 计算中自动弥补过来或逐步纠 正过来。因此,在 迭代求解 过程中产生的各种误差是可以 忽略的,即迭代求解无累积误 差,实际上, xk只是解的一个 近似,机器的舍入误差并不改 变它的此性质。
x ( k ) x* B k ( x ( 0) x*) 由 x ( k ) x * B k ( x ( 0) x*) B k x ( 0) x * B k x ( 0) x *
lim
k
x(k ) x *
定理2:若||B||<1,则迭代法
对矩阵也有类似的结论
下一页
如果 矩阵 A=(aij)满足 n |aii|> |aij|
j=1,ji
i=1,2,……n,
则称方阵A是严格(行)对角占优的.
U
A=
a11 a21 … an1
a12 a13 … a22 a23 … … … … an3 an4 …
-4 2 1 1 -9 7 2 -6 10
定理1:对任意初始向量x(0)及任意右段向量 g,由此产生的迭代向 量序列{x(k)}收敛的充要条件是
B 1
证明:必要性:设{x(k)}收敛,其极限为 x*
x * Bx* g
,则
x ( k ) x * B x ( k 1) x * B k x ( 0 ) x * 两边取极限
引言
• 直接法是通过有限步运算后得到线性方程组的 解,解线性方程组还有另一种解法,称为迭代 法,它的基本思想是将线性方程组 Ax=b 化为 • x=Bx+f • 再由此构造向量序列{x (k)}: • x(k+1)=Bx (k)+f • 若{x (k)}收敛至某个向量x *,则可得向量x *就是 所求方程组 AX=b 的准确解. • 线性方程组的迭代法主要有Jocobi迭代法、 Seidel迭代法和超松弛(Sor)迭代法.
第三章 解线性方程组的直接法

第三章 解线性方程组的直接法3.1 引言许多科学技术问题要归结为解含有多个未知量x 1, x 2, …, x n 的线性方程组。
例如,用最小二乘法求实验数据的曲线拟合问题,三次样条函数问题,解非线性方程组的问题,用差分法或有限元法解常微分方程、偏微分方程的边值等,最后都归结为求解线性代数方程组。
关于线性方程组的数值解法一般有两类:直接法和迭代法。
1. 直接法直接法就是经过有限步算术运算,可求得线性方程组精确解的方法(假设计算过程中没有舍 入误差)。
但实际计算中由于舍入误差的存在和影响,这种方法也只能求得线性方程组的近似解。
本章将阐述这类算法中最基本的高斯消去法及其某些变形。
2. 迭代法迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法,迭代法需要的计算机存储 单元少、程序设计简单、原始系数矩阵在计算过程中不变,这些都是迭代法的优点;但是存在收敛性和收敛速度的问题。
迭代法适用于解大型的稀疏矩阵方程组。
为了讨论线性方程组的数值解法,需要复习一些基本的矩阵代数知识。
3.1.1 向量和矩阵 用nm ⨯R表示全部n m ⨯实矩阵的向量空间,nm C⨯表示全部n m ⨯复矩阵的向量空间。
()⎪⎪⎪⎪⎪⎭⎫⎝⎛==⇔∈⨯nn n n n n ij nm a a aa a aa a a a212222111211A R A 此实数排成的矩形表,称为m 行n 列矩阵。
⎪⎪⎪⎪⎪⎭⎫⎝⎛=⇔∈n n x x x 21x R x x 称为n 维列向量矩阵A 也可以写成)(n 21a ,,a ,a A = 其中 a i 为A 的第i 列。
同理⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=T T T n 21b b b A其中T i b 为A 的第i 行。
矩阵的基本运算:(1) 矩阵加法 )( ,n m n m R C ,R B ,R A B A C ⨯⨯⨯∈∈∈+=+=n m ij ij ij b a c . (2) 矩阵与标量的乘法 ij j a ci αα== ,A C (3) 矩阵与矩阵乘法 p nk kjik b acij ⨯⨯⨯=∈∈∈==∑m p n n m R C ,R B ,R A AB C ( ,1(4) 转置矩阵 ji ij T nm a c ==∈⨯ , ,A C RA(5) 单位矩阵 ()n n ⨯∈=R e ,,e ,e I n 21 ,其中 ()Tk e 0,0,1,0,0 = k=1,2,…,n(6) 非奇异矩阵 设nn ⨯∈RA ,nn ⨯∈RB 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性方程组的直接法 直接法就就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。
线性方程组迭代法 迭代法就就是用某种极限过程去逐步逼近线性方程组精确解的方法.该方法具有 对讣算机的存贮单元需求少,程序设计简单、原始系数矩阵在计算过程中不变等 优点,就是求解大型稀疏矩阵方程组的重要方法.迭代法不就是用有限步运算求 精确解,而就是通过迭代产生近似解逼近精确解•如Jacobi 迭代、Gauss- Seidel 迭代、S0R 迭代法等。
1. 线性方程组的直接法直接法就就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方 法。
1.1 Cramer 法则Cramer 法则用于判断具有n 个未知数的n 个线性方程的方程组解的情况。
当 方程组的系数行列式不等于零时,方程组有解且解唯一。
如果方程组无解或者有 两个不同的解时,则系数行列式必为零。
如果齐次线性方程组的系数行列式不等 于零,则没有非零解。
如果齐次线性方程组有非零解,则系数行列式必为零。
定理1如果方程组Ax = b 中»= A 工0,则Ax = b 有解,且解事唯一的, 解为X 严 ¥,/岸,..% 理,D 就是D 中第i 列换成向量b 所得的行列式。
Cramer 法则解n 元方程组有两个前提条件:1、 未知数的个数等于方程的个数。
2、 系数行列式不等于零例1 a 取何值时,线性方程组X] + 兀2 + 兀3 = adX] +兀2 +些=1有唯一解。
內+花+ 0勺=1所以当a 丰1时,方程组有唯一解。
定理2当齐次线性方程组Av = O, |4|乂0时该方程组有唯一的零解。
定理3齐次线性方程组Ar = 0有非零解<=>同=0。
1.2 Gauss 消元法Gauss 消元法就是线性代数中的一个算法,可用来为线性方程组求解,求出 矩阵的秩,以及求出可逆方阵的逆矩阵。
当用于一个矩阵时,高斯消元法会产生出 一 1 1 11 1 1解:|牛 a 1 1= () 1-6/ 1-« 1 1 a 00 G-1 =_(。
_1丁个“行梯阵式”。
1.2.1用Gauss消元法为线性方程组求解eg:Gauss消元法可用来找出下列方程组的解或其解的限制:2x+y— z = 8(厶)<-3X-J +2Z =-11(L2)—lx + y + 2z = -3 (厶)这个算法的原理就是:首先,要将厶以下的等式中的兀消除然后再将厶2 以下的等式中的y消除。
这样可使整个方程组变成一个三角形似的格式。
之后再将已得出的答案一个个地代入已被简化的等式中的未知数中,就可求出其余的答案了。
在刚才的例子中,我们将斗厶与厶2相加,就可以将厶2中的兀消除了。
然后再将厶与厶相加,就可以将厶中的X消除。
方程组则变为:2x+ y-z = 81 1 [—y+—z=\2 - 22y+ z = 5现在将-4厶与厶相加,就可将厶中的y消除,方程组变为:2x + y - z = 81 1 |2' 2-z = 1这样就完成了整个算法的初步,一个三角形的格式(指:变量的格式而言,上例中的变量各为3, 2,1个)出现了。
第二步,就就是由尾至头地将已知的答案代入其她等式中的未知数。
第一个答案就就是Z=-lo然后直接带入,立即就可得出第二个答案:y = 3与最后一个答案x = 2o这样,我们利用高斯消元法解决了这个方程组。
2.线性方程组迭代法迭代法就就是用某种极限过程去逐步逼近线性方程组精确解的方法.该方 法具有对计算机的存贮单元需求少,程序设计简单、原始系数矩阵在计算过程中 不变等优点,就是求解大型稀疏矩阵方程组的重要方法•迭代法不就是用有限步 运算求精确解,而就是通过迭代产生近似解逼近精确解•如Jacobi 迭代、Gauss —Seidel 迭代、S0R 迭代法等。
2.1 Jacobi 迭代法awa ?2 d33D = Un - 1. - 1Un. n 0ai\0 L = G31• • •U32 • • •Cln - LIan -1.2Cln. 1Cln. 2 0 0 Cln. n - I 00 a\2Q13 …a\.n-\a 1. n0 a 23 ...02“-16Z2, nU =0 Q34• • •• • •a 3, n对于线性方程组Ax = b则力二厶+ D + 〃,即将A分解为一个严格下三角矩阵、一个对角阵与一个严格上三角矩阵之与,从而可写出Jacobi迭代格式的丫仏+1)— _ r)-I// 丄77、丫伙)I 门(一1%矩阵表示形式为:兀-2十U丿兀十Q ",其迭代矩阵J = _£> 1(L + U))称为雅可比迭代矩阵、将线性方程组Ax = b变为一个通解方程组x = Bx + f,对其进行迭代式改写,x(k+l) = Bx(k) + f ,R = 0,1,2....矩阵B为迭代矩阵讣+讣+…+讣=4a21x{+a22x2+--- + a2n x n =b2[a nX x x+a n2x2+-^+a nn x n^b n由方程组⑴的第i个方程解岀再(心12・・力),得到一个同解方程组:+仇)构造相应的迭代公式严计八…一曲¥) 严=右(-映"—屛)-…-讣⑷+叫〃)T取初始向量兀⑹,利用(III)反复迭代可以得到一个向量序列{兀")},利用此迭代格式求解方程组的解法称为Jacobi迭代法。
用Jacobi迭代求解下列方程组佔 + 3x? = 24< 3X[ + 3X2 - x3 = 30—X] + 4七=—24输入A=[4 3 0;3 3 -l;0 -1 4];b=[24;30;-24];[x, k, index]=Jacobi(A, b, le~5, 100) 输出:-2、999811、9987-3、0001 k =100index 二所以解为:旺二-2、9998,心=11、9987,兀二一3、00012.2 Gauss-Seide 迭代若L 、U 、D 为上述的L 、U 、Do 则Gauss —Seidel 迭代法的矩阵表示 为:严"=D~\-Lx {k+'} -Ux ik ' +b),现将 x**+1)显示化由 (D + Qx^ =-Ux a)+b 得.+屮=—(£> + 厶尸乩⑷+(£> + 厶)一% △ G = ~(D + D : g = (D + Ly'b ,则得:x (*+,) = Gx (k} + g ,此即为 -Seidel 迭代法的矩阵表示形式,G 称为迭代阵。
由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值,若每一次迭代•伙+1) 充分利用当前最新的迭代值,即在讣算笫1个分量"时,用最新分量 (R+1)伙+1) 伙+1) r (k)(k) 伙)1 ,2 …口 代替旧分量1严…G ,就得到所 谓解方程组的Gauss-Seidel 迭代法。
其迭代格式为(k = 0丄2,…;i = 0,12 …刃)或者写为(x-k+l) = x-k) +Ck = k = 0,1,2, • • - ; i = 0,1,2, • • • n) J1 Z-l /-I w=丄心—2>产严— ICl ii 丿=1丿=/+l 用Gauss-Seide 迭代求解下列方程组(初始向量),伙+1-丈曲) 7=/+1nn4 兀]+ 3X2 = 24< 3兀]+ 3七 _ 兀3 二30 _x> + = —24输入A二[4 3 0;3 3 -l;0 -1 4]; b二[24;30;-24];x0二[0;0;0];[v, sN, vChain]=gaussSeidel (A, b, xO, 0、00001, 11) 输出:V 二0、616911、1962-4、2056sN 二11vChain =6、000010、0000-6、0000-1、50002、0000-3、50004、500010、3333-5、5000-1、75003、6667-3、41673、250010、6111-5、0833-1、95835、0556-3、34722、208310、8426-4、7361-2、13196、2130-3、28941、340311、0355-4、4468-2、27667、1775-3、24110、616911、1962-4、2056000000000000所以结果为:Y Y0、6169, 2二11、1962, "3二_4、2056 。
2.3SOR迭代在很多1W况下,Jacobi与Gauss—Seidel法收敛速度较慢,SOR法就是Gauss —Seidel法的一种加速方法,需要施加合适的松弛因子。
若L、U、D为上述的L、U、D o S0R迭代公式为X'k+l) = L u.X a> + f , 其中厶.= (P-coL)~x((1 —co)D + coU)J' = a)(D-a)L)~l e[1,2] o用SOR迭代求解下列方程组。
0.76^ -0.0L V2-0.14X3-0.16X4 =0.68-0.0lx, +O.8&C2 -0 03xj +0.06兀4 = 1.18一0.14兀]-0.03兀2 + 1.01x3-0.12X4 = 0.12-0.16x, +0.06吃一0.12疋+0.72*4 =0.74取初始点x⑼=(0,0,0,0)丁松弛因子co=1.05,精度要求£ = 10“。
输入A二[0、76 -0、01 -0、14 -0、16;-0、01 0、88 -0、03 0、06;一0、14 一0、03 1、01 一0、12;-0、16 0、06 一0、12 0、72];B二[0、68 1、18 0、12 0、72];X0=[0;0;0;0];W二1、05[x, n]=S0R(A, b, x0, w)输出x=1、27151、28440、48581、2843n=7有上述结果得出:经过7次迭代后,该方程组的解为xl二1、2715, x2=l、2844, x3二0、483& x4=l、28432.4迭代法收敛引理:设A为n阶方阵,则lim屮=0的充要条件为p{A) <1(/?(A)为普 A — 8半径)。
证明:必要性若lim屮=0曲矩阵收敛的定义知巴I屮卜0有因为p(A) < ||州所以0 V p(A) < ||A|| 由夹逼定理可得出lim[Q(A)F = 0 , 乂因为p(A k) = [p(A)r所以由X->00lim[p(A)]' = 0 可得出p(A) < 1A—>X充分性:若。