1
大学数学实验
Experiments in Mathematics
实验5 线性代数方程组的数值解法
清华大学数学科学系
? 许多实际问题归结为线性(代数)方程组
? 大型的方程组需要有效的数值解法
? 数值解法的稳定性和收敛性问题需要注意
为什么要学习线性方程组
的数值解法
机械设备、土建结构的受力分析
输电网络、管道系统的参数计算
经济计划
企业管理
3. 线性方程组数值解法的MATLAB实现
4. 实际问题中方程组的数值解。
1. 两类数值解法:
直接方法;迭代方法
实验 5的主要内容
2. 超定线性方程组的最小二乘解
线性方程组的一般形式、两类解法
直接法 经过有限次算术运算求出精确解(实际上
由于有舍入误差只能得到近似解)---- 高斯
(Gauss)消元法及与它密切相关的矩阵LU分解
迭代法 从初始解出发,根据设计好的步骤用逐次
求出的近似解逼近精确解 ---- 雅可比(Jacobi)
迭代法和高斯 —塞德尔(Gauss —Seidel)迭代法
nnnnnn
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
=+++
=+++
=+++
L
LL
L
L
2211
22222121
11212111
或 AX=b
直接法---高斯消元法
)2()2(
2
)2(
2
)2(
2
)2(
22
)2(
22
)1(
1
)1(
12
)1(
121
)1(
11
nnnnn
nn
nn
bxaxa
bxaxa
bxaxaxa
=++
=++
=+++
L
LL
L
L
)()(
)1(
1
)1(
,11
)1(
1,1
)2(
2
)2(
22
)2(
22
)1(
1
)1(
12
)1(
121
)1(
11
n
nn
n
nn
n
nn
n
nnn
n
nn
nn
nn
bxa
bxaxa
bxaxa
bxaxaxa
=
=+
=++
=+++
?
?
?
??
?
??
LL
LL
LL
消
元
过
程
回
代
过
程
),,2,1(
0
)(
nk
a
k
kk
L=
≠
条件
直接法-列主元素消元法
),,2,1(0
)(
nka
k
kk
L=≠
高斯消元法 条件
解决
办法
),(
)(
nkia
k
ik
L=选
最大的一个(列主元)
将列主元所在行与第 k行交换后 , 再按上面的高斯消元
法进行下去 , 称为 列主元素消元法 。
(绝对值 )很小时,
用它作除数会导致舍入误
差的很大增加
)(k
kk
a
)()()(
)()()(
k
nn
k
nnk
k
nk
k
k
n
k
kn
k
k
kk
bxaxa
bxaxa
=++
=++
LL
LL
LL
2
直接法 - 高斯消元法的矩阵表示
相当于方程
AX=b 两边
左乘单位下
三角阵 M
1
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
1/
1/
1
)1(
11
)1(
1
)1(
11
)1(
21
1
aa
aa
M
n
OLL
nnnnnn
nn
nn
bxaxaxa
bxaxaxa
bxaxaxa
=+++
=+++
=+++
L
LL
L
L
2211
22222121
11212111
高斯消元法的第一次消元
)2()2(
2
)2(
2
)2(
2
)2(
22
)2(
22
)1(
1
)1(
12
)1(
121
)1(
11
nnnnn
nn
nn
bxaxa
bxaxa
bxaxaxa
=++
=++
=+++
L
LL
L
L
bMAxM
11
=
最终消元形式 =
?
AxMMM
n 121
L bMMM
n 121
L
?
直接法 - 高斯消元法的矩阵表示
第二次消元相当于再左乘单位下三角阵 M
2
bMAxM
11
= bMMAxMM
1212
=
121
,
n
M MM M
M
?
=L记
为单位下三角阵
MbUx =
UMA=记
0
,
)(
≠
k
kk
a
U
对角元素
且为上三角阵
)()(
)1(
1
)1(
,11
)1(
1,1
)2(
2
)2(
22
)2(
22
)1(
1
)1(
12
)1(
121
)1(
11
n
nn
n
nn
n
nn
n
nnn
n
nn
nn
nn
bxa
bxaxa
bxaxa
bxaxaxa
=
=+
=++
=+++
?
?
?
??
?
??
LL
LL
LL
MbUx
1?
=
直接法-矩阵LU 分解
高斯消元法通过左乘 M,使 MA=U
M单位下三角阵, U上三角阵
记 L=M
-1
, L为
单位下三角阵
若 A可逆且顺序主子式不为零,则 A可分解为一个
单位下三角阵 L和一个 上三角阵 U的积 A=LU。
这种分解是唯一的,称矩阵 LU分解。
),,2,1(
0
)(
nk
a
k
kk
L=
≠
),1(,0
1
111
nk
aa
aa
DA
kkk
k
L
L
MM
L
=≠=的顺序主子式
若 A可逆,则 存在交换阵 P 使 PA=LU
L为单位下三角阵, U为上三角阵。
第 i行与第 k行交换
),1(00
)()(
nkiaa
k
ik
k
kk
L+=≠= ,但必存在消元中会遇到某个
直接法-矩阵LU 分解
不成立可逆,但顺序主子式若 0≠DA
乘以初等交换阵
UMPAUMA =?=
P~交换阵(单位阵经若干次行交换)
直接法 - 对称正定矩阵的分解
正定对称矩阵 A 可分解成对角元素为正的
下三角阵 L 与它的转置矩阵之积,即
T
LLA =
T
LDLA =或
其中 L 是单位下三角阵, D 是元素为正的对角阵。
这种分解称三角分解或 Cholesky 分解。
直接法 - 三对角矩阵的 LU分解
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
?????
n
nn
nnn
nnn
u
cu
cu
cu
l
l
l
ba
cba
cba
cb
A
11
22
11
3
2
111
222
11
1
1
1
1
OO
O
OOOO
11
1
1
2,3, ,
2,3, ,
i
i
i
iiii
ub
a
lin
u
ublc i n
?
?
=?
?
?
==
?
?
=? =?
?
L
L
在三次样条插值和其它一些计算中,会遇到求解系数矩阵 A具有
三对角形式 的线性方程组,这时 A的 LU分解 (假定分解存在)
可表为 :
L和 U的计
算公式为
3
11
1
1
,2,,
/
()/,1,1
iiii
nnn
iii i
yf
yfly i n
xyu
xycxuin
?
+
=
?
?
=? =
?
=?
?
=? =?
?
L
L
线性方程组 Ax=f可通过等价的两个三角形
方程组 Ly=f和 Ux=y求解如下 :
直接法 - 三对角矩阵的 LU分解
求解三对角形方程组的追赶法
直接法-误差分析
( 1,1)
01.201.1
21
=+ xx
x
2
2
x
120
201.1
2
21
21
=+
=+
xx
xx
bAx = ,如果解 x 对 b 或 A 的扰动敏感,就称方程组是
病态的,也称系数矩阵 A 是病态的。
bxA =
?
?
?
?
?
?
=
0
2
x
?
?
?
?
?
?
=
1
1
x
?
?
?
?
?
?
=
01.2
2
b
?
?
?
?
?
?
=
?
?
?
?
?
?
?
?
?
?
?
?
2
2
01.1 1
1 1
2
1
x
x
x对 b的扰动
敏感
(2,0)
向量和矩阵的范数
度量向量、矩阵大小的数量指标
向量范数
最常用的向量范数是 2-范数
2/122
1
2
)(
n
xxx ++= L
xxxx
T
n
,范数记作设 ),(
1
L=
n
xxx ++=? L
1
1
1 范数
矩阵范数 AaA
nnij
,范数记作设
×
= )(
范数
?=
2)(||||
max2
AAA
T
λ
max
λ
表示最大特征根
范数)?= ∑
=
1( max||||
1
1
n
i
ij
j
||aA 范数)?∞= ∑
=
∞
( max||||
1
n
j
ij
i
||aA
),max(
1 n
xxx L=?∞
∞
范数
向量和矩阵范数的相容性条件 xAAx ?≤
bbxxA δδ +=+ )(
bxA δδ =
xAb ?≤
b
b
AA
x
x δδ
??≤
?1
1)设 b有扰动 δb,分析 x的误差 δx
A的条件数越大,(由 b的扰动引起的) x的误差可能越大
条件数与误差分析
bAx =
xAAx ?≤
bAx δδ
1?
=
bAx δδ ?≤
?1
Abx /≥
1
()A Cond A A A
?
=?的 为条定义 件数
b
b
Acond
δ
)(=
bxxAA =++ ))(( δδ
x的 (相对 )误差不超过 b的 (相对 )误差的 Cond(A)倍 ,
也大致上是 A的 (相对 )误差的 Cond(A)倍。
条件数与误差分析
2)设 A有扰动 δA,分析 x的误差 δx
bAx =
A的条件数越大,(由 A的扰动引起的) x的误差越大
A
A
Acond
A
A
AA
x
x δδδ
)(
1
=???
?
条件数大的矩阵是 病态矩阵
迭代法---一个例子
123
123
12 3
10 3 14
210 3 5
31014
xxx
xxx
xx x
+ +=
? +=?
++ =
4.13.01.0
5.03.02.0
4.11.03.0
)(
2
)(
1
)1(
3
)(
3
)(
1
)1(
2
)(
3
)(
2
)1(
1
+??=
++=
+??=
+
+
+
kkk
kkk
kkk
xxx
xxx
xxx
0
)0(
3
)0(
2
)0(
1
=== xxx
L,2,1,0=k
9906.0,9645.0,9906.0
)4(
3
)4(
2
)4(
1
=== xxx
4.13.01.0
5.03.02.0
4.11.03.0
213
312
321
+??=
++=
+??=
xxx
xxx
xxx
4.1,5.0,4.1
)1(
3
)1(
2
)1(
1
=== xxx
1
321
=== xxx精确解
4
迭代法 - 雅可比(Jacobi)迭代
将 A 分解为 ULDA ??= ,其中 ),,(
2211 nn
aaadiagD L= ,
?
?
?
?
?
?
?
?
?
?
?
?
?=
?
?
?
?
?
?
?
?
?
?
?
?
?=
?
?
0
0
0
,
0
0
0
1,1
112
1,21
21
n
n
nnnn
a
aa
U
aaa
a
L
O
MO
L
L
OOM
设对角阵 D非奇异(即 ),1,0 nia
ii
L=≠
bDf
ULDB
1
1
1
1
)(
?
?
=
+=记
)2,1,0(
1
)(
1
)1(
L=+=
+
kfxBx
kk
迭代格式
bAx =
bxULDx =+? )( bDxULDx
11
)(
??
++=
迭代法 - 高斯-塞德尔(Gauss-Sedeil)迭代
在 D非奇异的假设下 )( LD? 可逆,于是得到
bLDfULDB
1
2
1
2
)(,)(
??
?=?=
)2,1,0(
2
)(
2
)1(
L=+=
+
kfxBx
kk
Jacobi迭代公式
bUxLxDx
kkk
++=
+ )()()1(
bUxLxDx
kkk
++=
++ )()1()1(
Gauss-Seideil迭代公式
4.13.01.0
5.03.02.0
4.11.03.0
)(
2
)(
1
)1(
3
)(
3
)(
1
)1(
2
)(
3
)(
2
)1(
1
+??=
++=
+??=
+
+
+
kkk
kkk
kkk
xxx
xxx
xxx
改进
4.13.01.0
5.03.02.0
4.11.03.0
)1(
2
)1(
1
)1(
3
)(
3
)1(
1
)1(
2
)(
3
)(
2
)1(
1
+??=
++=
+??=
+++
++
+
kkk
kkk
kkk
xxx
xxx
xxx
迭代法的收敛性
原方程组的解
*
x 满足: fBxx +=
**
1
)(
1
)1(
fxBx
kk
+=
+
Jacobi迭代
2
)(
2
)1(
fxBx
kk
+=
+
Gauss-Seideil迭代
bDf
ULDB
1
1
1
1
)(
?
?
=
+=
bLDf
ULDB
1
2
1
2
)(
)(
?
?
?=
?=
fBxx
kk
+=
+ )()1(
一般迭代形式
)(
*)0(*)(
xxBxxk
kk
?=?次得到迭代
() *
()
k
xxk→→∞序列收敛 的 充要条件
)(0 ∞→→ kB
k
?B的所有特征根(取模)小于 1
的特征根是(
的谱半径
Bni
BB
i
i
ni
),1
max)(
1
L=
=
≤≤
λ
λρ
1)( <Bρ
2)若 A 对称正定,则高斯—塞德尔迭代收敛;
迭代法的收敛性
||||)( BB ≤ρ谱半径性质: 其中 ||B||是任何一种矩阵范数
() *
()
k
xxk→→∞序列收敛 的 充分条件
赛德尔迭代均收敛;则雅可比和高斯
是严格对角占优的,即若
?
=>
∑
≠
),,1()1 nibbA
ij
ijii
L
收敛则迭代公式 fBxx
kk
+=
+ )()1(
,若 1)3 <= qB
越小收敛越快,且 qxx
q
q
xx
kkk )()1(*)1(
1
?
?
≤?
++
迭代法 -超松弛 SOR 迭代
Gauss-Seideil迭代公式
(1) 1 (1) () 1 (1)
()
kkk k
xDLxUxDbx
+?+ ? +
=++%null
)()1()1(
)1(
~
kkk
xxx ωω ?+=
++
改进
(1)k
x ω
+
%
k
和x 加权 作平均
1ω >
1ω < 1ω =
超松弛迭代
低松弛迭代 Gauss-Seideil迭代
(1) ()
1
1
,
()[(1)],
()
kk
xBxf
BDLU D
fDLb
ωω
ω
ω
ωω ω
ωω
+
?
?
=+
=? +?
=?
迭代法 -超松弛 SOR 迭代
收敛充要条件若 A对称正定
02ω< <
SOR 迭代 ------解大型稀疏矩阵方程组
5
超定线性代数方程组的最小二乘解
实验 1§ 2.1汽车刹车距离 建立了刹车距离 d与车速 v
的关系:
2
21
vkvkd +=
方程个数超过了未知数个数,称为 超定方程组
nivkvkd
iii
,,2,1,
2
21
L=+=
数据拟合
已知一组数据,即平面上 n个点( x
i
,y
i
), i=1,…n, 寻求一个函数
(曲线) y=f(x), 使 f(x)在某种准则下与所有数据点最为接近,
即曲线拟合得最好。
数据拟合问题的提法
(#)
+
+
+
+
+
+
+
+
+
x
y
y=f(x)
(x
i
,y
i
)
δ
i
使点( x
i
,y
i
) 与曲线 y=f(x)
的距离 δ
i
尽量小 ,i=1,…n
曲线拟合
最小二乘准则
δ
L
ii
i
使f(x )与y(i=1,2, ,n)之差的平方和
(即图中 的平方和)最小
先选定一组函数 r
1
(x), r
2
(x), …r
m
(x), m<n, 令
f(x)=a
1
r
1
(x)+a
2
r
2
(x)+ …+a
m
r
m
(x) ( 1)
其中 a
1
,a
2
, …a
m
为待定系数。
曲线拟合 --线性最小二乘法 的基本思路
记
22
12
11
2
11
(, , ) [() ]
[()](2)
nn
mi ii
ii
nm
kk i i
ik
Ja a a f x y
ar x y
δ
==
==
== ?
=?
∑∑
∑∑
L
按照 最小二乘准则 , 问题归结为:求 a
1
,a
2
, …a
m
使
J(a
1
,a
2
, …a
m
) 最小。
线性最小二乘法的求解
),1(
0
mk
a
J
k
L=
=
?
?
)3(
0])()[(
0])()[(
11
11
1
?
?
?
?
?
?
?
?
?
=?
=?
?
∑∑
∑∑
==
==
n
i
m
k
iikkim
n
i
m
k
iikki
yxraxr
yxraxr
LL
?
?
?
?
?
?
?
?
?
?
=
?
?
?
?
?
?
?
?
?
?
=
?
?
?
?
?
?
?
?
?
?
=
nmnmn
m
y
y
y
a
a
a
xrxr
xrxr
R MM
L
LL
L
11
1
111
,,
)()(
)()(
记
)4()()3( yRaRR
TT
=?
)2(])([),,(
2
11
21 iik
n
i
m
k
km
yxraaaaJ ?=
∑∑
==
L
)4()( yRaRR
TT
=
当 R
T
R 可逆时(4)有唯一解
)5()(
1
yRRRa
TT ?
=
线性最小二乘法的求解
mn
nmn
m
xrxr
xrxr
R
×
?
?
?
?
?
?
?
?
?
?
=
)()(
)()(
1
111
L
LL
L
问题
1.怎样选择 { r
1
(x), …r
m
(x)},以保证系数
{a
1
,…a
m
}有唯一解?
{a
1
,…a
m
}有唯一解
← R
T
R可逆 ←Rank(R
T
R)=m
← Rank(R)=m ← R列满秩
← {r
1
(x), …r
m
(x)}在 x
i
点线性无关 (i=1,…n)
分
析
2.为什么要规定 m<n?若 m=n或 m>n,会如何?
若 m>n, a有无穷多解
若 m<n, 超定方程组 , a无解;求 最小二乘解
若 m=n, R可逆时 a有唯一解
强令f(x
i
)= a
1
r
1
(x
i
)+ …+a
m
r
m
(x
i
)= y
i
(i=1, …n)
(即曲线 f(x)过全部数据点,此时 J=0) 得
mn
nmn
m
xrxr
xrxr
R
×
?
?
?
?
?
?
?
?
?
?
=
)()(
)()(
1
111
L
LL
L
,yRa=
T
n
T
m
yyy
aaa
],[
],[
1
1
L
L
=
=
问题
分
析
3. 线性最小二乘中的“线性”指的是什么
问题
f(x)对 a线性 ,于是求解 线性 方程组 yRaRR
TT
=)(
6
线性最小二乘拟合中函数 {r
1
(x), …r
m
(x)}的选取
1. 通过机理分析建立数学模型来确定 f(x)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
f=a
1
+a
2
x
2. 将数据 (x
i
,y
i
) i=1, …n 作图,通过直观判断确定 f(x)
f=a
1
+a
2
x+a
3
x
2
f=a
1
+a
2
x+a
3
x
2
f=a
1
+a
2
/x f=a
1
exp(a
2
x)
f=a
1
exp(a
2
x)
f 对 a 非线性,怎么办
1. 求解 bAx= 用左除: bAx \= 。
[x,y]=lu(A) 若 A可逆且顺序主子式不为零, 输出 x 为
单位下三角阵 L,y 为上三角阵U,使 LUA= ; 若A 可逆,
x 为一交换阵与单位下三角阵之积 .
2. 矩阵 LU分解
线性方程组数值解法的MATLAB实现
若 A为可逆方阵,输出原方程的解 x
若 A为 n×m矩阵( n>m),且 A
T
A可逆,输出原
方程的最小二乘解 x
u =chol(A) 对正定对称矩阵A的Cholesky 分解,
输出u 为上三角阵 U,使 A=U
T
U
[x,y,p]=lu(A) 若 A 可逆,输出 x为单位
下三角阵 L,y为上三角阵 U,p 为一交换阵 P,
使 LUPA= .
线性方程组数值解法的MATLAB实现
123
123
12 3
10 3 14
210 3 5
31014
xxx
xxx
xx x
+ +=
? +=?
++ =
例 . 解
A=[10 3 1;2 -10 3;1 3 10],
b=[14 -5 14]',
x=A\b,
[L1,U1]=lu(A);
L1,U1,
A1=L1*U1,
[L2,U2,P]=lu(A);
L2,U2,P,
A2=L2*U2,
A3=inv(P)*A2
并对系数矩阵
作 LU分解
MATLAB 5.3.lnk
shiyan51
若第 1个方程改为
3x
2
+x
3
=14
结果如何
4. Hilbert 矩阵 : h=hilb(n)
输出 h为 n 阶 Hilbert 矩阵
3. 范数 条件数 特征值
n=norm(x) 输入 x 为向量或矩阵,输出为 x 的 2-范数
c=cond(x) 输入 x 为矩阵 , 输出为 x 的 2-条件数
r=rcond(x) 输入 x 为方阵 , 输出为 x 条件数倒数
e=eig(x) 输入 x 为矩阵,输出 x 的全部特征值
?
?
?
?
?
?
?
?
?
?
?
?
?+
+
=
)12/(1)1/(1/1
)1/(13/12/1
/12/11
nnn
n
n
H
L
LL
LL
LL
当 n很大时 Hilbert
矩阵呈病态
线性方程组数值解法的MATLAB实现
H=hilb(5),
h=rats(H),
b=ones(5,1);
x=H\b;
b(5)=1.1;
x1=H\b;
[x,x1],
n1=cond(H),
n2=rcond(H),
观察 Hilbert矩阵的病态性
例 . Hx=b, 其中
H=hilb(5), b=[1,…1]
T
MATLAB 5.3.lnk
shiyan52
x x1
1.0e+003 *
0.0050 0.0680
-0.1200 -1.3800
0.6300 6.3000
-1.1200 -9.9400
0.6300 5.0400
cond(H)=4.7661e+005
7
y=triu(x) 输入矩阵 x,输出 v 是 x 的上三角阵;
v=tril(x) 输入矩阵 x,输出 v 是 x 的下三角阵;
1. 提取(产生)对角阵
v=diag(x) 输入向量x,输出v是以x为对角元素的对
角阵;输入矩阵x,输出v是x的对角元素构成的向量;
v=diag(diag(x)) 输入矩阵x,输出v是x的对角元
素构成的对角阵,可用于迭代法中从A中提取D。
2. 提取(产生)上(下)三角阵
线性方程组数值解法的MATLAB实现
v=triu(x,1) 输入矩阵 x,输出 v 是 x 的上三角阵,
但对角元素为 0,可用于迭代法中从 A 中提取 U;
v=tril(x,-1) 输入矩阵 x,输出 v 是 x 的下三角阵,
但对角元素为 0,可用于迭代法中从 A 中提取 L 。
x
T
(雅可比 )x
T
(高斯—塞德尔 )
0 (0, 0, 0) (0, 0, 0)
1 (1.4, 0.5, 1.4) (1.4, 0.78, 1.026)
2 (1.11, 1.20, 1.11) (1.0634, 1.0205, 0.9875)
3 (0.929, 1.055, 0.929) (0.9951, 0.9953, 1.0019)
4 (0.9906, 0.9645, 0.9906) (1.0012, 1.0008, 0.9996)
123
123
12 3
10 3 14
2103 5
31014
xxx
xxx
xx x
+ +=
? +=?
++ =
例 . 用迭代法
解
MATLAB 5.3.lnk
shiyan53
稀疏矩阵的处理 ~ MATLAB进行大规模计算的优点
a=sparse(r,c,v,m,n) 在第 r行、第 c列输
入数值 v,矩阵共 m行 n列,输出 a为稀疏矩阵,只
给出 (r,c)及 v
aa=full(a) 输入稀疏矩阵 a,输出 aa为满矩阵
(包含零元素)
a=sparse(2,2:3,8,2,4), aa=full(a),
a =(2,2) 8 aa= 0 0 0 0
(2,3) 8 0 8 8 0
输出
n=500;b=[1:n]';
a1=sparse(1:n,1:n,4,n,n);
a2=sparse(2:n,1:n-1,1,n,n);
a=a1+a2+a2';
tic;x=a\b;t1=toc
aa=full(a);
tic;xx=aa\b;t2=toc
y=sum(x)
yy=sum(xx)
例 . 分别用稀疏矩阵和满矩阵求解 Ax=b, 比较计算时间
nn
A
×
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
41
1
41
141
14
OO
O
[ ]
T
nb L,2,1=
设
0
0
t1, t2相差巨大,说明用稀疏矩阵计算的优点
( y=yy 用于简单地验证两种方法结果的一致)
MATLAB 5.3.lnk
shiyan54
用 MATLAB作线性最小二乘拟合
1. 作多项式 f(x)=a
1
x
m
+ …+a
m
x+a
m+1
拟合,可利用
已有程序 :
a=polyfit(x,y,m)
输入:数据 x,y (同长度数组); m (拟合多项式次数)
输出:系数 a=[a
1
, …a
m
,a
m+1
] (数组)。
2. 对超定方程组
)(
11
nmyaR
nmmn
<=
×××
仍用
yRa \= 可得最小二乘意义下的解
多项式 在 x点的值 : y=polyval(a,x)
表 1 国民经济各个部门间的关系
分配去向
投入来源
农业 制造业 服务业 外部需求 总产出
农业 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 投入产出表
假定每个部门
的产出与各部
门对它的投入
成正比,得到
投入系数 。
8
4)如果对于任意给定的、非负的外部需求,都能
得到非负的总产出,模型就称为可行的。问为使模
型可行,投入系数应满足什么条件?
1)设有n个部门,已知投入系数,给定外部需求,
建立求解各部门总产出的模型。
2)设投入系数如表2所给,如果今年对农业、制造
业和服务业的外部需求分别为50,150,100亿元,
问这三个部门的总产出分别应为多少。
3)如果三个部门的外部需求分别增加1个
单位,它们的总产出应分别增加多少。
实例1 投入产出模型
1)基本模型
投入系数矩阵
nnij
aA
×
= )(
产出向量
T
n
xxx ),(
1
L=
需求向量
T
n
ddd ),(
1
L=
),,2,1(
1
nixdx
i
n
j
iij
L==+
∑
=
平衡关系
x
i
: 第 i个部门的产出,
x
ij
: 第 i个部门对第 j个部
门的投入,
d
i
: 第 i个部门的外部需求
jijij
xxa /=
投入系数
产出
投入
部门 1 部门 i 部门 n 外部需求 总产
出
部门 1 x11 x1i x1n d1 x1
部门 i xi1 xii xin di xi
部门 n xn1 xni xxn dn xn
初始投入 x01 x0i x0n
总投入 x1 xi xn
),,2,1(
1
nixdxa
i
n
j
ijij
L==+
∑
=
dAxx +=
dxAI =? )(
dAIx
1
)(
?
?=
dAIx
1
)(
?
?=基本模型
2)设农业、制造业和服务业的外部需求分别为
50,150,100亿元,求三个部门的总产出。
?
?
?
?
?
?
?
?
?
?
=
03.02.0
3.005.03.0
2.01.015.0
A
T
d ]10015050[=
x=(139.2801,267.6056,208.1377)
T
MATLAB 5.3.lnk
shiyan55
若 ?d=(1,0,0)
T
, 即农业外部需求增加1单位时,三部门
总产出应分别增加1.3459,0.5634,0.4382单位。
即 C的第1列 。 C的第2,3列给出了什么?
C=1.3459 0.2504 0.3443
0.5634 1.2676 0.4930
0.4382 0.4304 1.2167
3)若三部门的外部需求分别增加1个单位,
求它们的总产出的增量。
dAIx
1
)(
?
?=基本模型
1
)(
?
?= AIC记
当需求增加 ?d时,总产出增量 dCx ?=?
4)如果对于任意给定的、非负的外部需求,都能
得到非负的总产出,模型就称为可行的。问为使模
型可行,投入系数应满足什么条件?
模型可行
1
))((
+
?=+++?
kk
AIAAIAI L
0,)(
1
≥?=
?
AdAIx 其中基本模型
00 ≥?≥? xd
0)(
1
≥?
?
AI
)(0 ∞→→ kA
k
∑
∞
=
?
=?
0
1
)(
k
k
AAI
是否成立?问 )(0 ∞→→ kA
k
0≥A
),1(11
11
1
njxxaA
j
n
i
ij
n
i
ij
L=<?<?<
∑∑
==
001
1
→?→?<
k
k
AAA
模型可行
00 ≥?≥? xd
BAAB ?≤矩阵范数定义
kk
AA ≤
)(0 ∞→→ kA
k
成立),1(
1
njxx
j
n
i
ij
L=<
∑
=
若A是由实际数据得
到,只要初始投入非负
模型可行
jijij
xxa /=
max||||
1
1 ∑
=
=
n
i
ij
j
||aA
9
实验 2给出的模型为
实例2 一年生植物的繁殖 (实验 2)
nkqxpxx
kkk
,,3,2,0
21
L==++
??
121
,(1)p abc q ab a bc=? =? ?
Ax=B
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
pq
pq
pq
pq
p
A
1
1
1
1
OOO
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
?
?
1
2
3
2
1
n
n
x
x
x
x
x
x
M
0
0
0
0
n
qx
B
x
???
??
??
??
=
??
??
??
??
?
??
M
求解 Ax=B可得第二年(及以后诸年)植物的数量
开始有 100棵植物,要求 50年后有 1000棵植物
实例2 一年生植物的繁殖
12
0.5, 0.25, 0.2, 10aa bc= ===设
p=-1;q=-0.05;x0=100;xn=1000; n=49;
A1=sparse(1:n,1:n,p,n,n); A2=sparse(1:n-1,2:n,1,n,n);
A3=sparse(2:n,1:n-1,q,n,n);
A=A1+A2+A3;
i=[1,n];j=[1,1];s=[-q*x0,-xn];
B=sparse(i,j,s,n,1);
x=A\B;
x1=x(1), % 输出第 2年植物数量 101.7097
k=0:n+1;xx=[x0,x',xn];
plot(k,xx),grid,
0 10 20 30 40 50
0
200
400
600
800
1000
k
x
k
图 4 一年生植物繁殖 x
k
MATLAB 5.3.lnk
shiyan56
实例3 汽车刹车距离 (续 )
实验 1§ 2.1建立了刹车距离 d与车速 v的关系:
2
21
vkvkd +=
nivkvkd
iii
,,2,1,
2
21
L=+=
数据拟合
(#)
车速与刹车距离的实际数据记作 (vi, di), i=1,2,… ,7(见实验 1表 1)
(#)是超定方程组
T
n
T
n
nn
ddykk
vv
vv
),(,),(,
121
2
2
2
11
LL ==
?
?
?
?
?
?
?
?
?
?
=Φ
×
β
yβΦ=
12
0.6522, 0.0853kk= =
结果
MATLAB 5.3.lnk
shiyan57
布置实验
目的
1)学会用 MATLAB软件数值求解线性代数方程组,对迭
代法的收敛性和解的稳定性作初步分析;
2)通过实例学习用线性代数方程组解决简化的实际问题。
内容 课上布置,或参见网络学堂