第二章 解线性代数方程组的直接法
第二章 线性方程组的直接解法
a i(kk ) l ik = ( k ) a kk a ( k +1) = a ( k ) − l a ( k ) ij ik kj ij ( k +1) = 0 a ik b ( k +1) = b ( k ) − l b ( k ) i ik k i
( i = k + 1, ⋯ , n ) ( i , j = k + 1, ⋯ , n ) ( i = k + 1, ⋯ , n ) ( i = k + 1, ⋯ , n )
定理2 定理2.1 高斯消元法消元过程能进行到底的充要条件是系 n- 阶顺序主子式不为零; Ax=b 能用高斯消元 数阵A的 数阵 A 的 1 到 n-1 阶顺序主子式不为零 ; Ax=b能用高斯消元 法解的充要条件是A的各阶顺序主子式不为零 的各阶顺序主子式不为零. 法解的充要条件是 的各阶顺序主子式不为零.
(i=2,3,⋯,k) )
(i ) 显然, Di ≠ 0 ↔ a ii ≠ 0 , 可知,消元过程能进行到底的充 显然, 可知, 要条件是D 要条件是 i≠0 ,(i=1,2,⋯,n-1),若要回代过程也能完成,还应 , 若要回代过程也能完成, 加上D | | ,综合上述有: 加上 n=|A|≠0,综合上述有:
⋯
( a kkk )
⋮
( a nkk )
⋯ a 1(1 ) b1(1 ) n (2) (2) ⋯ a 2 n b2 ⋯ ⋯ ⋯ (k ) (k ) ⋯ a kn b k ⋯ ⋮ ⋮ (k ) (k ) ⋯ a nn b n
7
结束
本次消元的目的是对框内部分作类似第一次消元的处 ( (k 消掉第k+1到第 个方程中的 k项,即把 akk ) ,k到 ank ) 化 到第n个方程中的 理,消掉第 到第 个方程中的x +1 为零.计算公式如下: 为零.计算公式如下:
线性方程组的解法例题线性方程组的解法
线性方程组的解法例题线性方程组的解法第二章线性方程组的解法n阶线性方程组的一般形式为:a11x1,a12x2, ,a1nxn b1 ax,ax, ,ax b 2112222nn2(2.0.1)an1x1,an2x2, ,annxn bnAx b用矩阵表示为: 其中A称为系数矩阵,x称为解向量,b称为常数向量(简称方程组自由项),它们分别为:x1 b1 a11a12a1nx b aa2122a2n x 2 b 21,, Axn bn an1an2ann如果矩阵A非奇异,即A的行列式值det(A) 0,则根据克莱姆(Cramer)规则,方程组有唯一解:Di,i 1,2, ,n xi D其中D det(A),Di表示D中等i列换b后所得的行列式值。
但克莱姆规则不适用于求解线性代数方程组,因为计算工作量大得难以容忍。
实际用于求解线性代数方程组的计算方法主要有两种:一是消去法,它属于直接解法;二是迭代解法。
消去法的优点是可以预先估计计算工作量,并且根据消去法的基本原理,可以得到矩阵运算(如矩阵求逆等)的求解方法。
但是,由于实际计算过程总存在有误差,由消去法得到的结果并不是绝对精确的,存在数值计算的稳定性问题。
迭代解法的优点是简单,便于编制计算机程序。
在迭代解法中,必须考虑迭收敛速度快慢的问题。
?2.1 线性方程组的直接计算求解线性代数方程组的直接解法主要是消去法(或称消元2法)。
消去法的基本思想是通过初等行变换:将一个方程乘以某个常数,以及将两个方程相加或相减,减少方程中的未知数数目,最终使每个方程中含一个未知数,从而得到所需要的解。
2.1.1 三角形方程组的计算对下三角形方程组:a11x1 b1ax,ax b 2112222(2.1.1)an1x1,an2x2, ,annxn bn可以通过前代的方法求解:先从第1个方程求出x1,代入第2个方程求出x2,依次类推,可以逐次前代求出所有xi(i 1,2, ,n),计算公式如下:b1x1 a11i~1bi~ aij xj(2.1.2)j 13xi , i 2, 3, , n aii对上三角形方程组:a11x1,a12x2, ,a1nxn b1ax, ,ax b 2222nn2annxn bn(2.1.3)可以通过回代的方法求解:先从第n个方程求出xn,代入第n~1个方程求出xn~1,依次类推,可以逐次回代求出所有xi(i n,n~1, ,1),计算公式如下:bnxn annnbi~ aij xj(2.1.4)j i,1xi , i n~1, n~2, , 1 aii2n 前代法和回代法的计算量都是次四则运算。
数值计算方法总结
模型误差 数据误差 截断误差 计算误差 在建立数学模型时,忽略次要因素而造成的 由于问题中的值通过观察得到的,从而产生误差 通过近似替代,简化为较易求解的问题 由于计算机中数的位数限制而造成的
第1章 数值计算方法的一般概念
1.2 误差
~ x 设 为真值, x 为真值的近似值
绝对误差 绝对误差:是指近似值与真正值之差或差的绝对 值,即 x x x,或 x 绝对误差界:用一个满足 绝对误差的大小,并记为 的数 ,来表示
分为n -1步, 第k步变换n - k 行 : 求倍数, 再从n 1- k 个元素中减去第k 行 对应列的倍数,因此所需乘除次数: n3 n 2 5n N1 (n k )(n 1 k 1) 3 2 6 k 1
n
2.回代运算量
求xn需做1次除法, 求xn-1需做1次乘法和1次除法,..., 求x1需n -1次 乘法和1次除法,因此所需乘除次数: n(n 1) N 2 1 2 ... n n3 2 2 n 因此,N N1 N 2 n 3 3
j i, i 1,..., n j i 1, i 2,..., n 1
第2章 解线性代数方程的直接法
2.2 三角分解法 2.2.3 追赶法
b1 a 1 A A b
作克洛特分解
c1 b2 a2
c2 b3 c3 an 1 bn 1 cn 1 an
选主元方法分为行主元法与全主元法
第2章 解线性代数方程的直接法
2.2 三角分解法 2.2.1 杜里特尔分解法 高斯消去法的消去过程,实质上是把系数矩阵A分解为单位下三角矩 阵L与上三角矩阵R的乘积,并且求解方程组Ly=b的过程,回代过程是求解 上三角形方程组Rx=y
线性代数方程组的直接解法赖志柱
第二章线性代数方程组的直接解法教学目标:1.了解线性代数方程组的结构、基本理论以及相关解法的发展历程;2.掌握高斯消去法的原理和计算步骤,理解顺序消去法能够实现的条件,并在此基础上理解矩阵的三角分解(即LU分解),能应用高斯消去法熟练计算简单的线性代数方程组;3.在理解高斯消去法的缺点的基础上,掌握有换行步骤的高斯消去法,从而理解和掌握选主元素的高斯消去法,尤其是列主元素消去法的理论和计算步骤,并能灵活的应用于实际中。
教学重点:1. 高斯消去法的原理和计算步骤;2. 顺序消去法能够实现的条件;3. 矩阵的三角分解(即LU分解);4. 列主元素消去法的理论和计算步骤。
教学难点:1. 高斯消去法的原理和计算步骤;2. 矩阵的三角分解(即LU分解);3. 列主元素消去法的理论和计算步骤。
教学方法:教具:引言在自然科学和工程技术中,许多问题的解决常常归结为线性方程组的求解,有的问题的数学模型中虽不直接表现为线性方程组,但它的数值解法中将问题“离散化”或“线性化”为线性方程组。
例如,电学中的网络问题、船体数学放样中建立三次样条函数问题、最小二乘法用于求解实验数据的曲线拟合问题、求解非线性方程组问题、用差分法或有限元法求解常微分方程边值问题及偏微分方程的定解问题,都要导致求解一个或若干个线性方程组的问题。
目前,计算机上解线性方程组的数值方法尽管很多,但归纳起来,大致可以分为两大类:一类是直接法(也称精确解法);另一类是迭代法。
例如线性代数中的Cramer法则就是一种直接法,但其对高阶方程组计算量太大,不是一种实用的算法。
实用的直接法中具有代表性的算法是高斯(Gauss)消元法,其它算法都是它的变形和应用。
在数值计算历史上,直接法和迭代法交替生辉。
一种解法的兴旺与计算机的硬件环境和问题规模是密切相关的。
一般说来,对同等规模的线性方程组,直接法对计算机的要求高于迭代法。
对于中、低阶(200n )以及高阶带形的线性方程组,由于直接法的准确性和可靠性高,一般都用直接法求解。
上海交通大学计算方法课件(宋宝瑞)CH.2(1)
1第二章 解线性方程组的直接法解线性方程组11112211211222221122n n n n n n nn n na x a x a xb a x a x a x b a x a x a x b+++=⎧⎪+++=⎪⎪⎨⎪+++=⎪⎪⎩或写成矩阵式Ax b =其中()1212,(,,,),(,,,)T Tij n n n nA a x x x x b b b b ⨯=== Gauss 消去法(矩阵行变换法)第k 次消元公式()()(1)()()(1)()()/(1,,)(,1,,)(1,,)k k ik ik kk k k k ij ij ik kj k k k i i ik k m a a i k n a a m a i j k n b b m b i k n ++==+=-=+=-=+计算中,中间结果不必保留,进行一次变换后原来存放(1)k A -的单元存放()k A,(1)k b-的单元存放()k b。
因此,我们得到Gauss消去法的算法:2循环:1,2,,k = n-1何时可行?即第k 步 Gauss 消去法可实行,易见充要条件是()0k kk a ≠若A 的各阶顺序主子式 *det()0ij k k a ≠ 1,,1k n =- ,则有:()**()()()1122()det()det() ||k ij k k ij k kk k k kk k kk a a a a a a =⇔≠ 消元过程可进行到 1k n =-。
因此,可以用Gauss 消去法解线性方程组的充要条件是系数矩阵的各阶顺序主子式不为0。
最后得到()()() n n n A x b A =是上三角阵()()k k A x b =与Ax b =同解2,,k n =解()()n n A x b=只需递推(回代过程)2211112()/, ,,1(0 = 1)nk k kjj kk j k k k i i i k i k x b ax a k n k k a a =+===-=>=∑∑∏ 当时,规定:3计算量 第k 步消元计算ik m 用(n-k )次除法,算诸()k ij a 用2(-)n k 乘法和2(-) n k 次加减法, 对1,,1k n =- 相加,可得消元过程共需2(1)/3n n -⨯÷次 (1)(21)/6n n n -- 右端 (1)()n bb →(1)/2 n n -⨯÷ (1)/2 +n n --(1)/2 (1)/2 +-n n n n -⨯÷-回代3233 /3/3 /3(1)(25)/6 /3n n n n n n n n +-≈-+≈总数:乘除法加减法矩阵的三角分解(用矩阵乘法分解的观点看Gauss 消去法)对A 作行变换相当于左乘初等矩阵,例如(1)(2)AA →(2)1A L A =其中421131110-1 -01-001n m L m m ⎛⎫ ⎪ ⎪⎪ ⎪ ⎪ ⎪⎝⎭= 类似的讨论易知:()()1111 ,,n n n n A L L A b L Lb --==1,,100001 00000001 k k k n k L m m k +⎛⎫ ⎪ ⎪ ⎪⎪- ⎪ ⎪ ⎪ ⎪-⎝⎭=第列令()1111111121313212,1= := 110 =11n n n n n n n U A A L L U L L L m m m m m m -------=⎛⎫⎪ ⎪ ⎪⎪⎪ ⎪ ⎪ ⎪⎝⎭上三角阵则单位下三角阵5定理:**(),det()0 1,,1ij n n ij k k A a a k n =≠=- ,则A 可表示为A=LU L :单位下三角阵,U 上三角阵,且分解唯一。
21高斯消元法
对j= k+1~n+1(列)令 aij aij cakj
回代过程是解同解的上三角形方程组
a11x1 a12x2
a22 x2
a1,n1 xn1 a1n xn
a2,n1xn1 a2 ,n xn
a x n1,n1 n1 an1,n xn ann xn
素,……,第n-1步消去an-1,n-1下方元素。即第k 步将第k行的适当倍数加于其后各行,或可说是 从k+1~n行减去第k行的适当倍数,使它们的第k 列元素变为零,而其余列元素减去第k行对应列 元素的倍数。
因此,如把增广矩阵 A 变换前后都在计算
机上用同一数组A存储, 则消去过程可写为:
对k=1~n-1(步)做 对i= k+1~n(行)做
求出x2代回第一个方程时,因 10-5x1+2x2=1, 10-5x1’+2x2’=1 两式相减得10-5(x1- x1’)+2(x2- x2’)=0,可见 | x1- x1’ |=200 000| x2- x2’|
~x 表明 x1的误差被放大200 000倍, x1’自然失真。2
列主元消去法
为了避免出现小主元,在每次消元前进行选 主元。即每次消元前先选取所要消元的列中绝对 值最大的元素作为主元,然后再消元。
通常情况下稳定性彼此相差不大,所以一般 情况都只用列主元消去法。
复习题
1、何谓高斯消去法?它与一般消去法有 何不同?怎样计算行列式?
2、计算机上为什么不用克莱姆法与约当 消去法?
3、何谓主元消去法?有何优点?
具体为:
中选~x在主2第元k,步即的在第其k列中的找元出素绝a对kk值, a最k大~x1,1的k ,元素, aankpk,
第二章 解线性代数方程组的直接法(DOC)
第二章 解线性方程组的直接法本章研究的对象是n 阶线性方程组⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++nn nn n n n n n n b x a x a x a b x a x a x a b x a x a x a .........22112222212111212111 (2.1)其矩阵形式为b AX = (2.1)′其中,)(ij a A =是方程组的系数矩阵,⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=n x x x X ...21,⎪⎪⎪⎪⎪⎭⎫⎝⎛=n b b b b ...21分别为方程组的未知向量和常数向量。
所谓直接法,就是在不计舍入误差时,经过有限步运算能求得方程组精确解的方法。
下面介绍几种较实用的直接法。
2.1 Gauss 消去法 2.1.1 Gauss 顺序消去法高斯(Gauss )消去法实质是消元法,只是步骤规范,便于编程。
它的基本做法是把方程组(2.1)转化成一个等价的三角方程组⎪⎪⎩⎪⎪⎨⎧==++=+++n n nn n n n n g x b g x b x b g x b x b x b 2222211212111 (2.2) 这个过程称为消元。
然后,逐个求出11,,,x x x n n -,这个过程称为回代。
(一) 高斯消去法的计算过程为了符号统一,把方程组(2.1)改写成下面形式⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++)1()1(2)1(1)1()1()1(2)1(1)1()1()1(2)1(1)1( (212)22221111211n nn n n n n b x a x a x a b x a x a x a b x a x a x a n n n(2.3)用矩阵表示为)1()1(b X A = (2.3)′其中⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=)1()1(2)1(1)1(2)1(22)1(21)1(1)1(12)1(11)1(nn n n nn a a a a aa a aa A, ⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=)1()1()1()1(...21n b b b b 若0)1(11≠a ,用第二个方程减去第一个方程的)1(11)1(21/a a 倍,第三个方程减去第一个方程的)1(11)1(31/a a 倍,等等。
第02讲:线性代数方程组求解(直接方法)
A(1) ( A(1)
§2.1 Gauss evaluation method
首先进行消去过程,对 A (1) 分别用-2,-3,-4乘第一行 后加到第2、3、4行有
例:试用高斯顺序消去法求解线性代数方程组:
x1 x2 x3 x4 4 2x x x x 5 1 2 3 4 3 x1 2 x2 x3 x4 7 4 x1 3 x2 2 x3 x4 10
解:线性方程组的增广矩阵为:
(2) a22 0时,用矩阵 第二步:等价于:若 左乘 A (1) 即有
(1) a 0 1 11 0 0 1 (1) l0 L A 1 L 0 2 32 0 0 l n2
(1) a 012 (2) a 022
1
(2) a 0n 2
基本思想 对线性代数方程组所对应的增广矩阵进行一系 列 “把某一行的常数倍加到另一行上去” 这样的 初等行变换,最后得到上三角矩阵所对应的线性代数 方程组,只要回代就可得到原方程组的解。
A
a
(1)
(A
(1)
b ) ( A b)
(1)
(1) ij
aij (i, j 1,2,3, , n)
, n)
§2.1 Gauss evaluation method
(1) a11 0 ( A(3) | b(3) ) 0 0 (1) a12 (2) a22 0 (1) a13 (2) a23 (3) a33 (1) a1(1) b n 1 (2) (2) a2 n b2 (3) (3) a3 b n 3 (3) (3) ann bn
第二章线性代数方程组的直接解法
1 2 r ( 2 ) r 4 0 1 r ( ) r 2 7 0
2 1 3 1
i 行)
1 2 13 2
1 3 4 1 5 3 2 2
(1 a11) (1 a12) (2 a 22 )
a11
( a n2 ) 2
( a11) x1 b1(1) n ( ( 2) x 2 b2 2 ) a2n ( 2) ( 2) a nn x n bn
一般线性方程组使用高斯消去法求解时,
(k 在消元过程中可能会出现 akk ) 0 的情况,这
(k 时消去法将无法进行;即使 akk ) 0 ,但它的
绝对值很小时,用其作除数,会导致其他元素
第3章 解线性方程组的直接法 一般b≠0, 当系数矩阵A非奇异(即detA≠0) 常见的线性方程组是方程个数和未知量个 时,方程组(2.1)有惟一解。 数相同的n阶线性方程组,一般形式为
a11 x1 a12 x2 ... a1n xn b1 a21 x1 a22 x2 ... a2 n xn b2 ...... an1 x1 an 2 x2 ... ann xn bn
(k a ik ) mik (k a kk ) ( k 1) ( (k a ij a ijk ) mik a kj ) ( bi( k 1) bi( k ) mik bk k ) i, j k 1, k 2, , n
② 回代过程
( bn n ) xn (n a nn ) n (i ) ( bi a iji ) x j j i 1 xi ( a iii ) i n 1, n 2, ,1
线性方程组直接法
练习 利用LU分解法求解方程组
1 2 3 x1 2 1 3 5 x2 4. 1 3 6 x3 5
1001 2 3 2 1 答L: U 110 01 2 , y 2 ,x 0 .
111 001 1 1
二、解三对角方程组的追赶法
在数值求解常微分方程边值问题、热传导方程和建立
二、向量和矩阵的范数
定义1 ( 向量范数) x 和 y 是 Rn 中的任意向量 , 向量范数‖•‖是定义
在 Rn上的实值函数, 它满足:
(1) ‖ x ‖≥0, 并且当且仅当 x=0 时, ‖ x ‖=0;
(2) ‖k x ‖=|k| ‖ x ‖, k 是一个实数;
(3) ‖ x + y ‖≤ ‖ x ‖+ ‖ y ‖
1 0 01 2 3
A 2 3
1 5
0 0 1 0
1 0
4
24
LU
3=-72/-24; 2=[-10+4*3]/1;
求解
1=[14-(2*2+3*3)]/1]
Ly (14, 18, 20)T , 得y (14, 10,72)T 同理当 ukk 0或 Ux (14, 10, 72)T , 得x (1, 2, 3)T 很小时,可用
子式 Di 0(i 1,2,,k),即
a11 Di
ai1
a1i
aii
0aa1i((i1i1))
0 Di
Di1 0
由于高斯消去法过在程消中元可能ak(出 kk) 现 0的情况, 这时消去法将无;法即进使行主a元 k(kk) 素0但很小时, 用其作除数,会他导元致素其数量级的长严和重舍增
入误差的扩散,使最得后计也算的解不可靠。
线性代数方程组求解直接方法
LU分解法
将系数矩阵分解为一个下三角矩阵L和 一个上三角矩阵U的乘积,然后通过求 解LY=b和UX=Y两个三角形方程组得到 原方程组的解。LU分解法具有较高的数 值稳定性,适用于中小型方程组。
根据系数矩阵的第一行和最后一行元素, 计算出初始参数。
2. 追赶过程
3. 回代过程
从第二行开始,逐行进行消元,将系数矩 阵转化为上双对角矩阵。
从最后一行开始,逐行回代求解,得到方程 组的解。
平方根法的基本原理与计算步骤
基本原理
1. Cholesky分解
2. 前代过程
3. 回代过程
平方根法是一种适用于对称正 定矩阵线性方程组的求解方法 ,通过Cholesky分解将系数矩 阵分解为下三角矩阵和其转置 的乘积,进而简化计算。
收敛速度
在适当的条件下,雅可比迭代法的收敛速度可能比一般的 迭代法更快。
计算复杂度
雅可比迭代法需要计算雅可比矩阵及其逆矩阵,因此计算 量相对较大;而一般的迭代法只需要进行矩阵与向量的乘 法运算,计算量相对较小。
稳定性
雅可比迭代法的稳定性较好,对初始近似解的要求较低; 而一般的迭代法可能对初始近似解的要求较高,否则可能 导致迭代序列发散。
对系数矩阵进行Cholesky分解 ,得到下三角矩阵L。
通过下三角矩阵L,求解出中间 向量y。
利用中间向量y和下三角矩阵L 的转置,求解出方程组的解。
追赶法与平方根法的比较
适用范围
追赶法适用于三对角矩阵线性方程组, 而平方根法适用于对称正定矩阵线性方
线性代数方程组的解法
线性代数方程组的解法关键词:线性代数方程组;高斯消元法;列主元消元法;三角分解法;杜立特尔分解法;迭代法;雅可比迭代法;高斯-赛德尔迭代法1引言目前,解线性代数方程组在计算机上常用的的方法大致把它分为两类:“直接法”与“迭代法”.在线性代数中曾指出阶线性代数方程组有唯一的解,并且可以用克拉默法则求方程组的解,初次看来问题已经解决,但从使用效果看并不是这样的.因为求阶线性代数方程组,如果用克拉默法则,需要计算个阶行列式,每个阶行列式为项之和,每项又是个元素的乘积,所以计算中仅乘法次数就高达次,当较大时,它的计算量是非常惊人的.因为现在所碰到的很多问题都需要很大的计算量,故需要好用的算法来求解.先来回顾一下回代过程和迭代过程.(1)是一个三角形方程组,当有唯一解时,可以用反推的方式求解,也就是先从第个方程解得, (2)然后代入第个方程,可得到, (3)如此继续下去,假设已得到,, , ,代进第个方程即得的计算, (4)上述求解的过程叫做回代过程.定义1[1] (向量的范数) 若向量的某个实值函数满足1.是非负的,即且的充要条件是 ;2.是齐次的,即 ;3.三角不等式,即对,总是有.那么上向量的范数(或模)就是 .下面给几个最常遇到的向量范数.向量的“1”范数:(5)向量的“2”范数:(6)向量的范数:(7)例1设求 , , .解由式(5),(6)及(7)知.定义2若矩阵的某个实值函数满足1.是非负的,即且的充要条件是 ;2.是齐次的,即 ;3.三角不等式,即对总有;1.矩阵的乘法不等式,即对总有,那么称为上矩阵的范数(或模).表 1是矩阵几个常用算子范数的定义与算式.表 1范数名称记号定义计算公式“1”范数(又名列模)“2”范数(又名谱模)“”范数(又名行模)的极限就是方程组的解向量,这时候在给定允许的误差内,只要适当的大,就可以作为方程组在满足精度要求条件下的近似解.这种求近似解的方法就是解线性方程组的一类基本的迭代解法,其中称为迭代矩阵,公式(9)称迭代公式(或迭代过程),由迭代公式得到的序列叫做迭代序列.如果迭代的序列是收敛的,则称为迭代法收敛;如果迭代的序列是不收敛,则称它是迭代法发散.定理3设 .如果约化主元素,则可以利用高斯消元的方法把方程组约化成三角形方程组来求解,其计算公式如下:(1)消元计算:对依次计算(2)回代计算:3用高斯消元法与列主元消元法解线性代数方程组(重点)!3.1 高斯消元法解方程组用高斯消元的方法求线性代数方程组的解的整个计算过程可分为两个环节,也就是利用按照次序消去未知数的方法,把原来的方程组转化成跟它同解的三角形方程组(这个转化的过程叫消元过程),再通过回代过程求三角形方程组的解,最终得到原来方程组的解.其中按照方程的顺进行消元的高斯消元法,又叫顺序消元法.3.2列主元消元法解方程组列主元消元法实际上是一种行交换的消元法,它跟顺序消元法比较而言,主要特点是在进行第次消元前,不管的值是否等于零,都在子块的第一列中选择一个元,使,并将中的第行元与第行元互相变换(相当于交换同解方程组中的第个方程),然后再进行消元计算得到结果.注:列主元素法的精度虽然稍低于全主元素法[1],但它计算简单,相对比全主元素法它的工作的量大大减少,并且从计算经验和理论分析都可以表明,它与全主元素法同样拥有很好的值稳定性,列主元素法是求解中小型浓密型方程组的最好的方法之一.4用三角分解法解线性代数方程组4.1 矩阵的三角分解定义4把一个阶矩阵分解成两个三角矩阵相乘的形式称为矩阵的三角分解.常见的矩阵三角分解是其中是下三角形的矩阵,是上三角形的矩阵.定理5[1](矩阵三角分解基本定理)设 .若的顺序主子式,那么存在唯一的杜利特尔分解其中是单位下三角形矩阵,为非奇异的上三角形矩阵.如果是单位下三角形的矩阵,是上三角形的矩阵,那么把这种分解法称为杜利特尔分解法,其中杜利特尔分解法是这种三角分解的一种特例,下面主要介绍利用杜利特尔分解法来求方程组的解.4.2 用杜利特尔分解法解线性代数方程组用杜利特尔分解法解方程组的步骤可以把它归纳为(1)实现分解,也就是1.按算式(11)(12)依次计算的第一行元与的第一列元;1.对按算式(13)(14)依次计算的第行元与的第列元.(2)求解三角形方程组,即按算式依次计算 .(3)求解三角形方程组,即按算式依次计算.利用杜利特尔分解法解方程组与高斯消元法是相似的,它重要的优点是:在利用分解,解有相同的系数矩阵的方程组时,用杜利特尔分解法非常方便,只用两个式子就可以得到方程组的解.5用迭代法解线性代数方程组用迭代法求方程组的解,需要考虑迭代过程的收敛性,在下面的讨论中,都假设方程组的系数矩阵的对角阵是不为零的.5.1 用雅可比迭代法解方程组对于一般线性方程组,如果从第个方程解出,就可以把它转化成等价的方程组. (15)从而可以得到对应的迭代公式(16)这就是解一般方程组的分量形式的雅可比(Jacobi)迭代公式.如果把它改成(17)并把系数矩阵表示成(18)其中则可以看出式的左右两端分别是向量和的第个分量,故因为可逆,所以于是就可以得到是雅可比迭代的公式.其中(称为雅可比迭代矩阵), .5.2 用高斯-赛德尔迭代法解方程组高斯-赛德尔迭代法也是常用的迭代法,设线性代数方程组为,则高斯-赛德尔迭代法的迭代公式为(19)其中迭代法(19)就称为高斯-赛德尔迭代法.通过雅可比迭代法类似的途径,就可以得到矩阵的表达式其中(称为高斯-赛德尔迭代矩阵), .高斯-赛德尔迭代法与雅可比迭代法都有算式简单、容易在计算机上实现等优点,但是用计算机来计算时,雅可比迭代法需要两组工作单元用来寄存与的量,而高斯赛-德尔迭代法只需一组工作单元存放或的分量.对于给定的线性方程组,用这两种方法求解可能都收敛或者都不收敛,也可能一个收敛另一个不收敛,两种方法的收敛速度也不一样.5.3 迭代法的收敛条件与误差分析定义6[1]矩阵全部的特征值的模的最大值,叫做矩阵的谱半径,记作 ,即.定理7[1]对任意初始向量迭代过程收敛的充要条件是;当时,越小,那么其收敛的速度是越快的.由定理7可知,用雅可比迭代法求解时,其迭代的过程是收敛的,而用高斯-赛德尔迭代法来求解,其迭代的过程是发散的.在不同条件下,收敛的速度是不同的,对同一矩阵,一种方法是收敛的,一种方法发散.第 7 页。
07线性代数方程组的直接法
D 1 a 11 0 , D2 a 11 a 21 a 12 a 22 0, D k
0
则按顺序Gauss消去法所形成的各主元素
a k k ( k 1, 2 , n )
(k )
a k 1 a kk
均不为零,从而Gauss
消去法可顺利执行。 注:当线性方程组的系数矩阵为对称正定或严格对角 占优阵时,按Gauss消去法计算是稳定的。
3、列主元Gauss消去法计算步骤:
1、输入矩阵阶数n,增广矩阵 A(n,n+1); 2、对于 k 1, 2 , , n (1) 按列选主元:选取 l 使
a lk max a ik 0
k i n
(2) 如果 l k ,交换 A(n,n+1) 的第k行与第l 行元素 (3) 消元计算 :
k 2 , 3, , n
xn yn x k y k rk x k 1
k n 1, n 2 , ,1
§3 矩阵的三角分解法
高斯消元法的矩阵形式
每一步消去过程相当于左乘初等变换矩阵Lk
记: 其中 1 l 21 l 31 l n1 1
( x ij ) n n
由于
AA-1 = AX = I
因此,求A-1的问题相当于解下列线性方程组
A x 11 1 x 21 0 , x n1 0 A x1n x2n x nn 0 1 0 1
(n )
n 1
1
L
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章 解线性方程组的直接法本章研究的对象是n 阶线性方程组⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++nn nn n n n n n n b x a x a x a b x a x a x a b x a x a x a .........22112222212111212111 (2.1)其矩阵形式为b AX = (2.1)′其中,)(ij a A =是方程组的系数矩阵,⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=n x x x X ...21,⎪⎪⎪⎪⎪⎭⎫⎝⎛=n b b b b ...21分别为方程组的未知向量和常数向量。
所谓直接法,就是在不计舍入误差时,经过有限步运算能求得方程组精确解的方法。
下面介绍几种较实用的直接法。
2.1 Gauss 消去法 2.1.1 Gauss 顺序消去法高斯(Gauss )消去法实质是消元法,只是步骤规范,便于编程。
它的基本做法是把方程组(2.1)转化成一个等价的三角方程组⎪⎪⎩⎪⎪⎨⎧==++=+++n n nn n n n n g x b g x b x b g x b x b x b 2222211212111 (2.2) 这个过程称为消元。
然后,逐个求出11,,,x x x n n -,这个过程称为回代。
(一) 高斯消去法的计算过程为了符号统一,把方程组(2.1)改写成下面形式⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++)1()1(2)1(1)1()1()1(2)1(1)1()1()1(2)1(1)1( (212)22221111211n nn n n n n b x a x a x a b x a x a x a b x a x a x a n n n(2.3)用矩阵表示为)1()1(b X A = (2.3)′其中⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=)1()1(2)1(1)1(2)1(22)1(21)1(1)1(12)1(11)1(nn n n nn a a a a aa a aa A, ⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=)1()1()1()1(...21n b b b b 若0)1(11≠a ,用第二个方程减去第一个方程的)1(11)1(21/a a 倍,第三个方程减去第一个方程的)1(11)1(31/a a 倍,等等。
即得与(2.3)等价的方程组 ⎪⎪⎪⎩⎪⎪⎪⎨⎧=++=++=++=+++)2()2(2)2()2(3)2(2)2()2()2(2)2()1()1(2)1(1)1( (23322)222111211nnn n nn n b x a x a b x a x a b x a x a b x a x a x a n n n n (2.4) 用矩阵表示为)2()2(b X A = (2.4)′其中⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=)2()2(3)2(2)2(3)2(33)2(32)2(2)2(23)2(22)1(1)1(13)1(12)1(11)2(000nn n n n n n a a a a a a a a a a a a a A, ⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=)2()2()1()2(...21n b b b b 令),3,2(/)1(11)1(11n i a a m i i ==,则n j i b m b b a m a a i i i j i ij ij ,3,2,)1(11)1()2()1(11)1()2(=⎪⎩⎪⎨⎧-=-= (2.5)类似地,若0)2(22≠a ,(2.4)中第i 个方程减去第二个方程的)2(22)2(2/a a i 倍,得(2.4)的等价方程组⎪⎪⎪⎩⎪⎪⎪⎨⎧=++=++=+++=++++)3()3(3)3()3(3)3(33)3()2()2(3)2(2)2()1()1(3)1(2)1(1)1( (3332)2232211131211nnn n n n b x a x a b x a x a b x a x a x a b x a x a x a x a n n n n n (2.6) 用矩阵表示为)3()3(b X A = (2.6)′其中⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=)3()3(3)3(3)3(33)2(2)2(23)2(22)1(1)1(13)1(12)1(11)3(00000nn n n n n a a a a a a a a a a a A, ⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=)3()2()1()3(...21n b b b b 令),4,3(/)2(22)2(22n i a a m i i ==,则n j i b m b b a m a a i i i j i ij ij ,4,3,)2(11)2()3()2(11)2()3(=⎪⎩⎪⎨⎧-=-= (2.7)若0)3(33≠a ,上述步骤可继续进行下去,经过1-n 步,即得等价的三角方程组⎪⎪⎪⎩⎪⎪⎪⎨⎧==++=+++=++++)()()3(3)3(33)3()2()2(3)2(2)2()1()1(3)1(2)1(1)1( (332)2232211131211n n n n n n n n nn n n b x a b x a x a b x a x a x a b x a x a x a x a (2.8) 用矩阵表示为)()(n n b X A = (2.8)′其中⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=)()3(3)3(33)2(2)2(23)2(22)1(1)1(13)1(12)1(11)(00000n nn n n n n a a a a a a a a a a A , ⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛=)()2()1()(...21n n n b b b b 把系数矩阵化为上三角矩阵的过程称为消元过程。
消元过程元素的计算公式为⎪⎪⎩⎪⎪⎨⎧≤<≤≤=≤≤+≤≤+-=-=≤≤==+++++ni k j a n j k n i k baab b a a a a a n j k i b b a a k ijk kk kkk ikk ik ik kjk kk k ik k ij k ij k i k i k ij k ij 101,1)/()/(,,)1()()()()()1()()()()()1()()1()()1( (2.9)有了等价的三角方程组(2.8),就很容易求解了。
从(2.8)最后一个式子,得)()(/n nnn n n x b x = 把它代入倒数第二个式子,可求出1-n x ,把1,-n n x x 代入倒数第三个式子可求出2-n x ,依次求得全部变量),,2,1(n i x i =,这一过程叫回代过程,其计算公式为⎪⎪⎩⎪⎪⎨⎧--=-==∑+=1,,2,1/)(/)(1)()()()( n n i a x a b x a b x i ii n i j j i ij i i i n nn n n n (2.10)(二) 高斯消去法的运算量因为相对于乘除法而言,加减法所需的时间很少,故只计乘除法的运算量。
消去第一列的1-n 个系数,需做乘法)1(-⨯n n 次, 消去第二列的2-n 个系数,需做乘法)2()1(-⨯-n n 次,……。
共需∑=-=-nk n n k k 12)1(3)1(次乘法,要做的除法运算次数为)1(211-=∑-=n nk n k ,消元过程所需的乘除次数为 n n n N 6523231-+=回代过程所需的乘除次数为)1(212+==∑=n nk N nk ,所以高斯消去法的运算量为n n n N N N 31312321-+=+=2.1.2Gauss 主元消元法高斯消去法消元过程中,第k 步求k n -个倍数)()(/k kkk ik a a 用到的除数)(k kk a ,称为主元,若它为0,或接近于0,计算机将因“0作除数”或“溢出”而中止计算,或产生较大的误差。
例2.1 方程组⎩⎨⎧=+=+210001.02121x x x x 的精确解为.9999/9998,9999/1000021==x x 若在尾数为三位十进数字的计算机上用高斯消元求解。
消去第二个方程的1x ,得⎩⎨⎧-=-=+100001000010001.0221x x x 回代得0,112==x x ,与精确解相差甚远。
这是因为用0.0001作除数,使舍入误差剧增造成的。
为了避免这种情况,先将方程组的两个方程交换一下,变为⎩⎨⎧=+=+10001.022121x x x x 消去第二个方程的1x ,得⎩⎨⎧==+12221x x x 回代得1,112==x x 。
结果和精确解非常接近,因为这样避免了小主元。
一般地,为避免出现小主元,可在消去过程的第k 步,在第k 列)()(,1)(,,,k nk k k k k kk a a a +中选主元(绝对值最大的数)(k pk a ),交换k p ,两行,这种选主元的高斯消去法称为列主元高斯消去法。
若在消去过程的第k 步,在n k ~行,n k ~列中选主元,则称为全主元高斯消去法。
全主元法选主元要花大量的时间,并且需要交换变量的次序。
而列主元高斯消去法,计算简单,且基本能控制误差的影响。
故一般采用列主元法。
算法2.1 列主元高斯消去法1.输入系数矩阵A ,常数列向量b ,阶数n2.对1,,2,1-=n k 做(1) 按列选主元 ||max ||ik ni k pk a a ≤≤=保存主元所在的行标p(2) 若0||=pk a ,则系数矩阵奇异,计算停止;否则顺序进行。
(3) 若k p ≠,交换k p ,两行(4) 计算kk ik ik a a m /=,n k i ,,1 += (5) 消元:n k j i a m a a kjik ij ij ,,1,: +=-=n k i b m b b kik i i ,,1: +=-=3.回代1,,1,,/][:1-=-=∑+=n n i ab a b b iini j jiji i解X 存于常数项b 中例2.2 用列主元高斯消去法求解方程组⎪⎩⎪⎨⎧=+-=-=++-6557710462332121321x x x x x x x x 解 用增广矩阵][b A 表示计算过程⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---6515707104623 行,交换第选主元2110}5,10,3max{,21a ==⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---6515462370710 0,3121为消元,化a a⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--2/552/5010/61610/1070710行,交换第选主元322/5}2/5|,10/1max{|32a ==-⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--10/61610/102/552/5070710032为消元,化a⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-5/315/31002/552/5070710这就是上三角方程组的增广矩阵。