§3 线性方程组
一、含 n 个未知量 n 个方程的线性方程组的解法
[齐次和非齐次线性方程组] 含n个未知量n个方程的线性方程组取如下形式:
n n 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
2 2 1 1
2 2
2 22 1 21
1 1
2 12 1 11
(1)
当常数项b1,b2,...,bn不全为零时,(1)称为非齐次线性方程组;当b1,b2,...,bn全为零时,(1)称 为齐次线性方程组.
如果记
A=(aij)=
nn n
n
n n
a a
a
a a
a
a a
a
2 1
2 22
21
1 12
11
(系数矩阵)
x=(x1,x2,...,xn)
b=(b1,b2,...,bn) (常数项矢量)
式中表示转置,那末线性方程组(1)可写成矩阵形式
Ax=b (2)
[逆矩阵法] 当A≠ 0时,线性方程组(2)的解为
x=A1b 式中A1是系数矩阵A的逆矩阵,x称为(2)的解矢量.
[克莱姆法则] 若A≠ 0,则方程组(1)的解为
x1 A1
,
x2 A2
, ... ,
xn An
式中
nn n
n
n n
a a
b
a a
b
a a
b
2
2 22
2
1 12
1
1
,
nn n n
n n
n a
a a
a b a
a b a
a b a
2 1
3 1
23 2 21
13 1 11
2
, ... ,
n n n n
n
n n
n
b b b
a a
a
a a
a
a a
a
2 1
1 , 2
1
1 , 2 22
21
1 , 1 12
11
这里j(j=1,2,...,n)是以常数项矢量b替换A中第j列矢量后得到的n阶行列式.特别
1° 二阶线性方程组
2 2 2
1 1 1
c y b x a
c y b x a
的解为
x x ,
y y
式中
0
2 2
1
1
a b
b
a ,
2 2
1 1
b c
b c
x
,
2 2
1 1
c a
c a
y
2° 三阶线性方程组
3 3 3 3
2 2 2 2
1 1 1 1
d z c y b x a
d z c y b x a
d z c y b x a
的解为
x x ,
y
y ,
z z
式中
0
3 3 3
2 2 2
1 1 1
c b a
c b a
c b a
,
3 3 3
2 2 2
1 1 1
c b d
c b d
c b d
x
3 3 3
2 2 2
1 1 1
c d a
c d a
c d a
y
,
3 3 3
2 2 2
1 1 1
d b a
d b a
d b a
z
[有回代过程的主元素消去法(高斯消去法)] 对于n阶线性方程组
) , 2 , 1
1 (
, 1
n i
a x
a in
n
j j
ij
可用矩阵表成
1 ,
1 , 2
1 , 1 2
1
2 1
2 22
21
1 12
11
n n
n n
n nn n
n
n n
a a a
x x x
a a
a
a a
a
a a
a
消元步骤:
(1)在系数矩阵中找出绝对值最大的元素(这元素称为主元素),不妨设a11(第1行第1
列元素)为主元素,(不然,如果aij为主元素,可先将第i个方程与第1个方程互换位置,再把 未知数x1和xj的次序调换,那末得到新的系数矩阵,其主元素必在第1行第1列上).将第1个方 程乘以
11 1
a ai
,分别与第i个方程相加(i=2,3,...,n),得到新的n阶线性方程组,用矩阵表示如下
1 ,
1 , 3
1 , 2
1 , 1
3 2 1
3 2
3 33
32
2 23
22
1 13
12 11
0 0 0
n n
n n n
n nn n
n
n n n
b b b a
x x x x
b b
b
b b
b
b b
b
a a
a a
(2)在除第1行外的系数矩阵中找出主元素,不妨设b22为主元素.再将第二个方程乘以
22 2
b bi
分别与第i个方程相加(i=3,4,...n),得到新的n阶线性方程组,用矩阵表示如下
1 ,
1 , 3
1 , 2
1 , 1
3 2 1
3
3 33
2 23
22
1 13
12 11
0 0
0 0 0
n n
n n n
n nn n
n n n
c c b a
x x x x
c c
c c
b b
b
a a
a a
(3)按照(1),(2)的方法进行n2次以后,在第1至n2行外的系数矩阵
n n n
n
n n n n
e e
e e
, 1 ,
, 1 1 , 1
中找出主元素,不妨设en1,n1为主元素,将第n1个方程乘以
1 , 1
1 ,
n n
n n
e
e 与第n个方程相加,得
到新的n阶线性方程组,用矩阵表示如下
1 ,
1 , 1
1 , 3
1 , 2
1 , 1
1 3 2 1
, 1 1 , 1
3 1 , 3 33
, 2 1 , 2 23
22
1 1 , 1 13
12 11
0 0
0 0
0 0 0
0 0 0
n n
n n
n n n
n n nn
n n n n
n n
n n
n n
m e
c b a
x x
x x x
m e e
c c
c
b b
b b
a a
a a a
这样做完n1次之后,消元过程结束.原来系数矩阵已经化成上三角形矩阵(这时未知数 的次序已做了若干次调换).
回代步骤:
由第n个方程解出
nn n n
n m
x m , 1
将xn代入第n1个方程,解出xn1,再将xn1, xn代入第n2个方程解出xn2,...,最后将已 解出的x2,x3,...,xn代入第一个方程解出x1.
注意,这里每当找出主元素后,都经过行与行互换和未知数次序调换等手续,也可以把 调换未知数次序的步骤放到第n-1步之后一起去做,同样可以得到三角形的系数矩阵.
例1 用主元素消去法解方程组
1 2
2
0 11
23
3 2 3 11
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x
解 方程组用矩阵表示为:
1 0 3 2
2 1
1 11 23
2 3 11
3 2 1
x x x
解的步骤如下:
(1) 第2 行第1列的元素-23是主元素,用□ 框起来,并用矩阵表示成
1 2 2 1
0 1 11 23
3 2 3 11
把矩阵第2行乘以 23
11加到第
1行上,把第2行乘以 23
1 加到第3行上,得到矩阵
23 1 47 23 0 35
0 1 11 23
23 3 35 23
0 52
在除第2行外的系数矩阵中找到第二个主元素在第1行第2列上为
23 52.
(2)把第1行乘以
52
35加到第3行上,得到矩阵
第 二 行 互 换 第 一 行 与
52 53 52 0 53 0
0 1 11 23
23 3 35 23
0 52
52 53 52 0 53 0
23 3 35 53
0 52
0 1 11 23
(3)由第三个方程解出x3 1,将x3代入第二个方程,解出x2 2,将x2,x3代入第一个方
程,解出x1 1.
于是方程组的解为(1,2,1).
[无回代过程的主元素消去法] 这种方法与上法基本一样,不同之处在于每次消元时,都
用某一方程去消去其余所有n-1个方程的未知数,例如上面方法的消元步骤(2)中,改成将
第二个方程乘以
22 2
b bi
分别与第i个方程相加,i=1,3,4,...,n(共n-1个,与上面方法不同的是,
这里包括i=1,并设a12=b12),得到新的系数矩阵是
nn n
n n n
c c
c c
b b
b
c c
a
3
3 33
2 23
22
1 13
11
0 0
0 0 0
0
而最后得到对角系数矩阵是:
mnn
c b a
0 0 0
0 0
0
0 0
0
0 0
0
33 22 11
因此不需经过回代过程,即可直接解出各个未知数来.
无回代过程的主元素消去法运算量比有回代过程的大,但在电子计算机上编制程序较为 简单.
为了减少运算量,便于编制程序,第一步可在系数矩阵的第1列找出绝对值最大的元素为 列主元素,消元后,第二步从系数矩阵的第2列找出列主元素进行消元,等等.这种消元法称 为列主元素消去法,它也可达到较好的精确度.
[简单迭代法] 一般步骤:
(1) 将线性方程组
) , , 2 , 1 (
1
n i
b x
a i
n
j j
ij
改写成
) , , 2 , 1 (
1
n i
d x c x
n
j
i j ij
i
(2)任意选取一组初始近似值x1(0),x2(0),,xn(0),作为方程的第0次近似解.
(3)依次使k=1,2,3,...,用公式
) , , 2 , 1 (
1
) 1 ( )
( c x d i n
x
n
j
i k j ij k
i
求出方程的第k次近似解,直至满足
) 1 ( ) ( 1
max ik ik
n
i x x
为止,式中>0为预先给定的允许误差.于是第k次近似解x1(k),x2(k),,xn(k)在允许误差的范围 内满足方程组.注意这里的允许误差不是指近似解与精确解之间的最大绝对误差.
例2 用简单迭代法求方程组
1 2
2
0 11
23
3 2 3 11
3 2 1
3 2 1
3 2 1
x x x
x x x
x x x
的解,其允许误差=0.002. 解 根据例 1 可化为方程组
) 3 ( 23 1
47 23
35
) 2 ( 23 3
35 23
52
) 1 ( 0
11 23
3 2
3 2
3 2 1
x x
x x
x x x
分别由(1),(2),(3),可得迭代方程(满足收敛条件)
4894 . 0 7447
. 0
3269 . 1 6731
. 0
0100 . 0 1100
. 0 7700
. 0
) 1 ( 2 )
( 3
) 1 ( 3 )
( 2
) 1 ( 3 )
1 ( 2 )
1 ( 1 )
( 1
k k
k k
k k
k k
x x
x x
x x
x x
选取初始值x1(0) x2(0) x3(0) 1,逐次迭代得出一系列近似解:
k 1( )
x k x(2k) x3(k) k 1( )
x k x2(k) x3(k)
0 1 1 1 10 0.9581 1.9684 1.0000
1 0.8900 2.0000 0.2553 11 0.9643 2.0000 0.9764
2 0.9079 1.4987 1.0000 12 0.9723 1.9841 1.0000
3 0.8739 2.0000 0.6267 13 0.9769 2.0000 0.9882
4 0.8992 1.7487 1.0000 14 0.9821 1.9920 1.0000
5 0.8947 2.0000 0.8129 15 0.9853 2.0000 0.9941
6 0.9171 1.8741 1.0000 16 0.9887 1.9960 1.0000
7 0.9223 2.0000 0.9062 17 0.9908 2.0000 0.9970
8 0.9392 1.9369 1.0000 18 0.9929 1.9980 1.0000
9 0.9463 2.0000 0.9530 19 0.9943 2.0000 0.9985
迭代19次后得到x1(19) 0.9943,x2(19) 2.0000,x3(19) 0.9985在允许误差=0.002范围内满 足方程组.
[赛得尔迭代法] 把简单迭代法的步骤(3)中的迭代公式改成
) , , 2 , 1
) (
1 ( 1
1 ) ( )
( c x c x d i n
x i
n
i j
k j ij i
j k j ij k
i
其他步骤同简单迭代法.
在一般情况下,赛得尔迭代法比简单迭代法收敛得快些.
例3 用赛得尔迭代法求例 2 中方程组的解.
解 选取初始值x1(0) x2(0) x3(0) 1,并代入方程(1)计算出 8900
.
) 0
1 (
1
x
再将x1(1) 0.8900,x2(0) 1,x3(0) 1代入方程(2)计算出 0000 .
) 2
1 (
2
x
再将x1(1) 0.8900,x2(1) 2.0000,x3(0) 1代入方程(3)计算出 0000 .
) 1
1 (
3
x
再 将 x1(1) 0.8 9 0 0,x2(1) 2.0 0 0 0,x3(1) 1.0 0 0 0, 按 赛 得 尔 迭 代 法 继 续 迭 代 可 以 发 现 , ,
, 2 , 1 , 0000 . 1 ,
0000 .
2 3( )
) (
2 x k
x k k 因此只需考虑方程(1),
1 0100 . 0 2 1100 . 0 7700
.
0 1( 1)
) (
1k xk
x
即解方程 x1 0.7700x1 0.2300 得出x1 1.0000,因此方程组的解为
0000 .
1 1
x ,x2 2.0000,x3 1.0000 [迭代法的收敛条件与误差估计]
方法 收敛条件 第k次近似解 (k)
xi 的最大误差 简
单 迭 代 法
1 max
1 1
n
j n ij
i c
(1) (0)
1
* ) (
1 max
max 1 i i
n i k i
k n i
i x x x x
1 max
1 1
n
i n ij
j c
n
i
i i n k
i
i k
i x x x
x
1
) 0 ( ) 1 ( 1
* ) (
1
1
1 ,
2
n
j i
cij
p
n
i
i i n k
i
i k
i x x
p x p
x
1
2 ) 0 ( ) 1 ( 2
1 2
1
2
* )
( ( )
) 1 (
赛 得 尔 迭 代 法
1 max
1
1
n
j n ij
i c
或 1 max
1
1
n
i n ij
j c
) 0 ( ) 1 ( 1
* )
( max
max 1 i i
n i k i
k
i xi x x x
其中
1
1
1 1
max i
j ij n
i j
ij n
i c
c
[松弛迭代法] 把简单迭代法的迭代公式改成
) , , 2 , 1 (
) 1 ( )
( ( 1)
1
) 1 ( 1
1 ) ( )
(
n i
x d
x c x
c
x i ik
n
i j
k j ij i
j
k j ij k
i
其他步骤同简单迭代法.上式中是常数,称为松弛因子.适当选取可以提高收敛速度,通常
取为1.5~2(当取(1,2)时,称为超松弛迭代法,当取(0,1)时,称为低松弛迭代法).
[共轭斜量法] 线性方程组
Ax=b 可按下面步骤解出:
(1)首先选取适当的近似解为初始值:
)
, , ,
( 1(0) 2(0) (0)
) 0 (
xn
x x
x
(2)计算初次残差矢量
r(0)=bAx(0) 和矢量 p(0)=Ar(0) 式中A为A的转置矩阵.
(3)对i=0,1,2,...,N-1,依次按下列公式迭代
) , (
) ,
( ) , (
) ,
( ) , (
) , (
) ( ) (
) ( ) ( )
( ) (
) ( ) ( )
( ) (
) ( ) (
i i
i i i
i i i i
i i i
i Ap Ap
r A r A Ap
Ap r A p Ap
Ap r a Ap
x(i+1)=x(i)+aip(i) r(i+1)=r(i)-aiAp(i)
) ,
(
) ,
(
) ( ) (
) 1 ( ) 1 (
1 i i
i i
i A r A r
r A r A
p(i+1)=Ar(i+1)+i+1p(i) 式中(a,b)表示矢量a和b的内积(见第八章).
这一过程只要进行到r(N)足够小即可停止.
[追赶法解实三对角线性方程组] 实三对角线性方程组
n n
n n
0
0 0
1 1 3
3 2 2 2
1 1
xn
x x
2 1
=
bn
b b
2 1
可按下面步骤解出:
首先计算
1 1
1 β
,
1 1
1 β
d b
再对k=2,3,...,n-1,依次按下列公式迭代
1
k k k
k
k a
,
1 1
k k k
k k k
k a
d a d b
最后得到线性方程组的解为
) 1 , , 2 , 1 λ (
λ β
1 1 1
n
n k x
d x
a d a x b
k k k k
n n n
n n n n
例4 用追赶法解方程组
2 2 1 4
1 0
2 4 1
0 1 4
3 2 1
x x x
-
解 按上述公式依次计算得到
4 1
1
,
4 1
1 d
15 8 4
) 1 1 ( 4
2
1
,
5 3 4 ) 1 1 ( 4
4 )1 1 ( 2
2
d
2 1 1 4 1 4
1
4 1 3 15
8 5
3
4 3 15 ) 8 1 ( 4
5 )3 1 ( 2
3 3 3
=
=
-
x x x
[平方根法解正定矩阵的线性方程组] 设A为正定矩阵,则线性方程组
Ax=b
可按下面步骤解出:
(1)计算lij(分解A=LL,L=(lij)为实非奇异下三角形矩阵)
) , , 2 , 1 ( )
( 2
1 1
1
2 i n
l a
l
i
k ik ii
ii
1, , 1
, , ) 2
1 ( 1
1 j i
n l i
l l a
l
j
k jk ik ij
jj
ij
式中n为矩阵A的阶数.
(2)计算yi(解方程组Ly=b)
) , , 2 , 1 ( )
1 ( 1
1
n i
y l l b
y
i
k k ik i
ii
i
(3)计算xi(解方程组Lx=y)
) 1 , , 1 , ( ) 1 (
1
n n i x
l l y
x
n
i k
k ki i
ii i
[正定带型矩阵的线性方程组解法] 设A=(aij)为一正定带型矩阵,满足
aij=0, i-j>m (m为正整数) 则线性方程组
Ax=b 可按下面步骤解出:
(1) 计算ij.为了节省存储单元,充分利用矩阵的对称和带型特点,只需存储对角线和对角
线下的带中元素,这时可以改变aij的下标,令 aij=ai,m-i+j 例如当n=4,m=2的对称带型矩阵的存储格式为
42 41
32 31
22 21
12
44 43
34 33 32
23 22 21
12
11 0
0 0 0
0 0 0
a a
a a
a a
a
a a
a a a
a a a
a a
然后按下列公式计算ij: 当i≤ m时,
) , , 2 , 1 (
2 1 1
1
2 i m
a
m
i m k
ik im
im
) 1 , , 1
; , , 2 (
1 1
1
, ,
m i
m j m i
a
j
i m k
j m k j m i ik ij
m j m i ij
当i>m时,
) , , 1 (
2 1 1
0
2 i m n
a
m
k ik im
im
) 1 , , 0
; , , 1 (
1 1
0
, ,
m j
n m
i a
j
k
j m k j m i ik ij
m j m i ij
(2)计算yi. 令
lij=i,m-i+j
且按下列公式计算yi:
) ( )
1 ( 1
1
m i y
l l b
y
i
k k ik i
ii
i
) ( )
1 ( 1
m i y
l l b
y
i
m i k
k ik i
ii
i
(3)计算xi.
) (
) 1 (
1
m n i x
l l y
x
m i
i k
k ki i
ii
i
) (
) 1 (
1
m n i x
l l y
x
n
i k
k ki i
ii
i
这方法只有当m远小于n时才显示出优越性,否则选用其他方法.本公式利用了矩阵的对称 性与带型特点,便于在电子计算机上存储,并进行计算.
二、一般情形的线性方程组
含n个未知量m个方程的线性方程组取如下形式
m n mn m
m
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
2 2 1 1
2 2
2 22 1 21
1 1
2 12 1 11
(1)
记
A=
mn m
m
n n
a a
a
a a
a
a a
a
2 1
2 22
21
1 12
11
x=(x1,x2,...,xn) b=(b1,b2,...,bm) 则给定线性方程组的矩阵形式为
Ax=b (1)
相应的齐次方程组为
Ax=0 (2)
A称为方程组(1)的系数矩阵,
C=
m mn m
m
n n
b b b
a a
a
a a
a
a a
a
2 1
2 1
2 22
21
1 12
11
称为方程组(1)的增广矩阵.
[线性方程组有解的判别定理] 以r(A),r(C)分别表示系数矩阵A与增广矩阵C的秩,则有
1° 当m=n且r(A)= r(C)=n(或A0)时,方程组(1)有唯一解;
2° 当r(A)< r(C)时,方程组(1)无解,这时(1)称为矛盾方程组;
3° 当r(A)= r(C)=r<n(或A=0)时,方程组(1)有无穷多组解;
4° 齐次线性方程组(2)有非零解的充分必要条件是:r(A)<n( A 0).
[线性方程组的解的结构]
1° 当r(A)=r<n时,齐次方程组Ax=0的任一非零解x=(x1,x2,...,xn)都可用它的nr个线性无关
解x(i)=
, 2(), , ()
( 1,2, , )) (
1 x x i n r
xi i ni 的线性组合来表示.
这nr个线性无关解称为方程组的基础解系,它不是唯一的.
2° 设x(0)=
2(0) (0)
) 0 (
1 ,x , ,xn
x 是线性方程组Ax=b的一个特解,则它的任一解x=(x1,x2,...,xn) 都可以表示为
x=x(0)+
式中=
xn
x
x1, 2 ,, 是它相应的齐次方程组Ax=0的一个解.
三、整系数线性齐次方程组的整数解
假设(aij)mn是mn整数矩阵,m<n.令
Ai=
n
j
ij i m
a
1
) , , 2 , 1
(
那末整系数线性齐次方程组
n
j j
ijx i m
a
1
) , , 2 , 1 (
0
的整数解x1,x2,...,xn满足
] ) [(
} , , , max{
0
1 2
1 2
1
m n m
n A A A
x x
x
式中[ ]表示整数部分.
四、一类线性不等式组的解(克莱姆法则)
假设
A=(aij) 为nn非奇异矩阵,那末线性不等式组
i n
j j
ijx b
a
1bi≥ 0 (i=1,2,...,n) 的解为
) , , 2 , 1 det (
1 j n
A A b x
n
i ij i
j
式中Aij为矩阵A的第i行第j列元素的代数余子式.