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,有利于培养出优良品种。