解线性方程组的直接法和迭代法

合集下载

线性代数求解方法和技巧

线性代数求解方法和技巧

线性代数求解方法和技巧线性代数是数学中重要的一个分支,研究向量空间、线性变换和线性方程组等内容。

在实际问题中,我们常常需要用线性代数的方法来解决问题,因此掌握线性代数的求解方法和技巧对于理解和应用数学是非常重要的。

首先,我们讨论线性方程组的求解方法。

线性方程组是由一组线性方程组成的方程组,其中每个方程的未知数的次数都为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 分解法等,另一类是迭代法(近似法),包括雅克比迭代法、高斯迭代法、超松弛迭代法等。

线性方程组的求解方法详解

线性方程组的求解方法详解

线性方程组的求解方法详解在数学中,线性方程组是求解多元一次方程组的一种重要方法。

它在各种科学领域中都有广泛的应用。

本文将详细介绍线性方程组的求解方法,包括高斯消元法、LU分解法和Jacobi迭代法。

一、高斯消元法高斯消元法是求解线性方程组最常用的方法之一。

它基于矩阵的基本变换,通过不断变形将线性方程组转化成行最简形式。

具体步骤如下:1. 将增广矩阵写为(A|B)的形式,其中A为系数矩阵,B为常数向量。

2. 先将系数矩阵化为上三角矩阵。

从第一行开始,每一行都使用该行的第一个元素除以它下面的元素,将其所在列下面的所有元素消为0。

这个过程称为消元。

3. 接着,再将上三角矩阵转化为行最简形式。

从最后一行开始,每一行都使用该行的第一个非零元素除以它上面的元素,将其所在列上面的所有元素都消为0。

4. 通过以上变换,线性方程组的解就可以直接读出。

具体来说,最后一行所对应的方程是一个单变量方程,规定该变量的解为该方程的解,再逐步回代到前面的方程中求解其他变量即可。

高斯消元法的优点是计算量比较小,而且对于系数矩阵满秩的情况,它的解决效率极高。

但是,当系数矩阵有多个零行或行向量是另一行向量的倍数时,高斯消元法就会出现退化的情况,此时需要通过其他方法进行求解。

二、LU分解法LU分解法是一种比高斯消元法更加高效的求解线性方程组的方法。

它基于矩阵的分解,将系数矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积形式。

具体步骤如下:1. 将增广矩阵写为(A|B)的形式,其中A为系数矩阵,B为常数向量。

2. 通过高斯消元法将系数矩阵化为一个上三角矩阵U和一个下三角矩阵L的乘积形式,即A=LU。

3. 将线性方程组转化为LY=B和UX=Y的两个方程组,其中L 和U是A的三角分解矩阵。

4. 先解LY=B,得到向量Y。

再解UX=Y,便得到线性方程组的解。

相对于高斯消元法,LU分解法的计算量更小,尤其是当多次求解同一个系数矩阵时,LU分解法可以提高计算效率。

线性方程组的求解方法

线性方程组的求解方法

线性方程组的求解方法线性方程组是数学中的基础概念,广泛应用于各个领域,如物理、经济学、工程学等。

解决线性方程组的问题,对于推动科学技术的发展和解决实际问题具有重要意义。

本文将介绍几种常见的线性方程组的求解方法,包括高斯消元法、矩阵法和迭代法。

一、高斯消元法高斯消元法是求解线性方程组的经典方法之一。

它的基本思想是通过一系列的行变换将方程组化为阶梯形或行最简形,从而得到方程组的解。

首先,将线性方程组写成增广矩阵的形式,其中增广矩阵是由系数矩阵和常数向量组成的。

然后,通过行变换将增广矩阵化为阶梯形或行最简形。

最后,通过回代法求解得到方程组的解。

高斯消元法的优点是简单易懂,容易实现。

但是,当方程组的规模较大时,计算量会很大,效率较低。

二、矩阵法矩阵法是求解线性方程组的另一种常见方法。

它的基本思想是通过矩阵运算将方程组化为矩阵的乘法形式,从而得到方程组的解。

首先,将线性方程组写成矩阵的形式,其中矩阵是由系数矩阵和常数向量组成的。

然后,通过矩阵运算将方程组化为矩阵的乘法形式。

最后,通过求逆矩阵或伴随矩阵求解得到方程组的解。

矩阵法的优点是计算效率高,适用于方程组规模较大的情况。

但是,对于奇异矩阵或非方阵的情况,矩阵法无法求解。

三、迭代法迭代法是求解线性方程组的一种近似解法。

它的基本思想是通过迭代计算逐步逼近方程组的解。

