线性方程组在对交通流量分析的简单应用
- 格式:pdf
- 大小:236.19 KB
- 文档页数:8
线性方程组的应用一、网络流模型网络流模型广泛应用于交通、运输、通讯、电力分配、城市规划、任务分派以及计算机辅助设计等众多领域。
当科学家、工程师和经济学家研究某种网络中的流量问题时,线性方程组就自然产生了,例如,城市规划设计人员和交通工程师监控城市道路网格内的交通流量,电气工程师计算电路中流经的电流,经济学家分析产品通过批发商和零售商网络从生产者到消费者的分配等. 大多数网络流模型中的方程组都包含了数百甚至上千未知量和线性方程.一个网络由一个点集以及连接部分或全部点的直线或弧线构成. 网络中的点称作联结点(或节点),网络中的连接线称作分支. 每一分支中的流量方向已经指定,并且流量(或流速)已知或者已标为变量.网络流的基本假设是网络中流入与流出的总量相等,并且每个联结点流入和流出的总量也相等. 例如,下面两图分别说明了的流量从一个或两个分支流入联结点,321,x x x 和分别表示从其它分支流出的流量,54x x 和表示从其它分支流入的流量. 因为流量在每个联结点守恒,所以有1260x x +=和80354+=+x x x . 在类似的网络模式中,每个联结点的流量都可以用一个线性方程来表示. 网络分析要解决的问题就是:在部分信息(如网络的输入量)已知的情况下,确定每一分支中的流量.(a)601x 2x 803x 4x 5x (b)二、人口迁移模型 在生态学、经济学和工程学等许多领域中经常需要对随时间变化的动态系统进行数学建模,此类系统中的某些量常按离散时间间隔来测量,这样就产生了与时间间隔相应的向量序列,,x ,x ,x 210其中k x 表示第k 次测量时系统状态的有关信息,而0x 常被称为初始向量.如果存在矩阵A ,并给定初始向量0x ,使得1021,x Ax x Ax == ,,即 n n Ax x =+1( ,2,1,0=n ) (*) 则称方程(*)为一个线性差分方程或者递归方程.人口迁移模型考虑的问题是人口的迁移或人群的流动.但是这个模型还可以广泛应用于生态学、经济学和工程学的许多领域. 这里我们考察一个简单的模型,即某城市及其周边郊区在若干年内的人口变化的情况.该模型显然可用于研究我国当前农村的城镇化与城市化过程中农村人口与城市人口的变迁问题.设定一个初始的年份,比如说2002年,用00,r s 分别表示这一年城市和农村的人口.设0x为初始人口向量,即⎪⎪⎭⎫ ⎝⎛=000s r x , 对2003年以及后面的年份,我们用向量 312123312,,,r r r x x x s s s ⎛⎫⎛⎫⎛⎫=== ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭表示出每一年城市和农村的人口. 我们的目标是用数学公式表示出这些向量之间的关系.假设每年大约有5%的城市人口迁移到农村(95%仍然留在城市),有12%的郊区人口迁移到城市(88%仍然留在郊区), 如图下图所示,忽略其它因素对人口规模的影响,则一年之后,城市与郊区人口的分布分别为:移居农村留在城市⎪⎪⎭⎫ ⎝⎛05.095.00r ,留在农村移居城市⎪⎪⎭⎫ ⎝⎛88.012.00s . 0.050.120.880.95因此,2003年全部人口的分布为 ⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛+⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛00101188.005.012.095.088.012.005.095.0s r r r s r 即 10x Mx =其中⎪⎪⎭⎫ ⎝⎛=88.005.012.095.0M 称为迁移矩阵. 如果人口迁移的百分比保持不变,则可以继续得到2004年,2005年,…的人口分布公式: 21x Mx =, ,Mx x 23=一般地,有n n Ax x =+1( ,2,1,0=n )这里,向量序列{}012,,,x x x 描述了城市与郊区人口在若干年内的分布变化.注:如果一个人口迁移模型经验证基本符合实际情况的话,我们就可以利用它进一步预测未来一段时间内人口分布变化的情况,从而为政府决策提供有力的依据.关于这个问题我们放到第四章的第五节来研究.三、电网模型一个简单电网中的电流可以用线性方程组来描述并确定,本段将通过实例展示线性方程组在确定回路电流中的应用. 电压电源(如电池等)迫使电子在电网中流动形成电流.当电流经过电阻(如灯泡或者发动机等)时,一些电压被“消耗”.根据欧姆定律,流经电阻时的“电压降”由下列公式给出:IR U =其中电压U 、电阻R 和电流I 分别以伏特(记作v )、欧姆(记作Ω)和安培为单位.下图中的电网连接了三个闭回路.回路1,2和3中的电流分别用321,I I I 和表示.回路电流的方向是任意的.如果一个电流为负,则表示实际的电流方向与图中闭回路的电流方向相反.如果电流所示的方向由电池正极(长的一端)指向负极(短的一端),则电压为正;否则电压为负.电网模型 40V 10V 60V Ω8Ω2Ω2Ω8Ω2Ω2A BD C Ω2Ω61I 2I 3I根据物理学,回路中的电流服基尔霍夫电压定律,即沿某个方向环绕回路一周的所有电压降IR 的代数和等于沿同一方向环绕该回路一周的电源电压的代数和.注:电网中的回路电流可以用来确定电网中每一分支中的电流.如果只有一个回路电流流经一个分支,如图3-7-3中的AB,则分支电流等于回路电流.如果多于一个回路电流流经一个分支,例如从DA,则分支电流为该分支中回路电流的代数和.如DA 分支中的电流为12312I I -=-=安培,方向与1I 相同,CB 分支中的电流为932=+I I 安培.四、配平化学方程式化学方程式表示化学反应中消耗和产生的物质的量. 下面我们以举例的方式来说明配平化学方程式的基本原理.例题选讲例1(E01) 下图中的网络给出了在下午一两点钟,某市区部分单行道的交通流量(以每刻钟通过的汽车数量来度量).试确定网络的流量模式.303020104050A B C D 3x 4x 5x 1x 2x解 根据网络流模型的基本假设,在节点(交叉口)A,B,C,D 处,我们可以分别得到下列方程:1554432211050:40:30:3020:x x D x x C x x x B x x A +=++=+=++=+此外,该网络的总流入(20+30+50)等于网络的总流出(30+3x +40+10),化简得203=x .把这个方程与整理后的前四个方程联立,得如下方程组:⎪⎪⎪⎩⎪⎪⎪⎨⎧==-=--=--=-20404030103515443221x x x x x x x x x x 取5()x c c =为任意常数,则网络的流量模式表示为c x c x x c x c x =+==+=+=54321,40,20,30,40网络分支中的负流量表示与模型中指定的方向相反. 由于街道是单行道,因此变量不能取负值. 这导致变量在取正值时也有一定的局限.例2(E02) 已知某城市2008年的城市人口为500 000 000,农村人口为780 000 000.计算2010年的人口分布.解 因2008年的初始人口为⎪⎪⎭⎫ ⎝⎛=7800000005000000000x , 故对2009年,有 ⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫⎝⎛⎪⎪⎭⎫ ⎝⎛=71140000056860000035000000085000000088.005.012.095.01x ,对2010年,有 ⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫ ⎝⎛=65446200062553800071140000056860000088.005.012.095.02x . 即2010年中国的人口分布为城市人口为625538000,农村人口为654462000.例3(E03) 确定下图电网中的回路电流. 40V 10V 60V Ω8Ω2Ω2Ω8Ω2Ω2A BD C Ω2Ω61I 2I 3I解 在回路1中,电流1I 流过三个电阻,且电压降IR 为111122688I I I I =++;在回路2中的电流也流经回路1的一部分,即从D 到A 的分支,对应的电压降IR 为26I 伏特.然而,回路1中电流在DA 段的方向与回路2中选定的方向相反,因此,回路1中所有电压降IR 的代数和为21622I I -.由于回路1中的电压为+60伏特,由基尔霍夫电压定律,可得回路1的方程为6062221=-I I ,同理,可得回路2的方程为102126321=-+-I I I ,其中,16I -是回路1中流经DA 分支的电流(因为电流与回路2中的电流方向相反,所以电压为负);212I 是回路2中所有的电阻乘上回路电流的和;32I -是回路3中流经CB 分支上2欧姆电阻的电流,方向与回路2中该段的电流方向相反.回路3的方程为506232-=+-I I注意,在CB 分支上10伏特的电池被当作是回路2和回路3中的一部分,但是由于回路3中电流方向,电池在回路3中为-10伏特.出于同样的道理,40伏特的电池也应取负值.综合上述讨论,上述电网的回路电流满足下列线性方程组⎪⎩⎪⎨⎧-=+-=-+-=-5062102126606223232121I I I I I I I写成矩阵形式为⎪⎪⎪⎭⎫ ⎝⎛-=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛----5056062021260622321I I I (*)对增广矩阵进行行变换,得⎪⎪⎪⎭⎫ ⎝⎛-→⎪⎪⎪⎭⎫ ⎝⎛-----8100101030015062052126600622从而解得1I =3安培,2I =1安培,3I =-8安培.3I 取负值说明回路3中的实际电流与图中显示的电流方向相反.在方程组(*)中,如果将其系数矩阵记为R ,右端列向量记为u , =i T )I ,I ,I (321,则可得到以矩阵形式表示的欧姆定律:Ri u =.例4(E04) 燃烧丙烷时丙烷(C 3H 8)和氧气(O 2)结合,生成二氧化碳(CO 2)和水(H 2O),其化学方程式为:138223242()C H ()O ()CO ()H O x x x x +→+ (*)为了配平该方程式,必须找出一列14,,x x ,使得方程式左端的碳原子(C)、氢原子(H)和氧原子(O)的总数与右端对应的原子总数相等(因为化学反应中原有的原子不可能消失,也不可能产生新原子).解 配平化学方程式的一个系统的方法,就是建立能描述反应过程中每种原子数目的向量方程. 方程(*)包含了3种不同的原子(碳、氢、氧),于是在R 3中为(7.1)的每一种反应物和生产物构造如下向量,在其中列出每个分子所包含的不同原子的数目:382223010C H :8,O :0CO 0H O 20221←⎛⎫⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪← ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪←⎝⎭⎝⎭⎝⎭⎝⎭碳,:,:氢氧为了配平方程式(*),系数14,,x x 必须满足1234301080020221x x x x ⎛⎫⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪ ⎪+=+ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭⎝⎭经整理得到如下方程组131423430820220x x x x x x x -=⎧⎪-=⎨⎪--=⎩ 取4x c =(c 为任意常数),得到如下通解.c x ,c x ,c x ,c x ====1121434541 由于化学方程式中的系数必须为整数,取44x =,此时11x =,235 3.x x ==且配平后的方程式为38222C H 5O 3CO 4H O +→+如果将每个系数翻倍,方程式仍然平衡. 不过,在大多数场合下化学家更倾向于使用尽可能小的整数来配平方程式.。
线性方程组关于交通流量的应用实例分析【摘要】通过对福州某地段单行道交通网络实地调查,利用线性方程组分析其交通流量特性,借助Matlab计算工具提出了可变车道的设计方案,以求达到缓解该地段交通拥挤状况的目的.【关键词】线性方程组;交通流;Matlab引言线性代数是代数的一个主要分支,以向量空间与线性变换为研究对象,就其在数学、物理学以及经济学等分支的应用来说,线性代数的离化思想具有非常特殊的作用,为此也成为作为大学生的我们必修的公共基础课之一. 在现代大量的科学技术问题,最终往往归结为解线性方程组. 因此在线性方程组的数值解法得到发展的同时,线性方程组解的结构等理论性工作也取得了令人满意的进展. 现在,线性方程组的数值解法在计算数学中占有重要地位. 因此如何去解线性方程组,怎么去运用线性方程组成为了我们线性代数的学习基础.科学在发展,我们不仅要研究单个变量之间的关系,还要进一步研究多个变量之间的关系,各种实际问题在大多数情况下可以线性化,而由于计算机的发展,线性化了的问题又可以计算出来,线性代数正是解决这些问题的有力工具,就线性代数的思想而言,也十分适应于计算机的编程等方面,就产生了用Matlab来解决线性代数问题的思想,它与线性代数有着紧密的联系.线性方程组是线性代数最基本的内容之一,而经常见到的就是求解线性方程组,早在中国古代的数学著作《九章算术方程》章中已作了比较完整的论述. 其中所述方法实质上相当于现代的对方程组的增广矩阵施行初等行变换从而消去未知量的方法,即高斯消元法. 在西方,线性方程组的研究是在 17 世纪后期由莱布尼茨开创的.他曾研究含两个未知量的三个线性方程组组成的方程组. 麦克劳林在 18 世纪上半叶研究了具有二、三、四个未知量的线性方程组,得到了现在称为克莱姆法则的结果. 克莱姆不久也发表了这个法则. 18世纪下半叶,法国数学家贝祖对线性方程组理论进行了一系列研究,证明了元齐次线性方程组有非零解的条件是系数行列式等于零; 19 世纪,英国数学家史密斯 (H.Smith) 和道奇森 (C-L.Dodgson) 继续研究线性方程组理论,前者引进了方程组的增广矩阵和非增广矩阵的概念,后者证明了n个未知数n个方程的方程组相容的充要条件是系数矩阵和增广矩阵的秩相同,这正是现代方程组理论中的重要结果之一. [6]在行车道上经常会出现塞车的现象,在城市的车流高峰期尤为常见. 以单行道为例,在得知交通网络的车辆流向的前提下,经过对交通网络各个路口的交通流量的实际交通调查,统计出主要进出口的车辆总数大致相同的情况下,可以得出交通网络的平衡方程组,通过对线性方程组的解得分析,得出该交通网络的交通网络在某一段时间的车况受哪些车道路况影响,本文在以上条件下,提供了一种利用线性方程组来研究单行道路况的方法,也就是在列出交通网络的平衡方程通时,基于Matlab计算工具分析网络平衡方程的解,在得出问题车道后,提出了在拥堵的车道设计可控制的变向车道,以求缓解交通拥挤的状况,虽然未经实践实用,但具有一定的应用价值.1.基本概念与结论本节主要介绍线性方程组的一些基本概念与结论,以便后文使用.定理1.1[3] n 元齐次线性方程组m n ⨯=A x 0有非零解的充分必要条件是其系数矩阵的秩()r n <A 且其通解式中带有()n r -A 个任意参数; 只有零解的充分必要条件是()r n =A .定理1.2[3] n n ⨯齐次线性方程组=AX 0有非零解的充分必要条件是=A 0;它只有零解的充分必要条件是≠A 0.定理1.3[3] n 元非齐次线性方程组m n ⨯=A x b 有解的充分必要条件是其系数矩阵A 的秩等于增广矩阵=⎡⎤⎣⎦A A b 的秩.定理1.4[1] 对于n 元非齐次线性方程组m n ⨯=A x b 有如下结论:(1) 当()()r r =A A 时,方程组有解.这时,若()()r r n ==A A ,则方程组有唯一解 若()()r r n =<A A ,则方程组有无限多个解,且其通解式中带有()n r -A 个任意参数.(2) 当()()r r <A A 时,方程组无解.由于下文用到Matlab 来解线性方程组的,有必要说明一下几个命令:(1) 计算矩阵的秩——命令:rank (矩阵);(2) 化矩阵为行阶梯形求解线性方程组——命令:rref (矩阵)例 求解线性方程组123412341234030230x x x x x x x x x x x x --+=⎧⎪-+-=⎨⎪--+=⎩ 具体操作:>> A=[1 -1 -1 1;1 -1 1 -3;1 -1 -2 3]A =1 -1 -1 1 1 -1 1 -3 1 -1 -23 >> rref(A)ans =1 -1 0 -1 0 0 1 -2 0 0 0 0即得与原方程组同解的方程组:12434020x x x x x --=⎧⎨-=⎩ 令4122,x c x c ==,可得通解为1122231412x c c x c x c x c ==+⎧⎪=⎪⎨=⎪⎪⎩其中12,c c 为任意常数2. 交通流量应用分析汽车在道路上连续行驶形成的车流,我们称之为交通流.广义上还包括其他车辆的车流和人流. 在某段时间内,在不受横向交叉影响的路段上,交通流呈连续流状态;在遇到路口信号灯管制时,呈断续流状态. 城市道路网中每条路、每个交叉路口的车流量调查是分析、评价及改善城市交通状况的基础. 根据实际车流量的信息可以设计流量控制方案,必要时设置单行线,以免大量车辆长时间堵车.2.1 问题提出据悉福州市在公路、铁路、港口等方面都将有大投资,其中拟投资约140亿元规划建设长约150 公里的高速公路,许多市内单行车道面临整改,市民出行将更加便捷,是否可以在原有的单行车道基础上做适当改造也能达到相应的效果呢?以下是福州某路段简易单行线如图(1)所示,箭头方向表示车流的方向,适当收集一些数据后我们是否可以得出关于这个交通网的一些结论.图(1)2.2模型分析为了便于接下来的分析,我们对车流图做如图(2)处理:a 2mjb 13a 4k2nEDCBA图(2)其中14~a a 表示各相交道路的进口交通量,13~b b 表示各相交道路的出口交通量,j k l m n r、、、、、表示通过图示各交通干道的车辆数.2.3 数据收集由于工具有限,我们只对进出口交通量(即14~a a 和13~b b )进行实时统计,统计图表如下:表1 14~a a 进口交通流量表2 13~b b 出口交通流量2.4数据分析从表1和表2中可以看出在观察的时间段内各个进口的交通流量之和与各个出口的交通流量之和大致相同,即1234123a a a a b b b +++≈++,为了便于分析我们把进出口的交通流量按平均值折算为每小时的车流量,补正取367b =结果如下:进口交通流量:13612432a =⨯=(辆/小时) 23312396a =⨯=(辆/小时) 3157121884a =⨯=(辆/小时) 47012840a =⨯=(辆/小时)进入网络的车的总量(辆/小时):43239618848403552+++= 出口交通流量:1155121860b =⨯=(辆/小时) 27412888b =⨯=(辆/小时) 36712804b =⨯=(辆/小时)离开交通网络的车总量(辆/小时):18608888043552++=从交通流量平衡条件,对于每一个道路交叉点我们都可以写出一个流量平衡方程:A 路口:12a a j r +=+B 路口:1j k b n +=+C 路口:43a l b k +=+D 路口:2m n l b +=+E 路口:3a r m +=从而我们可以得到一个反应网络交通流量的线性代数方程:43239618608408048881884j r j k n l k m n l r m+=+⎧⎪+=+⎪⎪+=+⎨⎪+=+⎪+=⎪⎩ 化简得:8281860368881884j r j k n k l m n l m r +=⎧⎪+-=⎪⎪-=⎨⎪+-=⎪-=⎪⎩ 写成矩阵形式为:=Ax b10001110010011000001110000101⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥-⎢⎥⎢⎥-⎣⎦A ,[]T j klm n r =x ,[]8281860368881884T=b增广矩阵118281100101860011000360011108880001011884⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥-⎢⎥⎢⎥-⎣⎦A由于()()46rank rank ==<A A ,故方程组有无穷多个解,且其参数中带有2个任意参数运用Matlab 求解可得方程组的通解,求解步骤如下: >> B=[0 0 0 1 0 1 828; 0 0 -1 0 1 1 1860; -1 0 0 0 1 0 36; -1 1 1 0 0 0 888; 0 1 0 -1 0 0 1884]B =0 0 0 1 0 1 828 0 0 -1 0 1 1 1860-1 0 0 0 1 0 36 -1 1 1 0 0 0 888 0 1 0 -1 0 0 1884 >> rank(B) ans = 4 >> rref(B) ans =1 0 0 0 -1 0 -36 0 1 0 0 0 1 2712 0 0 1 0 -1 -1 -1860 0 0 0 1 0 1 828 0 0 0 0 0 0 0 即等价的原方程组的通解:12211213627121860828c c c c c c c ⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥-⎢⎥⎢⎥+-⎢⎥-⎢⎥⎣⎦,其中12c c 、可以取任意实数,方程组有无限多个解. 是不是真的是无穷多个解呢?答案是否定的,注意到我们研究的是实际车道上的车流量,是不存在负数的,因此以上变量还需满足:12211210036027120186008280j c k c l c m c n c c r c =≥⎧⎪=≥⎪⎪=-≥⎪⎨=-≥⎪⎪=+-≥⎪=-≥⎪⎩ ① 即:21123608281860c c c c ≥⎧⎪≤≤⎨⎪+≥⎩,其中12c c 、为整数 也就是说:I .只要追加统计出j k l m n r 、、、、、中任意2个数值的,就可以求出其他未知量数值. II .该交通网络中,若每小时通过CB 段的车辆不超过36辆、通过AB 与CB 段的车辆总数之和不超过1860辆、通过AB 段的车辆多于828辆三种情况中出现一种整个网络平衡就会被破坏,即出现塞车的现象.2.5模型改进根据上述分析,上述的交通网络中若出现网络平衡被破坏了,我们可以采取合适的方法进行改进,使得网络重新回归平衡.交通网络还是图(1)网络.若112,2712,36j c c k c =>=≥这是造成网络失去平衡的一种情况:依据线性方程组①,我们可以得出12211210036027120186008280j c k c l c m c n c c r c =≥⎧⎪=≥⎪⎪=-≥⎪⎨=-<⎪⎪=+-≥⎪=-<⎪⎩ ②即:每小时通过ED ,AD 段的车流量出现负值的现象,现在做如变动,进出口的交通流量与之前一致变化如图(3)所示:a 213jb 1b 3a 4k2nmEDCBA图(3)变动说明:即把ED 、EA 段的车流方向改为与原来方向相反. 此时交通网络是否恢复了平衡了呢? 若平衡,依据前文计算方法可得平衡线性方程组:43239618608408048881884r j j k n l k n l m m r++=⎧⎪+=+⎪⎪+=+⎨⎪=++⎪+=⎪⎩ 即8281860368881884r j n j k k l m n l m r =-⎧⎪=+-⎪⎪-=⎨⎪=--⎪=-⎪⎩ 化简后可得通解:12211213627121860828c c c c c c c ⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥-⎢⎥⎢⎥+-⎢⎥-⎢⎥⎣⎦其中12c c 、为满足假设的正整数不难发现:1221121271203603602712018602712361860082827128280j c k c l c m c n c c r c =>>=≥>=-≥=->=+->+->=->->均为正实数, 即现在网络是平衡的交通网络. 112,2712,36j c c k c =>=≥这是造成网络失去平衡的情况中的一种, 其他情况研究的方法类似在此就不一一列举.我们可以得出这样一个结论,在已知进出口车流总量的单行车道中当网络出现平衡被破坏时,也就是车道上的车流量出现负值时,可以把该干道车流方向变更为之前方向相反例如:在“A →B ”的车流量超过了2712,“C →B ”段的车流量超过36, 若按之前平衡方程进行分析,“E →D ”、“A →E ”流向车流量出现了负值现象,若要使网络恢复平衡,更改这两个车流方向即可,即:“E →D ”车流向变更为“D →E ” “A →E ” 车流向变更为“E →A ”网络就可恢复平衡,也就是各个交通要道车流量恢复了正值.在实际行车中,可以对经常出现交通紧张的车道进行可变车道改造,改造设计如图(4)所示:图(4)改造说明:将车道变更如图所示,道路进出口处标示“可变车道”,并设制正反向通行指示灯,需要注意的是此车道为单行车道同一时间段只允许一个方向的车通行. 可变车道的正反向的启动时间可根据电子监测设备采集的交通实时数据进行动态调整,也可引进相应的交通控制软件进行动态控制.2.6模型缺点(1) 城市交通路口的交通状况十分复杂,交通量尤其是高峰小时期的交通量很大,调查员在进行实际调查有一定的困难.(2) 对于各交通路口同一时段的车流量的即时统计存在一定的困难,需借助一定的测流工具,工具存在一定的误差,而且此次观察时间较短.(3) 该模型需要满足进出口的交通流量总量大致一致,要求比较苛刻(4) 该模型只适用于单车道模型,对于现在交通干道普遍存在的双车道的模型不适用. (5) 后文提到的解决单行车道道路堵塞问题存在可行性,但未进行实践应用,未能看出其实用价值.3. 结语本文主要通过一个简易的交通流量图,介绍了线性方程组的思想在交通流量方面的应用,提供了一种运用线性方程的思想去分析城市单行车道的交通状况的方法,并提出了一种解决交通堵塞的方法,其实线性方程组解决交通实际交通问题已经不是少见的事了,在统计城市三路交叉口、四路交叉口等等都会用到线性方程组的方法. 在科学、工程、化学、交通等各个领域中包含的众多数学问题中都,大都会遇到解线性方程组的问题,可见线性方程组的应用之广泛.参考文献[1] 丘维声.高等代数(上册)[M]. 北京:高等教育出版社,2007,90-97.[2] 王坤,周岩. 线性代数及其应用[M]. 北京:机械工业出版社,2007,125-127.[3] 刘剑平,施劲松,钱夕元. 线性代数及其应用[M]. 上海:华东理工大学出版社,2005,63-69.[4] 王亮,冯国臣,王兵团. 基于MATLAB的线性代数实用教程[M]. 北京:科学出版社,2008,63-89.[5] David C. Linear Algebra and Its Applications,Third Edition[M]. 北京:机械工业出版社,2005,59-88.[6] 徐品芳. 数学简明史[M]. 北京:学苑出版社,1992,63-72.[7] 姚喜研,王济荣. 线性代数[M]. 北京:北京大学出版社,2009,64-102.[8] 王建军. 线性代数及其应用[M]. 上海:上海交通大学出版社,2005,80-88.Applications of Linear Equations to AnalysePractical Examples on Traffic FlowHongdehuo 105012007003 Advisor:Zhou dexuMajor in Pure and Applied Mathematics College of Mathematics and Computer Science【Abstract】By surveying one-way traffic network on the spot in Fuzhou, we apply linear equations to analyse the traffic flow characteristics, and propose a design of variable lane relying on Matlab so that it is convenient to alleviate the status of traffic congestion in this place.【Key words】Linear equations; traffic flow; Matlab。
数学实验报告学号: , 姓名: , 得分:实验内容:实验题:交通网络流量分析问题(线性方程组应用)城市道路网中每条道路、每个交叉路口的车流量调查,是分析、评价及改善城市交通状况的基础。
问题:某城市有下图所示的交通图,每条道路都是单行线,需要调查每条道路每小时的车流量。
图中的数字表示该条路段的车流数。
如果每个交叉路口进入和离开的车数相等,整个图中进入和离开的车数相等。
求(1)建立确定每条道路流量的线性方程组;(2)分析哪些流量数据是多余的;(3)为了唯一确定未知流量,需要增添哪几条道路的流量统计。
解:(1)由题意得:x1+ x7=400x1+ x9= x2+300x2+100=300+ x11x3+ x7=350+ x8x4+ x10= x9+ x3x11+500= x4+ x12x8+ x5=310x6+400= x10+ x5x12+150= x6+290整理得: x 1+ x 7=400 x 1- x 2+ x 9=300x 2+ x 11=200x 3+ x 7- x 8=350-x 3+x 4+ x 10- x 9=0 -x 4+x 11- x 12=-500 x 5 +x 8=310 - x 5+x 6- x 10=-400 -x 6+ x 12= 140将方程组写成矩阵向量形式为AX = b1 0 0 0 0 0 1 0 0 0 0 0 400 x 11 -1 0 0 0 0 0 0 1 0 0 0 300 x 20 1 0 0 0 0 0 0 0 0 1 0 200 x 3A= 0 0 1 0 0 0 1 -1 0 0 0 0 b= 350 X= x 40 0 -1 1 0 0 0 0 -1 1 0 0 0 x 50 0 0 -1 0 0 0 0 0 0 1 -1 -500 x 60 0 0 0 1 0 0 1 0 0 0 0 310 x 70 0 0 0 -1 1 0 0 0 -1 0 0 -400 x 80 0 0 0 0 -1 0 0 0 0 0 1 140 x 9 x 10 x 11 x 12在MATLAB 环境中,首先输入方程组的系数矩阵A 和方程组右端向量bA=[1,0,0,0,0,0,1,0,0,0,0,0;1,-1,0,0,0,0,0,0,1,0,0,0;0,1,0,0,0,0,0,0,0,0,1,0;0,0,1,0,0,0,1,-1,0,0,0,0;0,0,-1,1,0,0,0,0,-1,1,0,0;0,0,0,-1,0,0,0,0,0,0,1,-1;0,0,0,0,1,0,0,1,0,0,0,0;0,0,0,0,-1,1,0,0,0,-1,0,0;0,0,0,0,-1,0,0,0,0,0,1] b = [400;300;200;350;0;500;310;-400;140]解得 x 1=- x 9+500 x 2=200 x 3=- x 9+ x 10- x 12。
数学方法在交通流量中的应用在现代社会中,交通流量的高效管理至关重要。
为了解决交通拥堵和提高交通效率,数学方法被广泛应用于交通领域。
本文将介绍一些常见的数学方法在交通流量中的应用。
一、概率统计方法在交通流量的预测和分析中,概率统计方法起到了关键的作用。
通过对历史交通数据的统计分析,可以得到不同时间段、不同道路的交通流量概率分布。
基于这些概率分布,可以预测未来交通流量的趋势,从而制定有效的交通管理措施。
此外,概率统计方法还可以用于分析不同因素对交通流量的影响程度,例如天气、节假日等因素。
通过建立数学模型,可以量化这些影响并作出相应的调整。
二、线性规划线性规划是一种常见的优化方法,在交通流量中也得到了广泛的应用。
通过建立数学模型,确定交通网络中各个节点之间的最佳流量分配,使整个交通系统的运输效率最大化。
线性规划可以考虑道路容量、行驶速度、交通信号灯等因素,通过调整交通流量的分布,减少交通拥堵和行程时间,提高交通的运行效率。
三、图论算法图论算法在交通流量中的应用主要体现在交通路线的优化上。
通过建立交通网络的拓扑结构,使用图论算法可以寻找最佳的路径规划方案,从而减少行车距离和行驶时间。
例如,狄克斯特拉算法可用于计算单一起点到所有其他节点的最短路径,而弗洛伊德算法则可用于计算任意两个节点之间的最短路径。
这些算法在交通导航系统中得到了广泛的应用,能够为驾驶员提供最佳的路线选择。
四、仿真模拟交通流量的仿真模拟是一种常用的数学方法,它通过建立交通流动的数学模型,模拟真实交通场景,评估交通控制策略的有效性。
通过仿真模拟,可以预测交通流量的变化趋势,提前发现交通拥堵瓶颈,并针对性地采取相应措施。
此外,在交通规划和交通工程设计中,也可以利用仿真模拟来评估不同方案的可行性和效果。
综上所述,数学方法在交通流量中的应用极为广泛。
概率统计方法用于预测和分析交通流量,线性规划优化交通系统的运输效率,图论算法优化交通路径选择,仿真模拟评估交通控制策略。
高校数学教学应用创新与课堂思政结合实践案例摘要当今世界科技高速发展,为了国家的发展和进步,迫切需要提高我国技术研发人员创新能力、应用能力。
高校数学课程作为基础课程,高校教师在教学过程中必须加强数学应用教育与课程思政的结合,让学生学习数学知识的同时提升自身的思想道德水平。
关键词数学应用;课程思政;创新意识;创新能力高校作为国家培养优秀人才的摇篮,在教学及实习活动中更应该注重学生创新应用能力的培养,同时也要结合课程思政提高学生的思想道德水平。
《高等数学》《线性代数》《概率与数理统计》等数学课程是理工类院校必开的基础课程,这些数学课程为后续课程提供了所必需的数学概念、理论、方法和运算技能。
通过本课程的学习,旨在培养和提高学生的思维素质、创新能力、科学精神以及用数学解决实际问题的能力。
作为未来的工程技术或研究人员,通过这些课程的学习,为从事专业工作和进行科学研究打下良好的数学基础。
高校数学教师改变传统教育观念才能培养出具有应用创新意识及应用创新能力的高素质大学生。
首先,要正确认识在数学课堂教学过程中教师与学生所扮演的角色、不同地位和作用,学习吸收知识的主体是学生,通过应用创新的生活实例模型调动学生的学习主动性和积极性,通过数学知识点与课程思政结合使学生以更高的热情参与到课堂教学活动中,而不是被教师强硬的压着学。
高校数学教师在教学过程中就像给娇嫩的花朵浇水一样,不能只是输出、灌输,一味地把自己的意识、知识强加于学生;更应注重大学生在学习过程接受程度、吸收效果是否良好,灌输太多太快会像花朵浇太多的水烂根、枯萎,导致大学生无法吸收或者吸收不良,长期如此将严重打击学生学习数学的积极性和成就感。
在高校数学教学过程中通过生动有趣的生活实例及数学模型,引导大学生主动探索将生活中的问题用数学方法处理,将新旧数学知识通过学以致用融合贯通,建构自己的知识体系,大学生可以从中获得成功的喜悦,体现自我价值,增加创新意识。
优秀的高校数学教师在自己的课堂上是《西游记》里的孙悟空带着孩儿们边玩边学,而不是像《大话西游》里的唐僧一样碎碎念,当然在抽象复杂的数学课上要想实现这一点需要在多方面付出的努力。
常微分方程在交通流量预测中的研究应用交通是现代城市生活中不可缺少的一部分,每天都有大量的人和车辆在道路上进行通行,而如何预测交通的流量则是一个非常重要的问题。
在这方面,常微分方程可以帮助我们精准地预测交通的流量,为城市规划和交通管理提供帮助。
一、常微分方程在交通流量预测中的应用常微分方程是数学中一个重要的分支,主要研究随时间变化的量和它们的变化率之间的关系。
在交通流量的预测中,我们通常会将时间作为自变量,而交通流量则是一个随时间变化的量。
因此,我们可以使用常微分方程来描述交通的流量变化。
常微分方程可以描述自然界和人类社会中大量的现象,比如物理学中的牛顿运动定律、化学反应、生物学中的群体动力学等等。
对于交通流量的预测,我们可以将交通流量看作是一种运动状态,而道路则是运动中的物体。
通过建立适当的常微分方程模型,我们可以对交通的流量变化进行预测。
二、常微分方程模型的建立在建立常微分方程模型时,我们需要考虑一些关键因素,比如交通需求、路段类型、车辆类型等。
另外,我们还需要探讨一些影响交通流量的因素,比如节假日、天气状况、特殊事件等。
这些因素都会影响交通流量的变化,因此在建立常微分方程模型时,我们需要尽可能多地考虑这些因素。
常用的常微分方程模型包括线性模型、非线性模型、混沌模型等。
对于线性模型,我们假设交通流量的变化率与时间成正比,这种模型比较简单,容易理解。
但是对于复杂的交通状况,这种模型的预测精度会较低。
非线性模型则能更好地刻画交通的复杂变化,但是也需要更多的数据和计算资源。
同时,我们还需要对建立的常微分方程模型进行验证,比如使用历史数据进行模型的马尔科夫过程检验、拟合度检验等。
只有在经过充分验证后,我们才能将模型用于交通流量的预测。
三、常微分方程模型在实际应用中的案例常微分方程模型在交通流量预测中的应用已经有一定的研究成果。
下面介绍几个常微分方程模型在实际应用中的案例。
1、基于核函数回归和常微分方程的高速公路交通流量预测该模型通过核函数回归和常微分方程来建立交通流量预测模型,同时考虑了交通需求、天气、时间等多种因素。
线性代数建模案例汇编目录案例一. 交通网络流量分析问题1案例二. 配方问题4案例三. 投入产出问题6案例四. 平板的稳态温度分布问题7案例五. CT图像的代数重建问题11案例六. 平衡结构的梁受力计算13案例七. 化学方程式配平问题16案例八. 互付工资问题17案例九. 平衡价格问题19案例十. 电路设计问题20案例十一. 平面图形的几何变换22案例十二. 太空探测器轨道数据问题24案例十三. 应用矩阵编制Hill密码25案例十四. 显示器色彩制式转换问题27案例十五. 人员流动问题29案例十六. 金融公司支付基金的流动31案例十七. 选举问题33案例十八. 简单的种群增长问题34案例十九. 一阶常系数线性齐次微分方程组的求解36 案例二十. 最值问题38附录数学实验报告模板错误!未定义书签。
案例一. 交通网络流量分析问题城市道路网中每条道路、每个交叉路口的车流量调查,是分析、评价及改善城市交通状况的基础。
根据实际车流量信息可以设计流量控制方案,必要时设置单行线,以免大量车辆长时间拥堵。
【模型准备】 某城市单行线如下图所示, 其中的数字表示该路段每小时按箭头方向行驶的车流量(单位: 辆).图3 某城市单行线车流量(1) 建立确定每条道路流量的线性方程组.(2) 为了唯一确定未知流量, 还需要增添哪几条道路的流量统计? (3) 当x 4 = 350时, 确定x 1, x 2, x 3的值.(4) 若x 4 = 200, 则单行线应该如何改动才合理?【模型假设】 (1) 每条道路都是单行线. (2) 每个交叉路口进入和离开的车辆数目相等.【模型建立】 根据图3和上述假设, 在①, ②, ③, ④四个路口进出车辆数目分别满足500 = x 1 + x 2① 400 + x 1 = x 4 + 300 ② x 2 + x 3 = 100 + 200 ③ x 4 = x 3 + 300 ④ 【模型求解】根据上述等式可得如下线性方程组12142334500100300300x x x x x x x x +=⎧⎪-=-⎪⎨+=⎪⎪-+=⎩其增广矩阵(A , b ) =1100500100110001103000011300⎛⎫ ⎪--⎪ ⎪ ⎪-⎝⎭−−−−→初等行变换10011000101600001130000000--⎛⎫ ⎪⎪-- ⎪⎪⎝⎭由此可得142434100600300x x x x x x -=-⎧⎪+=⎨⎪-=-⎩ 即142434100600300x x x x x x =-⎧⎪=-+⎨⎪=-⎩. 为了唯一确定未知流量, 只要增添x 4统计的值即可. 当x 4 = 350时, 确定x 1 = 250, x 2 = 250, x 3 = 50.若x 4 = 200, 则x 1 = 100, x 2 = 400, x 3 = -100 < 0. 这表明单行线“③←④”应该改为“③→④”才合理.【模型分析】(1) 由(A , b )的行最简形可见, 上述方程组中的最后一个方程是多余的. 这意味着最后一个方程中的数据“300”可以不用统计.(2) 由142434100600300x x x x x x =-⎧⎪=-+⎨⎪=-⎩可得213141500200100x x x x x x =-+⎧⎪=-⎨⎪=+⎩, 123242500300600x x x x x x =-+⎧⎪=-+⎨⎪=-+⎩, 132343200300300x x x x x x =+⎧⎪=-+⎨⎪=+⎩, 这就是说x 1, x 2, x 3, x 4这四个未知量中, 任意一个未知量的值统计出来之后都可以确定出其他三个未知量的值.Matlab 实验题某城市有下图所示的交通图, 每条道路都是单行线, 需要调查每条道路每小时的车流量. 图中的数字表示该条路段的车流数. 如果每个交叉路口进入和离开的车数相等, 整个图中进入和离开的车数相等.图4 某城市单行线车流量(1)建立确定每条道路流量的线性方程组.(2)分析哪些流量数据是多余的.(3)为了唯一确定未知流量, 需要增添哪几条道路的流量统计.案例二. 配方问题在化工、医药、日常膳食等方面都经常涉及到配方问题. 在不考虑各种成分之间可能发生某些化学反应时, 配方问题可以用向量和线性方程组来建模. 【模型准备】一种佐料由四种原料A 、B 、C 、D 混合而成. 这种佐料现有两种规格, 这两种规格的佐料中, 四种原料的比例分别为2:3:1:1和1:2:1:2. 现在需要四种原料的比例为4:7:3:5的第三种规格的佐料. 问: 第三种规格的佐料能否由前两种规格的佐料按一定比例配制而成?【模型假设】 (1) 假设四种原料混合在一起时不发生化学变化. (2) 假设四种原料的比例是按重量计算的. (3) 假设前两种规格的佐料分装成袋, 比如说第一种规格的佐料每袋净重7克(其中A 、B 、C 、D 四种原料分别为2克, 3克, 1克, 1克), 第二种规格的佐料每袋净重6克(其中A 、B 、C 、D 四种原料分别为1克, 2克, 1克, 2克). 【模型建立】 根据已知数据和上述假设, 可以进一步假设将x 袋第一种规格的佐料与y 袋第二种规格的佐料混合在一起, 得到的混合物中A 、B 、C 、D 四种原料分别为4克, 7克, 3克, 5克, 则有以下线性方程组24,327,3,2 5.x y x y x y x y +=⎧⎪+=⎨+=⎪+=⎩ 【模型求解】上述线性方程组的增广矩阵(A , b ) =214327113125⎛⎫ ⎪ ⎪ ⎪ ⎪⎝⎭−−−−→初等行变换101012000000⎛⎫ ⎪⎪ ⎪ ⎪⎝⎭,可见{1,2.x y == 又因为第一种规格的佐料每袋净重7克, 第二种规格的佐料每袋净重6克, 所以第三种规格的佐料能由前两种规格的佐料按7:12的比例配制而成. 【模型分析】(1) 若令α1 = (2, 3, 1, 1)T , α2 = (1, 2, 1, 1)T , β = (4, 7, 5, 3)T , 则原问题等价于“线性方程组Ax = b 是否有解”, 也等价于“β能否由α1, α2线性表示”.(2) 若四种原料的比例是按体积计算的, 则还要考虑混合前后体积的关系(未必是简单的叠加), 因而最好还是先根据具体情况将体积比转换为重量比, 然后再按上述方法处理.(3) 上面的模型假设中的第三个假设只是起到简化运算的作用. 如果直接设x 克第一种规格的佐料与y 克第二种规格的佐料混合得第三种规格的佐料, 则有下表因而有如下线性方程组214(),7619327(),7619113(),7619125().7619x y x y x y x y x y x y x y x y ⎧+=+⎪⎪⎪+=+⎪⎨⎪+=+⎪⎪⎪+=+⎪⎩(*) 【模型检验】把x = 7, y = 12代入上述方程组(*), 则各等式都成立. 可见模型假设中的第三个假设不影响解的正确性.Matlab 实验题蛋白质、碳水化合物和脂肪是人体每日必须的三种营养, 但过量的脂肪摄入不利于健康.人们可以通过适量的运动来消耗多余的脂肪. 设三种食物(脱脂牛奶、大豆面粉、乳清)每100克中蛋白质、碳水化合物和脂肪的含量以及慢跑5分钟消耗蛋白质、碳水化合物和脂肪的量如下表.问怎样安排饮食和运动才能实现每日的营养需求?案例三. 投入产出问题在研究多个经济部门之间的投入产出关系时, W. Leontief 提出了投入产出模型. 这为经济学研究提供了强有力的手段. W. Leontief 因此获得了1973年的Nobel 经济学奖.【模型准备】某地有一座煤矿, 一个发电厂和一条铁路. 经成本核算, 每生产价值1元钱的煤需消耗0.3元的电; 为了把这1元钱的煤运出去需花费0.2元的运费; 每生产1元的电需0.6元的煤作燃料; 为了运行电厂的辅助设备需消耗本身0.1元的电, 还需要花费0.1元的运费; 作为铁路局, 每提供1元运费的运输需消耗0.5元的煤, 辅助设备要消耗0.1元的电. 现煤矿接到外地6万元煤的订货, 电厂有10万元电的外地需求, 问: 煤矿和电厂各生产多少才能满足需求? 【模型假设】假设不考虑价格变动等其他因素.【模型建立】设煤矿, 电厂, 铁路分别产出x 元, y 元, z 元刚好满足需求. 则有下表根据需求, 应该有(0.60.5)60000(0.30.10.1)100000(0.20.1)0x y z y x y z z x y -+=⎧⎪-++=⎨⎪-+=⎩, 即0.60.5600000.30.90.11000000.20.10x y z x y z x y z --=⎧⎪-+-=⎨⎪--+=⎩ 【模型求解】在Matlab 命令窗口输入以下命令>> A = [1,-0.6,-0.5;-0.3,0.9,-0.1;-0.2,-0.1,1]; b = [60000;100000;0]; >> x = A\bMatlab 执行后得 x =1.0e+005 *1.99661.84150.5835可见煤矿要生产1.9966⨯105元的煤, 电厂要生产1.8415⨯105元的电恰好满足需求.【模型分析】令x =xyz⎛⎫⎪⎪⎝⎭, A =00.60.50.30.10.10.20.10⎛⎫⎪⎪⎝⎭, b =60000100000⎛⎫⎪⎪⎝⎭, 其中x称为总产值列向量,A称为消耗系数矩阵, b称为最终产品向量, 则Ax =00.60.50.30.10.10.20.10⎛⎫⎪⎪⎝⎭xyz⎛⎫⎪⎪⎝⎭=0.60.50.30.10.10.20.1y zx y zx y+⎛⎫⎪++⎪+⎝⎭根据需求, 应该有x-Ax = b, 即(E-A)x = b. 故x = (E-A)-1b.Matlab实验题某乡镇有甲、乙、丙三个企业. 甲企业每生产1元的产品要消耗0.25元乙企业的产品和0.25元丙企业的产品. 乙企业每生产1元的产品要消耗0.65元甲企业的产品, 0.05元自产的产品和0.05元丙企业的产品. 丙企业每生产1元的产品要消耗0.5元甲企业的产品和0.1元乙企业的产品. 在一个生产周期内, 甲、乙、丙三个企业生产的产品价值分别为100万元, 120万元, 60万元, 同时各自的固定资产折旧分别为20万元, 5万元和5万元.(1) 求一个生产周期内这三个企业扣除消耗和折旧后的新创价值.(2) 如果这三个企业接到外来订单分别为50万元, 60万元, 40万元, 那么他们各生产多少才能满足需求?案例四. 平板的稳态温度分布问题在热传导的研究中, 一个重要的问题是确定一块平板的稳态温度分布. 根据…定律, 只要测定一块矩形平板四周的温度就可以确定平板上各点的温度.图8 一块平板的温度分布图【模型准备】如图9所示的平板代表一条金属梁的截面. 已知四周8个节点处的温度(单位°C), 求中间4个点处的温度T 1, T 2, T 3, T 4.图9 一块平板的温度分布图【模型假设】假设忽略垂直于该截面方向上的热传导, 并且每个节点的温度等于与它相邻的四个节点温度的平均值.【模型建立】根据已知条件和上述假设, 有如下线性方程组1232143144231(90100)41(8060)41(8060)41(5050)4T T T T T T T T T T T T ⎧=+++⎪⎪⎪=+++⎪⎨⎪=+++⎪⎪=+++⎪⎩ 【模型求解】将上述线性方程组整理得1231241342344190414041404100T T T T T T T T T T T T --=⎧⎪-+-=⎪⎨-+-=⎪--+=⎪⎩. 在Matlab 命令窗口输入以下命令T 1T 2 T 3 T 4 10080908060506050>> A = [4,-1,-1,0;-1,4,0,-1;-1,0,4,-1;0,-1,-1,4]; b = [190;140;140;100];>> x = A\b; x’Matlab执行后得ans =82.9167 70.8333 70.8333 60.4167可见T1 = 82.9167, T2 = 70.8333, T3 = 70.8333, T4 = 60.4167.参考文献陈怀琛, 高淑萍, 杨威, 工程线性代数,: 电子工业, 2007. 页码: 15-16.Matlab实验题假定下图中的平板代表一条金属梁的截面, 并忽略垂直于该截面方向上的热传导. 已知平板内部有30个节点, 每个节点的温度近似等于与它相邻的四个节点温度的平均值. 设4条边界上的温度分别等于每位同学学号的后四位的5倍, 例如学号为16308209的同学计算本题时, 选择T l = 40, T u = 10, T r = 0, T d = 45.图10 一块平板的温度分布图(1) 建立可以确定平板内节点温度的线性方程组.(2) 用Matlab软件求解该线性方程组.(3) 用Matlab中的函数mesh绘制三维平板温度分布图.案例五. CT图像的代数重建问题X射线透视可以得到3维对象在2维平面上的投影, CT则通过不同角度的X射线得到3维对象的多个2维投影, 并以此重建对象内部的3维图像. 代数重建方法就是从这些2维投影出发, 通过求解超定线性方程组, 获得对象内部3维图像的方法.图11双层螺旋CT 图12 CT图像这里我们考虑一个更简单的模型, 从2维图像的1维投影重建原先的2维图像. 一个长方形图像可以用一个横竖均匀划分的离散网格来覆盖, 每个网格对应一个像素, 它是该网格上各点像素的均值. 这样一个图像就可以用一个矩阵表示,其元素就是图像在一点的灰度值(黑白图像). 下面我们以3⨯3图像为例来说明.3⨯3图像各点的灰度值水平方向上的叠加值x1 = 1 x2 = 0 x3 = 0 x1 + x2 + x3 = 1x4 = 0 x5 = 0.5 x6 = 0.5 x4 + x5 + x6 = 1x7 = 0.5 x8 = 0 x9 = 1 x7 + x8 + x9 = 1.5 竖直方向上的叠加值x1 + x4 + x7= 1.5x2 + x5 + x8= 0.5x3 + x6 + x9= 1.5i色. 如果我们不知道网格中的数值, 只知道沿竖直方向和水平方向的叠加值, 为了确定网格中的灰度值, 可以建立线性方程组(含有6个方程, 9个未知数)123456369111x x xx x xx x x++=⎧⎪++=⎪⎨⎪++=⎪⎩显然该方程组的解是不唯一的, 为了重建图像, 必须增加叠加值. 如我们增加从右上方到左下方的叠加值, 则方程组将增加5个方程x1 = 1,x2 + x4 = 0,x3 + x5 + x7 = 1,x 6 + x 8 = 0.5, x 9 = 1,和上面的6个方程放在一起构成一个含有11个方程, 9个未知数的线性方程组. 【模型准备】设3⨯3图像中第一行3个点的灰度值依次为x 1, x 2, x 3, 第二行3个点的灰度值依次为x 4, x 5,x 6, 第三行3个点的灰度值依次为x 7, x 8, x 9. 沿竖直方向的叠加值依次为1.5, 0.5, 1.5, 沿水平方向的叠加值依次为1, 1, 1.5, 沿右上方到左下方的叠加值依次为1, 0, 1, 0.5, 1. 确定x 1, x 2, …, x 9的值.【模型建立】由已知条件可得(含有11个方程, 9个未知数的)线性方程组1234569111x x x x x x x ++=⎧⎪++=⎪⎨⎪=⎪⎩ 【模型求解】在Matlab 命令窗口输入以下命令>> A = [1,1,1,0,0,0,0,0,0;0,0,0,1,1,1,0,0,0;0,0,0,0,0,0,1,1,1;1,0,0,1,0,0,1,0,0;0,1,0,0,1,0,0,1,0;0,0,1,0,0,1,0,0,1; 1,0,0,0,0,0,0,0,0;0,1,0,1,0,0,0,0,0;0,0,1,0,1,0,1,0,0; 0,0,0,0,0,1,0,1,0;0,0,0,0,0,0,0,0,1];>> b = [1;1;1.5;1.5;0.5;1.5;1;0;1;0.5;1]; >> x = A\b; x ’Matlab 执行后得Warning: Rank deficient, rank = 8 tol =4.2305e-015. ans =1.0000 0.0000 0 -0.0000 0.5000 0.5000 0.5000 -0.0000 1.0000 可见上述方程组的解不唯一. 其中的一个特解为x 1 = 1, x 2 = 0, x 3 = 0, x 4 = 0, x 5 = 0.5, x 6 = 0.5, x 7 = 0.5, x 8 = 0, x 9 = 1.【模型分析】上述结果表明, 仅有三个方向上的叠加值还不够.可以再增加从左上方到右下方的叠加值. 在实际情况下, 由于测量误差, 上述线性方程组可能是超定的. 这时可以将超定方程组的近似解作为重建的图像数据.Matlab 实验题给定一个3⨯3图像的2个方向上的灰度叠加值: 沿左上方到右下方的灰度叠加值依次为0.8, 1.2, 1.7, 0.2, 0.3; 沿右上方到左下方的灰度叠加值依次为0.6, 0.2, 1.6, 1.2, 0.6.(1) 建立可以确定网格数据的线性方程组, 并用Matlab 求解. (2) 将网格数据乘以256, 再取整, 用Matlab 绘制该灰度图像.案例六. 平衡结构的梁受力计算在桥梁、房顶、铁塔等建筑结构中, 涉及到各种各样的梁. 对这些梁进行受力分析是设计师、工程师经常做的事情.图14 埃菲尔铁塔局部下面以双杆系统的受力分析为例, 说明如何研究梁上各铰接点处的受力情况. 【模型准备】在图15所示的双杆系统中, 已知杆1重G1 = 200牛顿, 长L1 = 2米, 与水平方向的夹角为θ1 = π/6, 杆2重G2 = 100牛顿, 长L2 = 2米, 与水平方向的夹角为θ2 = π/4. 三个铰接点A, B, C所在平面垂直于水平面. 求杆1, 杆2在铰接点处所受到的力.图15双杆系统【模型假设】假设两杆都是均匀的. 在铰接点处的受力情况如图16所示.【模型建立】对于杆1:水平方向受到的合力为零, 故N1 = N3,竖直方向受到的合力为零, 故N2 + N4 = G1,以点A为支点的合力矩为零, 故(L1sinθ1)N3 + (L1cosθ1)N4 = (12L1cosθ1)G1.图16 两杆受力情况对于杆2类似地有AC杆1杆2CN1N2N3N5N6G1G2A B杆1杆2π/6π/4N 5 = N 7, N 6 = N 8 + G 2, (L 2sin θ2)N 7 = (L 2cos θ2)N 8 + (12L 2cos θ2)G 2.此外还有N 3 = N 7, N 4 = N 8. 于是将上述8个等式联立起来得到关于N 1, N 2, …, N 8的线性方程组:132414800N N N N G N N -=⎧⎪+=⎪⎨⎪⎪-=⎩ 【模型求解】在Matlab 命令窗口输入以下命令>> G1=200; L1=2; theta1=pi/6; G2=100; L2=sqrt(2); theta2=pi/4; >> A = [1,0,-1,0,0,0,0,0;0,1,0,1,0,0,0,0;0,0,L1*sin(theta1),L1*cos(theta1),0,0,0,0;0,0,0,0,1,0,-1,0; 0,0,0,0,0,1,0,-1;0,0,0,0,0,0,L2*sin(theta2),-L2*cos(theta2); 0,0,1,0,0,0,-1,0;0,0,0,1,0,0,0,-1];>> b = [0;G1;0.5*L1*cos(theta1)*G1;0;G2;0.5*L2*cos(theta2)*G2;0;0]; >> x = A\b; x ’ Matlab 执行后得 ans =95.0962 154.9038 95.0962 45.0962 95.0962 145.0962 95.0962 45.0962【模型分析】最后的结果没有出现负值, 说明图16中假设的各个力的方向与事实一致. 如果结果中出现负值, 则说明该力的方向与假设的方向相反. 参考文献陈怀琛, 高淑萍, 杨威, 工程线性代数,: 电子工业, 2007. 页码: 157- 158.Matlab 实验题有一个平面结构如下所示, 有13条梁(图中标号的线段)和8个铰接点(图中标号的圈)联结在一起. 其中1号铰接点完全固定, 8号铰接点竖直方向固定, 并在2号, 5号和6号铰接点上, 分别有图示的10吨, 15吨和20吨的负载. 在静平衡的条件下,任何一个铰接点上水平和竖直方向受力都是平衡的. 已知每条斜梁的角度都是45º.(1) 列出由各铰接点处受力平衡方程构成的线性方程组. (2) 用Matlab 软件求解该线性方程组, 确定每条梁受力情况.图17 一个平面结构的梁案例七. 化学方程式配平问题在用化学方法处理污水过程中, 有时会涉及到复杂的化学反应. 这些反应的化学方程式是分析计算和工艺设计的重要依据. 在定性地检测出反应物和生成物之后,可以通过求解线性方程组配平化学方程式.【模型准备】某厂废水中含K, 其浓度为650mg/L. 现用氯氧化法处理, 发生如下反应:K + 2KOH + Cl 2 = KO+ 2KCl + H 2O.投入过量液氯, 可将氰酸盐进一步氧化为氮气. 请配平下列化学方程式:KO +KOH +Cl 2 ===CO 2+N 2+KCl +H 2O.(注: 题目摘自XX 省XX 外国语学校2008-2009学年高三第三次月考化学试卷) 【模型建立】设x 1KO +x 2KOH +x 3Cl 2 === x 4CO 2 +x 5N 2 +x 6KCl +x 7H 2O,则1261247141527362222x x x x x x xx x x x x x x x +=⎧⎪+=+⎪⎪=⎪⎨=⎪⎪=⎪=⎪⎩, 即1261247141527360200202020x x x x x x x x x x x x x x x +-=⎧⎪+--=⎪⎪-=⎪⎨-=⎪⎪-=⎪-=⎪⎩ 【模型求解】在Matlab 命令窗口输入以下命令>> A = [1,1,0,0,0,-1,0;1,1,0,-2,0,0,-1;1,0,0,-1,0,0,0;1,0,0,0,-2,0,0;0,1,0,0,0,0,-2;0,0,2,0,0,-1,0];>> x = null(A,’r ’); format rat, x ’Matlab 执行后得 ans =1 2 3/2 1 1/2 3 1 可见上述齐次线性方程组的通解为x = k (1, 2, 3/2, 1, 1/2, 3, 1)T .取k = 2得x = (2, 4, 3, 2, 1, 6, 2)T . 可见配平后的化学方程式如下2KO + 4KOH + 3Cl 2 ===2CO 2+ N 2+ 6KCl + 2H 2O.【模型分析】利用线性方程组配平化学方程式是一种待定系数法. 关键是根据化学方程式两边所涉及到的各种元素的量相等的原则列出方程. 所得到的齐次线性方程组Ax = θ中所含方程的个数等于化学方程式中元素的种数s , 未知数的个数就是化学方程式中的项数n .当r(A ) = n -1时, Ax = θ的基础解系中含有1个(线性无关的)解向量. 这时在通解中取常数k 为各分量分母的最小公倍数即可. 例如本例中1, 2, 3/2, 1, 1/2, 3, 1分母的最小公倍数为2, 故取k = 2.当r(A ) ≤n -2时, Ax = θ的基础解系中含有2个以上的线性无关的解向量. 这时可以根据化学方程式中元素的化合价的上升与下降的情况, 在原线性方程组中添加新的方程. Matlab 实验题配平下列反应式(1) FeS + KMnO 4 + H 2SO 4—— K 2SO 4 + MnSO 4 + Fe 2(SO 4)3 + H 2O + S ↓ (2) Al 2(SO 4)3 + Na 2CO 3 + H 2O —— Al(OH)3↓+ CO 2↑+ Na 2SO 4案例八. 互付工资问题互付工资问题是多方合作相互提供劳动过程中产生的. 比如农忙季节, 多户农民组成互助组, 共同完成各户的耕、种、收等农活. 又如木工, 电工, 油漆工等组成互助组, 共同完成各家的装潢工作. 由于不同工种的劳动量有所不同, 为了均衡各方的利益, 就要计算互付工资的标准.【模型准备】现有一个木工, 电工, 油漆工. 相互装修他们的房子, 他们有如下协议:(1) 每人工作10天(包括在自己家的日子), (2) 每人的日工资一般的市价在60~80元之间, (3) 日工资数应使每人的总收入和总支出相等.求每人的日工资. 【模型假设】假设每人每天工作时间长度相同. 无论谁在谁家干活都按正常情况工作, 既不偷懒, 也不加班.【模型建立】设木工, 电工, 油漆工的日工资分别为x , y , z 元, 则由下表可得2610451044310x y z xx y z y x y z z++=⎧⎪++=⎨⎪++=⎩, 即8604504470x y z x y z x y z -++=⎧⎪-+=⎨⎪+-=⎩【模型求解】在Matlab 命令窗口输入以下命令>> A = [-8,1,6;4,-5,1;4,4,-7];>> x = null(A,’r ’); format rat, x ’ Matlab 执行后得ans =31/36 8/9 1可见上述齐次线性方程组的通解为x = k (31/36, 8/9, 1)T . 因而根据“每人的日工资一般的市价在60~80元之间”可知60 ≤3631k <98k < k ≤ 80, 即 312160≤k ≤ 80.也就是说, 木工, 电工, 油漆工的日工资分别为3631k 元, 98k 元, k 元, 其中312160≤k ≤ 80. 为了简便起见, 可取k = 72, 于是木工, 电工, 油漆工的日工资分别为62元, 64元, 72元.【模型分析】事实上各人都不必付自己工资, 这时各家应付工资和各人应得收入如下6845447y z x x z y x y z +=⎧⎪+=⎨⎪+=⎩, 即8604504470x y z x y z x y z -++=⎧⎪-+=⎨⎪+-=⎩ 可见这样得到的方程组与前面得到的方程组是一样的.Matlab 实验题甲, 乙, 丙三个农民组成互助组, 每人工作6天(包括为自己家干活的天数), 刚好完成他们三人家的农活, 其中甲在甲, 乙, 丙三家干活的天数依次为: 2, 2.5, 1.5; 乙在甲, 乙, 丙三家各干2天活, 丙在甲, 乙, 丙三家干活的天数依次为: 1.5, 2, 2.5. 根据三人干活的种类, 速度和时间, 他们确定三人不必相互支付工资刚好公平. 随后三人又合作到邻村帮忙干了2天(各人干活的种类和强度不变), 共获得工资500元.问他们应该怎样分配这500元工资才合理?案例九. 平衡价格问题为了协调多个相互依存的行业的平衡发展, 有关部门需要根据每个行业的产出在各个行业中的分配情况确定每个行业产品的指导价格, 使得每个行业的投入与产出都大致相等.【模型准备】假设一个经济系统由煤炭、电力、钢铁行业组成, 每个行业的产出在各个行业中的分配如下表所示:等的平衡价格.【模型假设】假设不考虑这个系统与外界的联系.【模型建立】把煤炭、电力、钢铁行业每年总产出的价格分别用x 1,x 2, x 3表示, 则123212331230.40.60.60.10.20.40.50.2x x x x x x x x x x x =+⎧⎪=++⎨⎪=++⎩, 即1231231230.40.600.60.90.200.40.50.80x x x x x x x x x --=⎧⎪-+-=⎨⎪--+=⎩. 【模型求解】在Matlab 命令窗口输入以下命令>> A = [1,-0.4,-0.6;-0.6,0.9,-0.2;-0.4,-0.5,0.8]; >> x = null(A,’r ’); format short, x ’ Matlab 执行后得ans =0.9394 0.8485 1.0000 可见上述齐次线性方程组的通解为x = k(0.9394, 0.8485, 1)T.这就是说, 如果煤炭、电力、钢铁行业每年总产出的价格分别0.9394亿元, 0.8485亿元, 1亿元, 那么每个行业的投入与产出都相等.【模型分析】实际上, 一个比较完整的经济系统不可能只涉及三个行业, 因此需要统计更多的行业间的分配数据.Matlab实验题假设一个经济系统由煤炭、石油、电力、钢铁、机械制造、运输行业组成, 每个行业的产出在各个行业中的分配如下表所示:产出分配购买者煤炭石油电力钢铁制造运输0 0 0.2 0.1 0.2 0.2 煤炭0 0 0.1 0.1 0.2 0.1 石油0.5 0.1 0.1 0.2 0.1 0.1 电力0.4 0.1 0.2 0 0.1 0.4 钢铁0 0.1 0.3 0.6 0 0.2 制造0.1 0.7 0.1 0 0.4 0 运输等的平衡价格.案例十. 电路设计问题电路是电子元件的神经系统. 参数的计算是电路设计的重要环节. 其依据来自两个方面: 一是客观需要, 二是物理学定律.图22 USB扩展板【模型准备】假设图23中的方框代表某类具有输入和输出终端的电路. 用11vi⎛⎫⎪⎝⎭记录输入电压和输入电流(电压v以伏特为单位, 电流i以安培为单位), 用22vi⎛⎫⎪⎝⎭记录输出电压和输入电流. 若22vi⎛⎫⎪⎝⎭= A11vi⎛⎫⎪⎝⎭,则称矩阵A为转移矩阵.图23 具有输入和输出终端的电子电路图图24给出了一个梯形网络, 左边的电路称为串联电路, 电阻为R 1(单位: 欧姆). 右边的电路是并联电路, 电路R 2. 利用欧姆定理和楚列斯基定律, 我们可以得到串联电路和并联电路的转移矩阵分别是1101R -⎛⎫ ⎪⎝⎭和2101/1R ⎛⎫ ⎪-⎝⎭串联电路 并联电路图24 梯形网络设计一个梯形网络, 其转移矩阵是180.55-⎛⎫⎪-⎝⎭. 【模型假设】假设导线的电阻为零.【模型建立】设A 1和A 2分别是串联电路和并联电路的转移矩阵, 则输入向量x 先变换成A 1x , 再变换到A 2(A 1x ). 其中A 2A 1 =2101/1R ⎛⎫ ⎪-⎝⎭1101R -⎛⎫ ⎪⎝⎭=121211/1/R R R R -⎛⎫ ⎪-+⎝⎭就是图22中梯形网络的转移矩阵.于是, 原问题转化为求R 1, R 2的值使得121211/1/R R R R -⎛⎫ ⎪-+⎝⎭=180.55-⎛⎫ ⎪-⎝⎭. 【模型求解】由121211/1/R R R R -⎛⎫ ⎪-+⎝⎭=180.55-⎛⎫ ⎪-⎝⎭可得121281/0.51/5R R R R -=-⎧⎪-=-⎨⎪+=⎩. 根据其中的前两个方程可得R 1 = 8, R 2 = 2. 把R 1 = 8, R 2 = 2代入上面的第三个方程确实能使等式成立. 这就是说在图22中梯形网络中取R 1 = 8, R 2 = 2即为所求.【模型分析】若要求的转移矩阵改为180.54-⎛⎫⎪-⎝⎭, 则上面的梯形网络无法实现. 因为v 2这时对应的方程组是121281/0.51/4R R R R -=-⎧⎪-=-⎨⎪+=⎩. 根据前两个方程依然得到R 1 = 8, R 2 = 2, 但把R 1= 8, R 2 = 2代入上第三个方程却不能使等式成立.练习题根据基尔霍夫回路电路定律(各节点处流入和流出的电流强度的代数和为零, 各回路中各支路的电压降之和为零), 列出下图所示电路中电流i 1, i 2, i 3所满足的线性方程组, 并用矩阵形式表示:图25简单的回路案例十一. 平面图形的几何变换随着计算机科学技术的发展, 计算机图形学的应用领域越来越广, 如仿真设计、效果图制作、动画片制作、电子游戏开发等.图形的几何变换, 包括图形的平移、旋转、放缩等, 是计算机图形学中经常遇到的问题. 这里暂时只讨论平面图形的几何变换.【模型准备】平面图形的旋转和放缩都很容易用矩阵乘法实现, 但是图形的平移并不是线性运算, 不能直接用矩阵乘法表示. 现在要求用一种方法使平移、旋转、放缩能统一用矩阵乘法来实现. 【模型假设】设平移变换为(x , y ) → (x +a , y +b )旋转变换(绕原点逆时针旋转θ角度)为(x , y ) → (x cos θ-y sin θ, x sin θ + y cos θ)放缩变换(沿x 轴方向放大s 倍, 沿y 轴方向放大t 倍)为(x , y ) → (sx , ty )【模型求解】R 2中的每个点(x , y )可以对应于R 3中的(x , y , 1). 它在xOy 平面上方1单E 12位的平面上. 我们称(x , y , 1)是(x , y )的齐次坐标. 在齐次坐标下, 平移变换(x , y ) → (x +a , y +b )可以用齐次坐标写成(x , y , 1) → (x +a , y +b , 1).于是可以用矩阵乘积1001001a b ⎛⎫ ⎪ ⎪⎝⎭1x y ⎛⎫ ⎪ ⎪⎝⎭=1x a y b +⎛⎫⎪+ ⎪⎝⎭实现.旋转变换(x , y ) → (x cos θ-y sin θ, x sin θ + y cos θ)可以用齐次坐标写成(x , y , 1) → (x cos θ-y sin θ, x sin θ + y cos θ, 1). 于是可以用矩阵乘积cos sin 0sin cos 0001θθθθ-⎛⎫ ⎪ ⎪⎝⎭1x y ⎛⎫ ⎪ ⎪⎝⎭=cos sin sin cos 1x y x y θθθθ-⎛⎫⎪+ ⎪⎝⎭实现.放缩变换(x , y ) → (sx , ty )可以用齐次坐标写成(x , y , 1) → (sx , ty , 1).于是可以用矩阵乘积0000001s t ⎛⎫ ⎪ ⎪⎝⎭1x y ⎛⎫ ⎪ ⎪⎝⎭=1sx ty ⎛⎫⎪ ⎪⎝⎭实现.【模型分析】由上述求解可以看出, R 2中的任何线性变换都可以用分块矩阵1⎛⎫⎪⎝⎭A O O 乘以齐次坐标实现, 其中A 是2阶方阵. 这样, 只要把平面图形上点的齐次坐标写成列向量, 平面图形的每一次几何变换, 都可通过左乘一个3阶变换矩阵来实现.参考文献David C. Lay, 线性代数及其应用, 沈复兴, 傅莺莺等译,: 人民邮电, 2009. 页码: 139-141.Matlab 实验题在Matlab 命令窗口输入以下命令 >>clear all , clc,>>t=[1,3,5,11,13,15]*pi/8; >>x=sin(t); y=cos(t); >>fill(x,y,'r'); >>grid on ;>>axis([-2.4, 2.4, -2, 2])运行后得图25.图26Matlab绘制的图形(1) 写出该图形每个顶点的齐次坐标;; 最后进行横(2) 编写Matlab程序, 先将上面图形放大0.9倍; 再逆时针旋转3坐标加0.8, 纵坐标减1的图形平移. 分别绘制上述变换后的图形.案例十二. 太空探测器轨道数据问题太空航天探测器发射以后, 可能需要调整以使探测器处在精确计算的轨道里. 雷达监测到一组列向量x1, …, x k,它们给出了不同时刻探测器的实际位置与预定轨道之间的偏差的信息.图28 火星探测器【模型准备】令X k = [x1, …, x k]. 在雷达进行数据分析时需要计算出矩阵G k = X k X k T. 一旦接收到数据向量x k+1,必须计算出新矩阵G k+1. 因为数据向量到达的速度非常快, 随着k的增加, 直接计算的负担会越来越重. 现需要给出一个算法, 使得计算G k的负担不会因为k的增加而加重.【模型求解】因为G k = X k X k T=[x 1, …, x k ]T 1T k⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦x x =T 1k i i i =∑x x ,G k +1 = X k +1T1k +X =[X k , x k +1]T T 1k k +⎡⎤⎢⎥⎣⎦X x = X k X k T +x k +1T 1k +x =G k +x k +1T 1k +x ,所以一旦接收到数据向量x k +1, 只要计算x k +1T1k +x , 然后把它与上一步计算得到的G k相加即可. 这样计算G k 的负担不会因为k 的增加而加重.【模型分析】计算机计算加法的时间与计算乘法的时间相比可以忽略不计. 因此在考虑计算矩阵乘积的负担时, 只要考察乘法的次数就可以了. 设x k 的维数是n , 则X k = [x 1, …, x k ]是n ⨯k 的矩阵, G k = X k X k T 是n ⨯n 的矩阵. 直接计算G k = X k X k T 需要做n 2k 次乘法. 因而计算的负担会随着k 的增加而增加. 但是对于每一个k , 计算x k Tk x 始终只要做n 2次乘法.Matlab 实验题用Matlab 编写一个程序用于处理这个问题.案例十三. 应用矩阵编制Hill 密码密码学在经济和军事方面起着极其重要的作用. 现代密码学涉及很多高深的数学知识. 这里无法展开介绍.图29 XX 通信的基本模型密码学中将信息代码称为密码, 尚未转换成密码的文字信息称为明文, 由密码表示的信息称为密文. 从明文到密文的过程称为加密, 反之为解密. 1929年, 希尔(Hill)通过线性变换对待传输信息进行加密处理, 提出了在密码史上有重要地位的希尔加密算法. 下面我们略去一些实际应用中的细节, 只介绍最基本的思想.【模型准备】若要发出信息action, 现需要利用矩阵乘法给出加密方法和加密后得到的密文, 并给出相应的解密方法.。
线性方程组的数值解法及其应用一、问题描述现实中的问题大多数是连续的,例如工程中求解结构受力后的变形,空气动力学中计算机翼周围的流场,气象预报中计算大气的流动。
这些现象大多是用若干个微分方程描述。
用数值方法求解微分方程(组),不论是差分方法还是有限元方法,通常都是通过对微分方程(连续的问题,未知数的维数是无限的)进行离散,得到线性方程组(离散问题,因为未知数的维数是有限的)。
因此线性方程组的求解在科学与工程中的应用非常广泛。
经典的求解线性方程组的方法一般分为两类:直接法和迭代法。
二、基本要求1)掌握用MATLAB软件求线性方程初值问题数值解的方法;2)通过实例学习用线性方程组模型解决简化的实际问题;3)了解用高斯赛德尔列主元消去法和雅可比迭代法解线性方程组。
三、测试数据1) 直接法:A=[0.002 52.88;4.573 -7.290];b=[52.90;38.44];2) 迭代法:A=[10 -1 -2;-1 10 -2;-1 -1 5];b=[7.2;8.3;4.2];四、算法程序及结果1)function[RA,RB,n,x]=liezy1(A,b)B=[A b];n=length(b);RA=rank(A);RB=rank(B);zhica=RB-RA;if zhica>0,disp('因为RA~=RB,所以此方程组无解.')returnif RA==RBif RA==ndisp('因为RA=RB=n,所以此方程组有唯一解.')x=zeros(n,1);C=zeros(1,n+1);for p=1:n-1[Y,j]=max(abs(B(p:n,p)));C=B(p,:);B(p,:)=B(j+p-1,:);B(j+p-1,:)=C;for k=p+1:nm=B(k,p)/B(p,p);B(k,p:n+1)=B(k,p:n+1)-m*B(p,p:n+1);endendb=B(1:n,n+1);A=B(1:n,1:n);x(n)=b(n)/A(n,n);for q=n-1:-1:1x(q)=(b(q)-sum(A(q,q+1:n)*x(q+1:n)))/A(q,q);endelsedisp('因为RA=RB<n,所以此方程组有无穷多解.')endend测试:A=[0.002 52.88;4.573 -7.290];>> b=[52.90;38.44];>> [RA,RB,n,x]=liezy1(A,b)因为RA=RB=n,所以此方程组有唯一解.RA =2RB =2n =2x =10.00001.00002)function Jacobi(A,b,x0,P,error,max1)[n n]=size(A);x=zeros(n,1);for k=1:max1for j=1;nx(j)=(b(j)-A(j,[1:j-1,j+1:n])*x0([1:j-1,j+1:n]))/A(j,j);endxerrx=norm(x-x0,P);x0=x;x1=A\b;if(errx<error)disp('迭代次数k,精确解x1和近似解x分别是:')kx1xreturnendendif(errx>=error)disp('请注意:Jacobi迭代次数已经超过最大迭代次数max1.') end测试:A=[10 -1 -2;-1 10 -2;-1 -1 5];>>b=[7.2;8.3;4.2];>>x0=[0;0;0];>>Jacobi(A,b,x0,inf,0.001,100)n =3x =0.7200迭代次数k,精确解x1和近似解x分别是:k =2x1 =1.10001.20001.3000x =0.7200五、应用举例1)营养学家配制一种具有1200卡,30g蛋白质及300mg维生素C的配餐。