第二章 解线性方程组的直接法
2.1 直接法与三角形方程组求解§
2.2 Gauss消去法§
第二章 解线性方程组的直接法
2.3 Gauss列主元 消去法§
2.4 直接三角分解法§
2.5 平方根法§
2.6 追赶法 (Thomas法 )§
本章要点 线性方程组的解法类型之一 :直接解法
主要归结为三角形方程组的求解
包括一般线性方程组的 Gauss消去法 、
Gauss列主元法 、 对称正定方程组的平
方根法 、 三对角方程组的追赶法等
涉及到一些三角分解 : 主要有 Doolittle
分解 、 Crout分解 、 Cholesky分解等
本章应用题 : 投入产出平衡分析
设国民经济仅由农业 、 制造业和服务业三个部门组成 ,
已知某年它们之间的投入产出关系 、 外部需求 、 初始
投入等如下表所示 :
产出
投入 农业 制造业 服务业 外部需求 总产出
农业 15 20 30 35 100
制造业 30 10 45 115 200
服务业 20 60 / 70 150
初始投入 35 110 75
总投入 100 200 150
表 1. 国民经济个部门之间的关系
产出
投入 农业 制造业 服务业
农业 0.15 0.10 0.20
制造业 0.30 0.05 0.30
服务业 0.20 0.30 0
表 2. 投入产出表
假定每个部门的产出与投入成正比 ,则由表 1可确定
三个部门的投入产出表 ,如表 2.
投入系数
或消耗系数
1) 设有 n 个部门 ,已知投入系数 ,给定外部需求 ,建立
求解个部门总产出的模型
2) 设投入系数如表 2所给 ,如果今年对农业 、 制造业
和服务业的外部需求分别为 50,150,100亿元 ,问这
三个部门的总产出分别为多少 ?
3) 如果三个部门的外部需求分别增加 1个单位 ,他们
的总产出分别增加多少 ?
4) 如果对于任意给定的 、 非负的外部需求 ,都能得到
非负的总产出 ,模型就称为可行的 ,问为使模型可行 ,
投入系数应满足什么条件 ?
第二章 解线性方程组的直接法
2.1 直接法与三角形方程组求解§
实际问题中的线性方程组分类 :
按系数矩阵中
零元素的个数 :
稠密线性
方程组
稀疏线性
方程组
按未知量
的个数 :
高阶线性
方程组
低阶线性
方程组(如 1000)
(80%)
按系数矩
阵的形状
对称正定
方程组
三角形
方程组
三对角占
优方程组
一 、 直接法概述
直接法是将原方程组化为一个或若干个三角形
方程组的方法 , 共有若干种 .
对于线性方程组 bAx =
?
?
?
?
?
?
?
?
?
?
?
?
=
nnnn
n
n
aaa
aaa
aaa
A
L
MMMM
L
L
21
22221
11211
?
?
?
?
?
?
?
?
?
?
?
?
=
nx
x
x
x M2
1
?
?
?
?
?
?
?
?
?
?
?
?
=
nb
b
b
b M2
1其中
系数矩阵 未知量向量 常数项
------------(1)
根据 Cramer(克莱姆 )法则 ,若
0)det( ≠A
有唯一解则方程组 bAx =
determinantal
||)det( AA =
行列式的记号
若用初等变换法求解 ,则对其增广矩阵作行初等变换 :
),( bAA = ),( )1()1( bA= ),( )2()2( bA
经过 n-1次 ),( )()( nn bA
为上三角阵目标 : )(nA
的解不难得到则方程组 )()( nn bxA =
bAx =
bAx = )()( nn bxA =
同解
即
以上求解线性方程组的方法称为 Gauss消去法
即和两个三角形矩阵
分解成的系数矩阵如果将线性方程组
,UL
AbAx =
LUA =
则 bLUx = bLy =
yUx =
都是三角
形方程组
上述方法称为直接三角形分解法
------------(2)
不论是 Gauss消去法还是直接三角形分解法 ,
最都归结为解三角形方程组
二 、 三角形线性方程组的解法
bLx = bUx =
?
?
?
?
?
?
?
?
?
?
?
?
=
nnnn lll
ll
l
L
L
OMM
21
2221
11
?
?
?
?
?
?
?
?
?
?
?
?
=
nn
n
n
u
uu
uuu
U MOL
L
222
11211若记
下三角形线性方程组 上三角形线性方程组
的求解思路 :下三角形方程组 bLx =
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
nnnnn x
x
x
lll
ll
l
M
L
OMM
2
1
21
2221
11
?
?
?
?
?
?
?
?
?
?
?
?
=
nb
b
b
M
2
1
bLx =
nnnnnn bxlxlxl =+++ L
L
2211
1111 bxl =
2222121 bxlxl =+
iiiiii bxlxlxl =+++ L
L
2211
?
?
?
???
?
即
回代方向
11
1
1 l
bx =
ii
i
j
jiji
i l
xlb
x
∑?
=
?
=
1
1 ni ,,3,2 L=?
?
?
???
?
的求解思路 :上三角形方程组 bUx =
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
nnn
n
n
x
x
x
u
uu
uuu
2
1
222
11211
MO
L
L
?
?
?
?
?
?
?
?
?
?
?
?
=
nb
b
b
M
2
1
bUx =
其解为
11212111 bxuxuxu nn =+++ L
nnnn bxu =
1,111,1 ????? =+ nnnnnnn bxuxu
K ininiiiiii
bxuxuxu =+++ ++ L
L
11,
?
?
?
???
?
其解为 : nn
n
n u
bx =
ii
n
ij
jiji
i u
xub
x
∑
+=
?
= 1 1,2,,2,1 L??= nni???
???
?
回
代
方
向
),( bAA =
2.2 Gauss消去法§
一 、 消元与回代计算
?
?
?
?
?
?
?
?
?
?
?
?
=
)1()1()1(
2
)1(
1
)1(
2
)1(
2
)1(
22
)1(
21
)1(
1
)1(
1
)1(
12
)1(
11
nnnnn
n
n
baaa
baaa
baaa
L
MMMM
L
L
bAx =对线性方程组
对其增广矩阵施行行初等变换 :
),( )1()1( bA记=
0)det( ≠A如果
?
?
?
?
?
?
?
?
?
?
?
?
=
)2()2()2(
2
)2(
2
)2(
2
)2(
22
)1(
1
)1(
1
)1(
12
)1(
11
0
0
nnnn
n
n
baa
baa
baaa
L
MMMM
L
L
),( )2()2( bA
0)1(11 ≠a假定
定义行乘数 nia
am i
i ,,3,2)1(
11
)1(
1
1 L==
则行第行第 ,1 1imi ×?
)1(
11
)1()2(
jiijij amaa ?=
)1(
11
)1()2( bmbb
iii ?=
nji ,,3,2, L=
ni ,,3,2 L=
),( )1()1( bA
0)1(11 =a如果 0)det( ≠A由于
元素不为零的第一列中至少有一个则 A
行交换后消元的第一行与第则将如 1)1()1()1( 1 ),(,0
1
ibAai ≠
?
?
?
?
?
?
?
?
?
?
?
?
)2()2()2(
2
)2(
2
)2(
2
)2(
22
)1(
1
)1(
1
)1(
12
)1(
11
0
0
nnnn
n
n
baa
baa
baaa
L
MMMM
L
L
且 0)det( ≠?
将化为步后第因此 ),(,1, )1()1( bAk ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
)()()(
)()()(
)2(
2
)2(
2
)2(
22
)1(
1
)1(
1
)1(
12
)1(
11
k
n
k
nn
k
nk
k
k
k
kn
k
kk
n
n
baa
baa
baa
baaa
L
MMM
L
MMO
LL
LL
),( )()( kk bA),( )1()1( bA
0)det( ≠?
定义行乘数
nkiaam k
kk
k
ik
ik ,,1)(
)(
L+==
则行第行第 ,ikmki ×?
)()()1( k
kjik
k
ij
k
ij amaa ?=
+
)()()1( k
kik
k
i
k
i bmbb ?=
+
nkji ,,1, L+=
nki ,,1 L+=
?
?
?
?
?
?
?
?
?
?
?
?
=
)()(
)2(
2
)2(
2
)2(
22
)1(
1
)1(
1
)1(
12
)1(
11
n
n
n
nn
n
n
ba
baa
baaa
MMO
L
L
),( )1()1( bA
将化为步后当经过 ),(,1 )1()1( bAnk ?=
),( )()( nn bA
0)det( ≠A由于
nia iii ,,2,10)( L=≠可知
的解 :因此可得线性方程组 bAx =
有唯一解上三角形方程组因此 )()(, nn bxA =
)(
)(
n
nn
n
n
n a
bx =
1,2,,2,1 L??= nni?
?
?
???
?
)(
1
)()(
i
ii
n
ij
j
i
ij
i
i
i a
xab
x
∑
+=
?
=
二 、 Gauss消去法的运算量
计算机作乘除运算所耗时间要远远多于加减运算
且在一个算法中 , 加减运算和乘除运算次数大体相当
故在衡量一个算法的运算量时只需统计乘除的运算次数
步消元时作第 k 乘法次数 : 次)1)(( +?? knkn
除法次数 : 次)( kn ?
数为步消元乘除法运算总次作第 k
次)2)(( +?? knkn
总次数为步消元需作乘除法运算完成全部 1?n
∑?
=
+??
1
1
)2)((
n
k
knkn 6523
23 nnn
?+=
全部回代过程需作乘除法的总次数为
∑
=
+?
n
i
in
1
)1( 22
2 nn
+=
于是 Gauss消去法的乘除法运算总的次数为
MD 33 2
3 n
nn ?+= )(3 2
3
nOn +=
数级
很大时当 n 33 2
3 n
nn ?+=MD 3
3n
≈
时如 20=n Gauss消去法乘除法约为 2700次
而如果用 Cramer法则的乘除法运算次数约为
20)120)(120(!20 ++? 20109×≈
或 2700)120( ×+
用行列式定义
用行列式性质