首先,将线性方程组写成矩阵的形式,其中矩阵是由系数矩阵和常数向量组成的。

然后,选择一个初始解,通过迭代计算逐步逼近方程组的解。

最后,通过设定一个误差限,当迭代结果满足误差限时停止计算。

迭代法的优点是计算过程简单,适用于方程组规模较大的情况。

但是,迭代法的收敛性与初始解的选择有关,有时可能无法收敛或收敛速度较慢。

综上所述,线性方程组的求解方法有高斯消元法、矩阵法和迭代法等。

每种方法都有其适用的场景和特点,选择合适的方法可以提高计算效率和解决实际问题的准确性。

在实际应用中,根据问题的具体情况选择合适的方法进行求解,能够更好地推动科学技术的发展和解决实际问题。

07线性代数方程组的解法

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.高斯消元法高斯消元法是求解线性方程组的一种常用方法。

该方法的基本思想是通过对方程组进行一系列简化操作,使得方程组的解易于求得。

首先将方程组表示为增广矩阵,然后通过一系列的行变换将增广矩阵化为行简化阶梯形,最后通过回代求解出方程组的解。

2.列主元高斯消元法列主元高斯消元法是在高斯消元法的基础上进行改进的方法。

在该方法中,每次选取主元时不再仅仅选择当前列的第一个非零元素,而是从当前列中选取绝对值最大的元素作为主元。

通过选取列主元,可以避免数值稳定性问题,提高计算精度。

3.LU分解法LU分解法是一种将线性方程组的系数矩阵分解为一个下三角矩阵L 和一个上三角矩阵U的方法。

首先进行列主元高斯消元法得到行阶梯形矩阵,然后对行阶梯形矩阵进行进一步的操作,得到L和U。

最后通过回代求解出方程组的解。

4.追赶法(三角分解法)追赶法也称为三角分解法,适用于系数矩阵是对角占优的三对角矩阵的线性方程组。

追赶法是一种直接求解法,将系数矩阵分解为一个下三角矩阵L和一个上三角矩阵U,然后通过简单的代数运算即可求得方程组的解。

5.雅可比迭代法雅可比迭代法是一种迭代法,适用于对称正定矩阵的线性方程组。

该方法的基本思想是通过不断迭代求解出方程组的解。

首先将方程组表示为x=Bx+f的形式,然后通过迭代计算不断逼近x的解。

6.高斯-赛德尔迭代法高斯-赛德尔迭代法是雅可比迭代法的改进方法。

该方法在每一次迭代时,使用已经更新的解来计算新的解。

相比于雅可比迭代法,高斯-赛德尔迭代法的收敛速度更快。

7.松弛因子迭代法松弛因子迭代法是一种对高斯-赛德尔迭代法的改进方法。

该方法在每一次迭代时,通过引入松弛因子来调节新解与旧解之间的关系。

可以通过选择合适的松弛因子来加快迭代速度。

以上是一些常用的线性方程组求解方法,不同的方法适用于不同类型的线性方程组。

在实际应用中,根据问题的特点和要求选择合适的求解方法可以提高计算的效率和精度。

第五章 解线性方程组的迭代解法

第五章 解线性方程组的迭代解法
i 1 n 1 xi = [bi ∑ aij x j ∑ aij x j ] , i = 1, 2,, n. (*) ) aii j =1 j = i +1
定义迭代法为: 定义迭代法为:
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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值分析方法中方程求解的直接法和迭代法第3章 解线性方程组的直接法一、消元法1. 高斯消元法(加减消元):首先将A 化为上三角阵,再回代求解。

11121121222212n n n n nnn a a a b a a a b a a a b ⎛⎫⎪ ⎪⎪⎪⎝⎭ (1)(1)(1)(1)(1)11121311(2)(2)(2)(2)222322(3)(3)(3)3333()()00000n n nn n nnn a a a a b a a a b a a b a b ⎛⎫⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭步骤如下:第一步:1111,2,,i a i i n a -⨯+=第行第行11121121222212n n n n nnn a a a b a a a b a a a b ⎛⎫⎪ ⎪⎪⎪⎝⎭ 111211(2)(2)(2)2222(2)(2)(2)200n nn nnn a a a b a a b a a b ⎛⎫ ⎪ ⎪ ⎪ ⎪⎝⎭第二步:(2)2(2)222,3,,i a i i n a -⨯+=第行第行 111211(2)(2)(2)2222(2)(2)(2)200nnn nnn a a a b a a b a a b ⎛⎫⎪ ⎪ ⎪ ⎪⎝⎭11121311(2)(2)(2)(2)222322(3)(3)(3)3333(3)(3)(3)300000n n n n nn n a a a a b a a a b a a b a a b ⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭类似的做下去,我们有:第k 步:()()k ,1,,k ikk kka i i k n a -⨯+=+第行第行。

