《线性代数》太枯燥,听不懂?来看看国外教材是怎么教的
1、引言
线性代数(linear algebra)是大学理工科学生必学的三门数学主科之一,主要的内容是线性方程组,向量,矩阵,行列式及其关系与性质。但是国内高校所选取的线性代数教材死板而生硬,老师的课也一般讲得枯燥而乏味。很多学生不仅学起来索然无味,学完之后也不理解概念的本质是啥,学它又能用来干什么。但其实,线性代数在工程,经济,统计,社会学等领域有着非常重要的应用,国外的线性代数就生动很多,会介绍很多它在各个方面的应用。本篇文章就来带领大家看一看,国外的教材是如何讲线性代数的,线性代数在这个五彩斑斓的社会中有着哪些应用。
本文的内容取材于美国马里兰大学David C. Lay等人所著的《Linear Algebra and Its Application》(《线性代数及其应用》)
教材封面
2、投入-产出模型与均衡价格
在在经济学里面我们最常面临的一个问题就是,对于一家企业来讲,如何给自己的产品定价?定价太低则弥补不了成本,定价太高又会影响消费,而当市场上有很多企业时,他们胡乱定价则会扰乱整个经济体的秩序。那么各个企业如何给自己的产品定价才能够保证市场良性且持久的发展呢?
为了解决这个问题,美国经济学家,哈佛大学教授列昂惕夫(Leontief, 1906~1999)研究了所谓的投入产出分析方法,并于1973年获得诺贝尔经济学奖,我们来介绍一种最简单的模型。
列昂惕夫(1906-1999)
假设一个封闭市场只有三家企业,发电厂(Electric),炼钢厂(Steel)和挖煤厂(Coal)。每一家工厂都需要从另外两家工厂购买原料,然后生产出产品再卖给另外两家工厂。比如发电厂需要从炼钢厂购进钢铁,从挖煤厂购进煤炭,利用它们发出来的电一部分卖给炼钢厂,一部分卖给挖煤厂,还有一部分留给自己用。而炼钢厂和挖煤厂也是如此。
三者之间的这种相互关系可以用表格来描述:
投入产出表
每一数列表示了每个工厂生产的产品,按照什么样的比例卖给三个工厂。比如第一列表示的意思就是:挖煤厂生产出来的煤炭,0%留给自己,60%卖给发电厂,40%卖给炼钢厂。第二列表示的意思就是发电厂发出来的电,40%卖给挖煤厂,10%留给自己用,50%卖给炼钢厂。第3列表示的意思是:炼钢厂炼出来的钢铁60%卖给挖煤厂,20%卖给发电厂,20%留给自己用。他们之间的关系用一幅图来表示则更为清晰
于是就会面临这样一个问题,每一家工厂需要的原料都得从另外两家工厂买,而生产出来的产品又要卖给另外两家,那么,每家工厂如何规定自己产品的价格呢?我们已经假设了经济体只有这三家企业,而每一家企业的生产与销售都依赖于另外两家。因此只要有一家工厂倒闭,那么另外两家也就跟着无法生存下去。所以最好的价格就是,能使得三家企业的收入正好等于成本,这样一来三家企业都可以持续稳定地生产下去。
首先这样的价格是否存在呢?列昂惕夫已经证明了
在一个包含多个部门的经济体中,存在着一组指定给这些部门所生产商品的价格,使得每一个部门的收入正好等于支出。那么这样一组价格就称为均衡价格(equilibrium prices)
我们就用刚才那个例子来讲解一下如何求均衡价格。我们假设每一个工厂生产出来的产品数量都是1个单位,分别用pe,ps和pc,来表示电力,钢铁和煤炭的单价(即一个单位的价格)。
我们先来看其中的一家工厂,比如挖煤厂,它需要购进0.4单位的电力与0.6单位的钢铁,同时卖出一单位的煤炭。那么为了保持收支平衡,必须有
同样对于发电厂,需要购进0.6单位的煤炭,0.1单位的电力(自产自购),和0.2单位的钢铁,于是有
对于钢铁厂需要购进0.4单位的煤炭,0.5单位的电力,和0.2单位的钢铁,于是又有
我们把上面三个方程,每一个方程等号,右边的式子都挪到左边,经过化简并联立,可以得到一个方程组
这是一个典型的三元齐次线性方程组,求解它时,就利用传统的方法,对其系数矩阵作初等行变换
最终的结果最后一行全是0,说明它有无穷多个解。并且它的秩为2,说明有一个自由向量,我们不妨把ps当成自由向量,于是可以写出它的解空间
ps可以取任意值,当然在现实生活中我们肯定要取成正数。
上述方程组有无数多个解,其实也不难理解,因为均衡价格并不是唯一的,在某一个均衡价格下,三家工厂可以把各自的商品都同倍数的往上调若干倍,那么这样一来得到的仍然还是均衡价格。
当然上述模型是一种最简单的情况,它只是考虑了部门生产出来的产品全部用于再生产,而事实上,还必须有一些商品用来满足社会需求,在真正的列昂惕夫投入产出模型中,还需要再加入需求向量,这样一来就需要使用矩阵分析等更复杂的数学工具,是经济学研究非常重要的理论。
1949年,列昂惕夫为了研究美国经济,将整个美国经济体分成了500个部门,并由此列出了含有500个未知量的线性方程组,将其分解为25,0000个信息单元,输入当时在世界上最先进的电脑之一——Mark II来进行计算。但是其数据之庞大超出了电脑的运算能力,于是列昂惕夫将500个部门缩减为42个部门,再次进行计算。经过56小时的计算后,最终得到了答案。
列昂惕夫的工作不仅是成功地提出了一套分析市场投入产出(input-output)的方法,同时他利用计算机来求解方程,也是人类历史上用计算机处理大规模数据来解决问题的成功案例之一。因此在经济学和数学两方面,他的工作都具有开创性的意义。
3、化学方程式的配平
参加过理科高考的同学,一定还记得化学课上那些眼花缭乱令人头疼的化学方程式。而其中最麻烦的一类问题之一就是化学方程式的配平(Balancing Chemical Equations)。课上老师会讲很多方法与技巧,但是某个技巧并不一定适用于所有方程式,而且如果方程式过于复杂,那么配起来就需要花很长时间。
其实,利用线性方程组,我们可以配平任意化学方程式,不管它多么复杂。我们这里只举一个简单的例子,通过这个例子来看一下它的一般方法。
我们知道,有机物在氧气中燃烧会生成二氧化碳和水,我们就举一个丙烷燃烧的例子。丙烷的化学式是C₃H₈,因此我们先写出反应式:
我们用4个未知量来表示每种物质前面的系数
根据物质守恒原理,我们需要让等号左边C、H、O的个数,分别等于等号右边C、H、O的个数。我们可以用一个三维向量来表示每种物质中C、H、O各自的个数。比如C₃H₈对应的向量就是〈3,8,0〉,为了书写的好看,我们把它们都写成列向量
为了使等号两边三种元素各自的数目相同,我们可以列出一个向量方程组
对方程进行移项,便得到了一个4元线性方程组,
利用初等行变换的方法求解,该线性方程组可以得到它的解空间
其中x₄是自由向量。为了使所有系数都为整数,我们取x₄=4带进去₊就可以得到其它三个未知量的值分别为1,5,3,从而最终得到我们的方程式
利用这种方法来配平一个化学方程式,可能比我们在课堂上讲授的技巧要复杂,但是它可以作为一种配平任何化学方程式的万能方法。比如下面这个式子
就不要想还能有什么简易的技巧了吧。
4、网络流分析
网络流(network flow)是在现实生活中和科学研究中非常常见的一种现象。所谓网络,最通俗的讲就是由若干个点和连接这些点的线组成的图。而网络流则是指网络中每一条线都带有一个指定的方向和数量。
许多现象其实都可以抽象为一个网络流,比如一个城市中的道路网及其中的车流,一个电气系统中的电路及其电流,物流公司在全国各个城市之间的货物配送,甚至人自身的血液循环系统等等。
巴塞罗那规则的建筑与街道
网络流分析的两个最基本的假设是:一,对于整个网络而言,进入网络的总流量等于流出网络的总流量;第二,对于每一个节点而言,进入节点的总流量等于流出节点的总流量。比如下面图形所示的一个节点
进入的流量为30,那么流出的流量也应该是30,即x₁+x₂=30。
有时在做网络流分析时某些线路的流量信息缺失,那么这时候我们就需要使用线性方程组的方法来尽可能多地获知缺失信息,我们来举一个道路车流量的例子。假设某个城市局部的道路网格如下图所示,每一条直线表示一条道路直向上的箭头表示车流方向,A、B、C、D四个点表示四个路口(可以看出这里的道路都是单行道,其实想表示双行道也容易,只需要在两点之间画两条线就可以)。每条线上的数字表示该条路上的车流量,我的已知,有的未知,我们用未知量x1,x2,x3,x4,x5来表示。
根据前面的假设,每一个路口流入的总车流量等于流出的总车流量,我们可以分别来列出方程
通过整理得到一个含有5个未知量的线性方程组
同样我们对其求解,可以得到如下的解空间
其中x5是自由向量,即如果我们知道x5的值的话,那么剩下的4个未知量也就知道了。注意到上面所有的道路都是单行道,因此5个未知量的取值都不能为负数,否则就会出现逆行的情况,属于交通违章,那么根据这一条件,我们就可以解出x5的取值范围。
在我国很多城市经常见到所谓的环岛式路口,它也是有效提高交通效率的一种方式
环岛式路口我们仍然可以抽象为网络流,比如下面这个网络流读者可以自己尝试用线性方程组的方法来进行分析一下。
5.人口迁移
相信很多人都有选择困难症,面对淘宝上琳琅满目的各种商品,不知道如何下手。但其实最痛苦的不是做出选择,而是对同一件事情多次进行选择。例如,当代大学生每天都要面临三次选择:我该去哪个食堂吃饭呢?
其实,数学里面有专门研究这种多次选择行为的工具,并且它所使用的概念就是矩阵与向量,这就是马尔可夫链(Markov chain)。马尔可夫链是一种最简单的随机过程(stochastic process),下面就来介绍一下它是如何来描述人们的选择行为的。
就举一个最简单的例子:你是想在农村定居,还是想在城市定居?有人喜欢城市的繁华与机遇,有人喜欢农村的恬静与安逸。有人在城市住久了,想回农村养老,也有人在农村长大但是想去城市打拼。那么城市与农村人口会发生怎么样的变化呢?
我们来研究一下每年城市与农村的人口流动情况。假设在某一个国家中,2000年,60%的人居住在城市,40%的人居住在农村,我们用一个列向量x0来表示二者的比例
上面的坐标表示的是城市人口的比例,下面的坐标表示的是农村人口的比例。再通过调查发现,每一年,城市(city)人口中5%的人会迁移向农村,剩下的95%仍然留在城市;农村(suburb)人口中有3%会迁移向城市,剩下的97%仍然留在农村。为了看得更清楚一些,我们用一个图来表示
那么经过一年的迁移,到2001年城市和农村的人口比例会变成多少呢?利用上面的数据可以列出式子:对于城市人口
对于农村人口:
我们可以将上面的式子写成矩阵乘法的形式:
于是得到在2001年,城市和农村的人口比例分别为58.2%和41.8%,同样,我们再做一次相同的运算,就可以得到2002年的数据
于是在2002年城市和农村的人口比例分别为56.544%和43.456%,
我们可以把上面的计算过程抽象出来:用一个二维列向量xn来表示第n年城市人口和农村人口的比例,分别记为an和bn
于是根据上面给的迁移比例,有:
于是就得到一串向量:
通俗地讲,这一串向量就构成一个马尔可夫链。其中的矩阵
就称为该马尔可夫链的转移矩阵(transition matrix),其中第一个向量x0称为初始向量(initial vector)或初始状态(initial state)。可以看出,如果已知初始向量和转移矩阵,我们就可以计算得到任意时刻的向量
利用上面的公式,我们就可以得到任意年份的城市与农村的人口比例。
6.政党投票
在西方国家每隔几年就要搞一次选举,选民根据个人意愿把票投给不同的政党,这其实也是一个多次选择过程。我们假设某个国家共有三个政党:民主党(Democratic),共和党(Republican),自由党(Libertarian)。
每个选民对三个政党的态度都会根据执政表现而发生变化,还是假定他们之间有如下的关系:
支持民主党的选民,在下一次投票中有70%仍然投给民主党,20%投给共和党,10%投给自由党。
支持共和党的选民,在下一次投票中有80%仍然投给共和党,10%投给民主党,10%投给自由党。
支持自由党的选民,在下一次投票中有40%仍然投给自由党,30%投给民主党,30%投给共和党。
是用一个示意图来表示他们之间的关系
假设一开始有55%的人支持民主党,40%的人支持共和党,5%的人支持自由党,那么我们便可以用一个三维列向量来表示初始状态:
根据刚才给出的数字,我们可以列出它的转移矩阵
按照同样的办法,我们就可以对未来的政党得票进行预测,比如到下一次投票
可以知道三个政党的得票率分别为44%,44.5%和11.5%。
7、马尔可夫链
通过上面两个例子,我们就可以大致地介绍一下马尔可夫链的概念。假设一件事物它有n种可能的状态,处于每一种状态都有一定的概率(probability),用一个列向量来表示初始时刻处于各状态的概率,
而到下一时刻,每一个状态都会向另外的状态进行转移,每个转移都有一定的概率,我们把这些概率排列成矩阵的形式,称为转移矩阵
当然在正式的定义中,还得要求这些概率与之前转移概率无关,即
那么这样一来就有
通过这个式子我们就可以列出一串向量,
每个向量表示的就是这个事物该时刻处于各个状态的概率。依靠这些概率分布的随机向量序列就称为一个马尔可夫链。
马尔可夫链是由俄国数学家马尔可夫(Markov,1856-1922)于1907年提出的,它在研究这种多状态转移问题中有着非常重要的应用,并由此开创了随机过程这一学科,成为概率论中的重要分支。
8、结束语
好了,介绍了这么多,相信大家不会再觉得《线性代数》是枯燥且无意义的了吧,原来它在我们的生活中有着这么多丰富多彩的应用,难怪它会被列为三大公共数学主科之一。
当然,我估计有很多小伙伴们就开始鄙夷国内教材了。其实,你不能说国内教材编得不好,只是风格不同罢了。国外的教材内容详尽,例子丰富,但也有一个不好的后果,就是篇幅太长,一本教材动辄上千页,价格上千人民币,对于一个普通学生是很难负担的。比如本文举的线性代数教材,页数将近500页。
而国内教材则走的简约路线,叙述只抓重点,绝不拖泥带水,废话一句不多说,比如同学们使用最多的同济大学第五版的《工程数学线性代数》,只有160多页,价格10块钱左右。是每个学生都能负担得起的。
所以在基础数学课程中,国内国外教材的区别不是孰优谁劣,而是在风格路线上的不同。但是哪种风格路线更有利于教学和大众化教育的发展,这是值得讨论的。
参考文献
[1] Linear Algebraand Its Applications, David C. Lay, Steven R. Lay, Judi J. McDonald, Pearson
[2] 《工程数学线性代数》(第五版),同济大学,北京,高等教育与出版社
[3] 《应用随机过程》,林元烈,北京,清华大学出版社