Transcript chapter3
第三章应用实例
§1、确定比赛的胜负
一、问题
设有5个球队进行单循环赛,已知它们
的比赛结果为:
1对胜2,3队;2队胜3,4,5对;
4队胜1,3,5队;5队胜1,3队,
设按胜的次数多少排名次.
若两队胜的次数相同,则按
直接胜与间接胜的次数之
和的多少排名次.
所谓间接胜,即若1队胜2队,2队
胜3队,则称1队间接胜3队.
试为这5个队排出比赛名次.
二、分析
用平面上的 5个点表示五个队,若一
个队直接 胜另一个队则用有向线
段连接.
可以看出2,4队直接胜的次数相同,
但2队间接胜5场,而4对间接胜4
场,所以不难排出2对为冠军,4队
为亚军,1队为第三名,五队第四
名,3对第五名.
2,4,1,5,3
如果参赛队很多,我们应该
怎样解决呢
?
关于上面那个图,我们给出一些
术语.
顶点集: V v1 , v 2 , v 3 , v 4 , v 5
边集:若i队直接胜j队,则从i到j的
有向线段称为有向弧,或边。记
为有序队 ( v , v )
i
j
A ( v i , v j )
若i,j间存在k个顶点使得有向弧
连接到j,则称i,j间存在长为k+1的路。
因此若i队间接胜j队,则它们之
间必存在长为k(k大于等于2)的路.
如何用矩阵来体现这些结果呢
?
1 ( v i , v j ) A
设 a ij
0
(
v
,
v
)
A
i
j
定义矩阵 M ( a ij ) n n n为顶点的个数
则每个图可用一个矩阵表示,
称之为图的邻接矩阵。
定理 : 设 M ( a ij ) n n 为图 G (V , A )的
邻接矩阵,则
k
M 的 i 行 j 列的元素等于
v i 与 v j 之间长为 k 的路的数目。
注 : 由此可知 , M 中每行和表示了
每个队直接胜的场数
就表示直接胜的次数相
, 若行和相等,
同。
2
由此继续算 M M 的行和,若
还有两行和相等,继续
往下算,
直至行和各不相同。
下面我们利用图的邻接矩阵来求
解这个问题.
三、解:
1 ( v i , v j ) A
设 a ij
0
(
v
,
v
)
A
i
j
M ( a ij )5 5
它的邻接矩阵M如下:
注:每一行的和代表相应的
队直接胜的次数
即算 M M
2
M
3
的行和,直至各行和都
M
k
不相等,
然后比较大小。
四、Matlab实现
>> M=[0 1 1 0 0;0 0 1 1 1;0 0 0 0 0;
1 0 1 0 1;1 0 1 0 0];
>> s1=sum(M')
s1 =
2 3 0 3 2
>> s2=sum(M'+(M^2)')
s2 =
5
8
0
7
4
所以2队为冠军,4队为亚军,1队为
第三名,五队第四名,3队第五名.
当然,若有计算机程序基础,
对队数比较多的情况,你可直接写程
序来实现整个计算过程。
下面的脚本程序供大家参考。
利用图的“邻接矩阵”的思想,我
们来看下面的例子.
例、简单匹配搜索引擎的原理。
假设数据库有下列书,题目分别是:
B1.运用线性代数
B2.初等线性代数
B3. 初等线性代数及应用
B4. 线性代数和它的应用
B5. 线性代数及应用
B6.矩阵代数及应用
B7. 矩阵理论.
它们的关键词按顺序排列如下:
代数,应用,初等,线性,
矩阵,理论.
如果搜索“线性代数应用”,请给出
相匹配的搜索结果。
解:
设 a ij
1
0
第 i 个关键词出现在
第 j 本书的题目中
不出现
书
关键
词
B1
B2
B3
B4
B5
B6
B7
代数 1
1
1
1
1
1
0
应用 1
0
1
1
1
1
0
初等 0
1
1
0
0
0
0
线性 1
1
1
1
1
0
0
矩阵 0
0
0
0
0
1
1
理论 0
0
0
0
0
0
1
于是我们可得数据库的“邻
接矩阵”
1 1 1 1 1 1
1 0 1 1 1 1
0 1 1 0 0 0
A
1 1 1 1 1 0
0
0
0
0
0
1
0 0 0 0 0 0
0
0
0
0
1
1
注:此“邻接矩阵”每一列代表
了该本书的信息,第j列的列和
表示第j本书包含的关键词的个
数
把数据库里的关键词排成列看
作一个向量,于是任意一个
搜索也可用向量表示,若包
含第i个关键词,第i个分量取
值为1,否则取值为零。
搜索“线性代数应用”,即
搜索向量为
1
1
0
x
1
0
0
3
2
3
T
A x 3
3
2
0
计算
注:结果中的
每个分量就
表达了每一
本书与你搜
索的东西相
匹配的词条
数
故搜索结果为第一、三、四、五
本书的题目。
§2、平板的稳态温度分布
一、问题
在热传导的研究中,需要确定某一快平板
的稳态温度分布,设下图中的平板代表一
条金属梁的截面,忽略垂直方向的热传导.
内部节点的温度近似等于与它最接近的
上下左右节点温度的平均值.
(1)写出内部节点a,b,c,d所满足的方程组;
(2)求解此方程组。
解: 根据已知条件,
可列出如下方程:
x a
x
b
x
c
x
d
10 20 x b x c
4
40 20 x a x d
4
10 30 x a x d
4
30 40 x b x c
4
,
,
,
.
整理得:
4x a x b x c
x a 4x b x d
x a 4x c x d
x x 4x
b
c
d
30 ,
60 ,
40 ,
70 .
用Matlab求解:
>> A=[4 -1 -1 0;-1 4 0 -1;-1 0 4 -1;
0 -1 -1 4];
>> b=[30;60;40;70];
>> rref([A,b])
ans =
1.0000
0
0
0
0 1.0000
0
0
0
0 1.0000
0
0
0
0 1.0000
20.0000
27.5000
22.5000
30.0000
故a,b,c,d四点的温度
分别为:
20,27.5,22.5,30
摄氏度。
§3、投入产出分析
一、问题
一个城镇有三个主要生产企业:
煤矿,电厂和地方铁路
作为它的经济系统.
已知生产价值一元的煤,需消耗
0.25元的电费和0.35元的运输费;
生产价值一元的电,需消耗
0.40元的煤费、0.05元的电
费和0.10元的运输费;
而提供价值一元的铁路运输费,
需消耗0.45元的煤、0.10元的电费
和0.10元的运输费.
假设在某个星期内,除了这三个企
业间彼此需求,
煤矿得到50000元的订单,
电厂得到25000元的电量供应要求,
地方铁路得到价值30000元的运输要求。
试问:
(1)这星期这三个企业各应生产多少产值
才能满足内外需求?
(2)
除了外部需求,试求这星期各
企 业之间的消耗需求,同时求
出各企业新创造的价值;
(3) 如果煤矿需要增加总产值
10000元,它对各个企业的产
品或服务的完全需求是多少?
二、分析
这是一个小型的经济投入产出模型,
在经济系统中,有下列经济规律:
1. 对每一部门,物资消耗和新创造
的价值等于它生产的总值.即投入
和产出之间的平衡关系:
中间产品(作为系统内各企业的消
耗)+最终产品(外部需求)=总产品,
称之为分配平衡方程组
2. 对每一产品,支付系统内各产品
的消耗加上新创造的价值等于它
的总产值.即
系统内各企业产品的消耗+新创造
的价值=总产值,
称之为消耗平衡方程组
3. 企业在进行生产或提供服务时,
对任何一个产品的直接消耗(直
接消耗系数)也蕴含着对其它产
品的间接消耗.
完全消耗系数:是指企业生产单
位产值的产品而对其它企业产品
的总消耗值.即
设煤矿、电厂和地方铁路生产单
位产值对煤、电和铁路运输的直
接消耗系数和完全消耗系数分别
为
a ij 和 bij , i , j 1, 2 ,3
则
3
a ij
b
k 1
ik
a kj b ij ,
b11
B b 21
b
31
b12
b 22
b 32
b13
b 23 ,
b 33
称之为完全消耗矩阵.
三、求解
(1)设煤矿、电厂和地方铁路在这
星期生产的总产值分别为
x1 ,
x2 ,
0
1 0 . 25 ,
0 . 35
x3
( 元 ),
0 . 40
2 0 . 05 ,
0 . 10
0 . 45
3 0 . 10
0 . 10
A ( 1 , 2 , 3 )
0
0 . 25
0 . 35
0 .4
0 . 05
0 . 10
称之为直接消耗矩阵。
0 . 45
0 . 10
0 . 10
由分配平衡方程组关系,有向量方程
0
0 . 40
x1 0 . 25 x 2 0 . 05
0 . 35
0 . 10
0 . 45 50000
x 3 0 . 10 25000
0 . 10 30000
x1
x2
x
3
令
x1
X x 2 ,
x
3
50000
Y 25000
30000
,
X称为产出向量,Y称为最后需求向量
或最终产品向量,则前向量方程可
写成矩阵形式为
AX Y X .
有
( E A) X Y
1
X ( E A) Y .
现用Matlab来求解此方程组
>> A=[0 0.4 0.45;0.25 0.05 0.1;0.35
0.1 0.1];
>> Y=[50000;25000;30000];
>> X=(eye(3)-A)\Y
X=
1.1446e+05
65395
85111
故 煤矿、电厂和铁路运输各应生产
114460元、65395元和85111元的
产值才能满足内外需求。
注:求出 X 后,
0
x1 1 x1 0 . 25 表示三个企业为煤矿
0 . 35
总产值 x1所做的产品消耗(投入
);
0 . 40
x 2 2 x 2 0 . 05 表示三个企业为电厂
0 . 10
总产值 x 2 所做的产品消耗(投入
);
0 . 45
x 3 3 x 3 0 . 10 表示三个企业为铁路
0 . 10
总产值 x 3 所做的产品消耗(投入
);
(2)令 T ( x x x )
1 1
2
2
3 3
x1
( 1 2 3 )
x1
A
x2
x3
x2
x3
矩阵T里的每一行即为每一个企
业分别用于企业内部和其它
企业的消耗。
由消耗平衡方程组,新创造的价值应
等于总产值减去系统内各企业对该产
品的消耗需求。
现用Matlab来求解
>> T=A*diag(X)
T=
0
28615
40060
>> X-sum(T)'
26158
3269.8
6539.5
38300
8511.1
8511.1
ans =
45783
29428
29789
故 各企业新创造的价值为
z1 45783 ( 元 ),
z 3 29789 ( 元 )
z 2 29428 ( 元 )
(3)由直接消耗系数和完全消耗系数
之间的关系有
A BA B B A ( E A )
( E A)
1
E
>> B=inv(eye(3)-A)-eye(3)
1
B=
0.45658
0.44818
0.61625
0.69813
0.2799
0.4137
0.80586
0.3663
0.4652
故 若煤矿需增加总产值10000元,对煤
的完全需求为0.45658万元,对电的
完全需求为0.44818万元,对铁路的
完全需求为0.61625万元。
注:可把上述问题的结果列表如下,
(投入产出表)
§4、艺术建筑模型
一、问题
假定一艺术建筑的局部为一二次曲面,
其在某空间直角坐标系下的方程为
3 x 4 y 5 z 4 xy 4 yz 1 0
2
2
2
试判断这个二次曲面的类型,并写出所
用的变换。
二、分析
判断二次曲面的形状,先用正交变
换化为标准型,由标准方程确定形状。
这些计算问题都可用Matlab来实现。
三、求解
解:由
3 x 4 y 5 z 4 xy 4 yz 1 0
2
有
2
X
T
3
其中
A 2
0
2
AX 1
2
4
2
0
2
5
x
X y
z
>> A=sym([3 2 0;2 4 2;0 2 5]);
>> [V,D]=eig(A)
V=
[ 2, 1/2, -1]
[ -2, 1, -1/2]
[ 1, 1, 1]
D=
[ 1, 0, 0]
[ 0, 7, 0]
[ 0, 0, 4]
>> s=sqrt(sum(V.*V));
>> V./[s;s;s]
ans =
[ 2/3, 1/3, -2/3]
[ -2/3, 2/3, -1/3]
[ 1/3, 2/3, 2/3]
正交矩阵
2
3
2
Q
3
1
3
2
3
1
3
2
3
1
3
2
3
2
3
令 X=QY,即
2
x1
3
2
x2
3
x
1
3
3
2
3
1
3
2
3
为所用的正交变换。
1
3 y 1
2
y
2
3
2 y3
3
此时二次曲面方程化为
2
2
y 1 4 y 2 7y 3
2
1
故原二次曲面为椭球面,
三个长轴长分别为
1
1、0.5和
7
§5、杂交育种的稳定性
一、问题
假设某农场的试验场中某种植物的
基因型为 AA ,
A
和 ,
三种基因型各占1/3. 已知
AA
型基因属于优良品种,试分析
下列三种方案中的哪一种方案
有利于培养出优良品种?
,
方案(Ⅰ):采用
AA
型的植物与每种
基因型植物相结合的方法
培育植物后代;
方案(Ⅱ):采用
A
型的植物与每种
基因型植物相结合的方法
培育植物后代;
方案(Ⅲ):将具有相同基因型植物
相结合。
后代可能的基因型概率如下表
亲本的基因
AA - AA
后
代
的
基
因
型
AA
1
A
0
0
AA - A
1
2
1
2
0
AA -
0
1
0
A - A
1
4
A -
-
0
0
1
1
2
2
1
1
4
2
0
1
二、分析
考虑第n代作物中各种基因型所
占的比例,从而确定出哪一种
方案优。
由所给出的可能的基因型组合
表,可建立递推关系式,再求
解。
三、求 解
设 a n ,b
c
,
n
n
分别代表在第n代作物中
AA 型, A 型及
型所占的比例,
n 1, 2 ,
则由题意有
且
a 0 b0 c 0
a 0 b0 c 0 1
1
3
方案(Ⅰ):由表知,第n代的基因
由第n-1代的基因决定,有
1
a
a
b
n
n
1
n 1
2
1
b n c n 1 b n 1
2
c
0
n
n 1, 2 ,
an
bn
c
n
设
X
(n)
M1
则有
X
1
0
0
(n)
,
n 0 ,1, 2 ,
0
1
0
1/ 2
1/ 2
M1X
0
( n 1 )
,
n 1, 2 ,
从而有
X
(n)
M 1X
( n 1)
M X
2
1
(n2)
M X
n
1
(0)
下用Matlab进行计算,利用矩阵对角化
计算方阵的幂。
>> M1=sym([1 1/2 0;0 1/2 1;0 0 0]);
>> x0=sym([1/3,1/3,1/3]');
>> [V,D]=eig(M1)
V=
D=
[ 1, -1, 1]
[ -2, 1, 0]
[ 1, 0, 0]
[ 0, 0, 0]
[ 0, 1/2, 0]
[ 0, 0, 1]
有三个不同特征值,故可对角化,即
V
1
M 1V
0
0
0
0
1/2
0
0
0 D
1
n
n
1
M 1 VD V
有
>> syms n;
>> xn=V*D^n*V^(-1)*x0
xn =
1 - (1/2)^n
(1/2)^n
>> limit(xn,n,inf)
0
ans =
1
0
0
即若一直使用方案(Ⅰ),将得到纯种
AA
对方案(Ⅱ),
M
2
1 / 2
1 / 2
0
1/ 4
1/2
1/ 4
1 / 2
1 / 2
0
>> M2=sym([1/2 1/4 0;1/2 1/2 1/2;
0 1/4 1/2]);
>> x0=sym([1/3,1/3,1/3]');
>> [V,D]=eig(M2)
V = [ 1, -1, 1]
>> xn2=V*D^n*inv(V)*x0
[ -2, 0, 2]
[ 1, 1, 1]
xn2 = 1/4
D = [ 0, 0, 0]
1/2
[ 0, 1/2, 0]
1/4
[ 0, 0, 1]
对方案(Ⅲ),
M
3
1
0
0
1/ 4
1/2
1/ 4
0
0
1
>> M3=sym([1 1/4 0;0 1/2 0;0 1/4 1]);
>> x0=sym([1/3,1/3,1/3]');
>> [V,D]=eig(M3)
V = [ 1, 1, 0]
[ -2, 0, 0]
[ 1, 0, 1]
D = [ 1/2, 0, 0]
[ 0, 1, 0]
[ 0, 0, 1]
>> xn3=V*D^n*inv(V)*x0
xn3 = 1/2 - (1/2)^n/6
(1/2)^n/3
1/2 - (1/2)^n/6
>> limit(xn3,n,inf)
ans =
1/2
0
1/2
三种方案比较,方案(Ⅰ),将得到纯种
AA,有利于培养出优良品种。