n -1步以后,我们可以得到变换后的矩阵为:11121311(2)(2)(2)(2)222322(3)(3)(3)3333()()00000n n nn n nnn a a a a b a a a b a a b a b ⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭注意到,计算过程中()k kk a 处在被除的位置,因此整个计算过程要保证它不为0。

所以,Gauss 消元法的可行条件为:()0k kka ≠。

就是要求A 的所有顺序主子式均不为0,即1111det 0,1,,i i ii a a i n a a ⎛⎫ ⎪≠= ⎪ ⎪⎝⎭因此,有些有解的问题,不能用Gauss 消元求解。

另外,如果某个()k kk a 很小的话,会引入大的误差。

2. 列主元消元法在Gauss 消元第k 步之前,做如下的事情:若()()max ||||k k ikjk k i na a ≤≤=交换k 行和j 行 213435435213162162⎛⎫⎛⎫⎪ ⎪→ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭43543543511213213000224444213113000044227⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪⎪⎪ ⎪ ⎪ ⎪ ⎪-→→ ⎪ ⎪ ⎪ ⎪⎪ ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭其实就按行变换,不改变方程组的解,同时又有效地克服了Gauss 消元地缺陷。

3. Gauss-Jordan 消元法将在Gauss 消元第k 步,变为(遇上11a =0的则需要换一行):()()k ,1,,1,1,,k ikk kka i i k k n a -⨯+=-+第行第行将该行上、下三角地部分都变为0,即对角阵,同时主元系数也要消,这样就不用回代了。

10001001⎛⎫ ⎪ ⎪ ⎪ ⎪⎝⎭二、直接分解法Gauss 消元法的第k 步:()()k ,1,,k ikk kka i i k n a -⨯+=+第行第行从矩阵理论来看,相当于左乘矩阵:()()()()1()11,,1,,11k k ikik k k k kkkk nka l i k n l a l +⎛⎫ ⎪ ⎪⎪-==+ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭。

因此,整个Gauss 消元法相当于左乘了一个单位下三角阵。

21()1()()111111k k kk n n nknn l L l l l l +-⎛⎫ ⎪ ⎪ ⎪=⎪ ⎪ ⎪ ⎪ ⎪⎝⎭所以有 LA U =,L 为单位下三角阵,U 为上三角阵。

⇒1 A L U -=因此Ly bAx b LUx b Ux y=⎧=⇒=⇒⎨=⎩我们可以通过2次反代过程求解方程组,分解的理论由Gauss 消元得出,因此分解能够进行的条件与Gauss 消元一样。

1. Doolittle 分解L 为下三角,U 为单位上三角111211112121222212221212111n n n n n n nn n n nn a a a u u u a a a l u u a a a l l u ⎛⎫⎛⎫⎛⎫⎪⎪⎪ ⎪ ⎪⎪= ⎪ ⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭比较第1行:1111 1,, j j j j a u j n u a ==⇒=比较第1列:11111111u 2,, i i i i a a l i n l u ==⇒=比较第2行:2211221211 2,, j j j j j j a l u u j n u a l u =+=⇒=-比较第2列:21122112222222u u u 3,, i i i i i i a l a l l i n l u -=+=⇒=111211112121222212221212111n n n n n n nn n n nn a a a u u u a a a l u u a a a l l u ⎛⎫⎛⎫⎛⎫⎪⎪⎪ ⎪ ⎪⎪= ⎪ ⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭比较第k 行:1111,, k k kj kr rj kj kj kj kr rj r r a l u u j k n u a l u --===+=⇒=-∑∑比较第k 列:11111,, k ik ir rkk r ik ir rk ik kk ik r kka l u a l u l u i k n l u --==-=+=+⇒=∑∑分解过程完毕,加上两次反代过程:111, 1,, , ,,1i i i ij j j n i ij jj i i iiy b l y i ny u x x i n u -==+=-=-==∑∑这里我们举个例子说明一下快速求解简单方程组的方法:213213213151151121222222243150121--⎛⎫⎛⎫-⎛⎫ ⎪⎪⎪ ⎪ ⎪→-→- ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭10021315110,022********L U ⎛⎫ ⎪-⎛⎫⎪ ⎪⎪ ⎪==- ⎪ ⎪ ⎪ ⎪⎝⎭ ⎪⎝⎭然后通过Ux y =,得x 的解。

2. Courant 分解L 为下三角,U 为单位上三角111211112121222212221212111n n n n n n nn n n nn a a a l u u a a a l l u a a a l l l ⎛⎫⎛⎫⎛⎫⎪⎪⎪ ⎪ ⎪⎪= ⎪ ⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭ 比较第k 列:1111,, k k ik ir rk ik ik ik ir rk r r a l u l i k n l a l u --===+=⇒=-∑∑比较第k 行:11111,, k kj kr rjk r kj kr rj kk kj kj r kka l u a l u l u j k n u l --==-=+=+⇒=∑∑两次反代过程:111, 1,, , ,,1i i ij jj i iini i ijjj i b l y y i n l x y u x i n -==+-===-=∑∑这里我们也举个例子说明上述快速求解简单方程组的方法:11121112112112 1.50.511011********* 1.5 2.5--⎛⎫⎛⎫ ⎪ ⎪--- ⎪ ⎪→ ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭ 1001112120001 1.50.5,1220001011 1.5 2.50001L U -⎛⎫⎛⎫ ⎪ ⎪--⎪⎪== ⎪ ⎪ ⎪ ⎪-⎝⎭⎝⎭ 下面,我们对一下特殊的矩阵,提出一些特定的分解法3. 三对角阵的追赶法1111222211111n n nn n n a b c a b c a αβγαβγα--⎛⎫⎛⎫⎛⎫⎪ ⎪⎪ ⎪ ⎪⎪= ⎪⎪⎪⎪ ⎪⎪⎝⎭⎝⎭⎝⎭ 11 , 2,, , 1,, , 0 , 1,,i i i i i i i i i c i n a c i n c bi nγαββα-⎧==⎪⎪=-==⎨⎪==⎪⎩11() , 1,, , ,,1 (0)i i i ii i i i i n f c y y i nx y x i n αββ-+-⎧==⎪⎨⎪=-==⎩ 所以,有计算过程如下:11 1,,()i i i i i i ii i i i i a c bi n f c y y αββαα--⎧⎪=-⎪⎪==⎨⎪-⎪=⎪⎩4. 平方根法(对称正定阵的LDLT 分解)若A 对称正定,则有下三角整L ,使得1112111112112122221222221212Tn n n n n n nn n n nn nn A LL a a a l l l l a a a l l l l a a a l l l l =⎛⎫⎛⎫⎛⎫⎪⎪⎪ ⎪ ⎪⎪= ⎪ ⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭所以有:1122111()(),1,,k kk kkkr r k ik ik kr r ik kk l a l a l l l i k nl -=-=⎧=-∑⎪⎪⎨-∑⎪==+⎪⎩又11112122212212121'1''1n n nn n n nn l l l l l l l l l l l l ⎛⎫⎛⎫⎛⎫⎪⎪⎪ ⎪ ⎪⎪= ⎪ ⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭则有T T T A LDD L LDL == 12121211 1n n n d l d L D l l d ⎛⎫⎛⎫⎪⎪ ⎪ ⎪== ⎪ ⎪⎪ ⎪⎝⎭⎝⎭1112111211121222212221212111n n n n n n nn n n n a a a d d l d l a a a l d d l a a a l l d ⎛⎫⎛⎫⎛⎫⎪⎪⎪ ⎪ ⎪⎪= ⎪ ⎪⎪⎪⎪⎪⎝⎭⎝⎭⎝⎭比较等号两边后,有12111(),1,,k k kk kr r r k ik ik kr r r ik k d a l d a l l d l i k nd -=-=⎧=-∑⎪⎪⎨-∑⎪==+⎪⎩为了提高数值稳定性, 可考虑列主元三角分解法, 设已完成A=LU 的k-1步分解计算, 矩阵分解成1112112122221112111212kn k n k k k k k n k k kk kn n n nknn u u u u u u u u u a a a a ----⎛⎫⎪ ⎪⎪⎪ ⎪ ⎪⎪ ⎪ ⎪⎝⎭l l l l l l l 设1111max()k k ik ij jk tk tj jk k t nj j a u a u --≤≤==-=-∑∑l l相当于取11k kk ik ij jk j u a u -==-∑l 为第k 步分解的主元素.但要注意方程组的常数项也要相应变换.第4章 解线性方程组的迭代法直接法得到的解是理论上准确的,但是我们可以看得出,它们的计算量都是3n 数量级,存储量为2n 量级,这在n 比较小的时候还比较合适(n<400),但是对L D于现在的很多实际问题,往往要我们求解很大的n 的矩阵,而且这些矩阵往往是系数矩阵就是这些矩阵含有大量的0元素。

相关文档
最新文档