数学建模及典型案例分析共28页
- 格式:ppt
- 大小:2.79 MB
- 文档页数:28
数学建模案例分析数学建模是将现实问题转化为数学模型,并利用数学方法对模型进行求解的过程。
它是数学与实际问题结合的重要手段,能够帮助人们深入理解问题的本质,提供科学的决策依据。
以下是一个数学建模案例分析。
市有4个城区,现准备改造城市供水系统,以满足未来的供水需求。
根据过往的数据分析,每个城区的用水量与其人口数量、平均收入以及大型工厂的数量有关。
现在的问题是如何设计供水系统,使得满足各城区的用水需求,并且降低总成本。
为了解决这个问题,我们需要进行数学建模。
首先,我们需要确定影响用水量的因素。
1.人口数量:根据过往数据,我们可以得到人口数量与用水量之间的关系。
假设每增加1个人口,用水量增加A升,其中A为一个常数。
2.平均收入:平均收入的提高可能会促使人们增加用水量。
假设平均收入每提高1个单位,用水量增加B升,其中B为一个常数。
3.大型工厂数量:大型工厂对水的需求较大,可能对城区的用水量产生较大的影响。
假设每增加1个大型工厂,用水量增加C升,其中C为一个常数。
通过对过往数据的分析和回归分析,我们可以得到A、B和C的具体数值。
然后,我们可以建立供水系统的数学模型:设城区1、城区2、城区3和城区4的人口分别为x1、x2、x3和x4,平均收入分别为y1、y2、y3和y4,大型工厂数量分别为z1、z2、z3和z4设城区1、城区2、城区3和城区4的用水量分别为w1、w2、w3和w4根据前述的假设,我们可以得到数学模型:w1=A*x1+B*y1+C*z1w2=A*x2+B*y2+C*z2w3=A*x3+B*y3+C*z3w4=A*x4+B*y4+C*z4此外,由于我们希望降低总成本,我们还需要引入成本模型。
假设供水系统的建设成本与每个城区的用水量成正比,并且平均每增加1升用水量,建设成本增加D元,其中D为一个常数。
设城区1、城区2、城区3和城区4的建设成本分别为cost1、cost2、cost3和cost4根据成本因素,我们可以得到成本模型:cost1 = D * w1cost2 = D * w2cost3 = D * w3cost4 = D * w4接下来,我们需要优化这个数学模型。
数学建模经典案例分析以葡萄酒质量评价为例一、本文概述本文旨在通过深入剖析数学建模在葡萄酒质量评价中的应用,展示数学建模的经典案例。
我们将首先简要介绍数学建模的基本概念及其在各个领域的应用,然后聚焦葡萄酒质量评价这一具体问题,阐述如何通过数学建模对其进行科学、客观的分析。
文章将详细分析数据的收集与处理、模型的建立与求解、模型的验证与优化等关键环节,并探讨不同数学模型在葡萄酒质量评价中的优缺点。
我们将总结数学建模在葡萄酒质量评价中的实际应用效果,展望其在未来葡萄酒产业中的发展前景。
通过阅读本文,读者将能够了解数学建模在葡萄酒质量评价中的重要作用,掌握相关数学建模方法和技术,为类似问题的解决提供有益的参考和借鉴。
本文也将促进数学建模在葡萄酒产业中的应用与发展,推动葡萄酒产业的科技进步和产业升级。
二、数学建模基础数学建模是一种将实际问题抽象化、量化的过程,通过数学工具和方法来求解问题的近似解。
在葡萄酒质量评价这一案例中,数学建模提供了从复杂的实际生产环境中提取关键信息,并建立预测模型的可能。
这需要我们具备一定的数学基础,如统计学、线性代数、微积分等,同时也需要理解并掌握数据处理的基本技术,如数据清洗、特征提取和选择等。
在葡萄酒质量评价问题中,我们首先需要收集大量的葡萄酒样本数据,这些数据可能包括葡萄品种、产地、气候、土壤、酿造工艺、化学成分等多个方面的信息。
然后,我们需要对这些数据进行预处理,如去除缺失值、异常值,进行数据标准化等,以提高模型的稳定性和准确性。
接下来,我们可以选择适合的模型进行训练。
在这个案例中,我们可以选择线性回归、决策树、随机森林、神经网络等模型进行尝试。
我们需要根据数据的特性和问题的需求,选择最合适的模型。
同时,我们还需要进行模型的训练和验证,通过调整模型的参数,提高模型的预测能力。
我们需要对模型进行评估和优化。
这可以通过交叉验证、ROC曲线、AUC值等评估指标来进行。
如果模型的预测能力不足,我们需要对模型进行优化,如改进模型的结构、增加更多的特征等。
案例分析1:自行车外胎的使用寿命问题:目前,自行车在我国是一种可缺少的交通工具。
它小巧、灵活、方便、易学,而且价格适中,给广大居民带来了不小的益处。
但是,自行车也有令人头痛的地方,最常见的问题莫过于扎胎了。
扎胎的原因有很多,但相当一部分是由于外胎磨损,致使一些玻璃碴、小石子很容易侵入、扎破内胎。
为了减少不必要的麻烦,如何估计自行车外胎的寿命,及时更换?分析:分析角度:由于题目里未明确指出我们是应从厂家角度,还是应从用户角度来考虑这个问题,因此需要我们自己做出合理判断.若从厂家角度,我们面对的应当是一大批自行车外胎的平均寿命的估计。
这样的估计要求一定精确度和相对明确的使用环境;而从用户角度来说,面对的仅是个人的一辆车,不需要很高的精确度,这样的寿命估计更简单,易于随时了解,下面仅从用户角度进行分析。
产品的使用者需要了解产品的寿命,是基于安全性及更换的费用来考虑的。
我们将这两个标准作为主要标准来分析,首先值得注意的两个关键性问题是如何定义寿命、何时为寿命的终止。
寿命的定义要做到科学,直观,有可比性,在航空工业中航天飞机的使用寿命是用重复使用的次数来衡量,而工厂机器设备的寿命则以连续工作的时间来定义。
本题外胎的寿命亦可用时间来表征,但由于外胎的寿命直接与其磨损速度相关;而磨损速度又与使用频率及行驶速度相互联系,致使外胎的寿命不一定与使用时间成正比(这种非正比关系使我们不能拿一辆—天跑200公里的自行车与一天只跑1公里的自行车进行寿命比较),降低了可比性。
如换成自行车的路程寿命来比较,就好得多。
产品寿命是在安全性和更换费用相互制约下达到的一个点,在这个点上,外胎的安全系数降到用户不可接受的最低值,更换费用(寿命越长,在一定意义上更换费用越低)也达到了最大限度的节省。
弄清了上面两个问题后,我们继续明确建立模型需要解决哪些问题及建立模型的重点难点。
自行车使用过程中,一来影响因素多,二来这些因素之间彼此相关,十分复杂,要做到比较准确地估计使用寿命,不但要对外胎的性能有相当的了解,而且对使用环境更不能忽视。
线性代数建模案例汇编法正系,思想政治教育13-1汗克孜·亚森2015年6月目录案例一. 交通网络流量分析问题 (1)案例二. 配方问题 (4)案例三. 投入产出问题 (6)案例四. 平板的稳态温度分布问题 (8)案例五. CT图像的代数重建问题 (10)案例六. 平衡结构的梁受力计算 (12)案例七. 化学方程式配平问题 (14)案例八. 互付工资问题 (16)案例九. 平衡价格问题 (18)案例十. 电路设计问题 (20)案例十一. 平面图形的几何变换 (22)案例十二. 太空探测器轨道数据问题 (24)案例十三. 应用矩阵编制Hill密码 (25)案例十四. 显示器色彩制式转换问题 (27)案例十五. 人员流动问题 (29)案例十六. 金融公司支付基金的流动 (31)案例十七. 选举问题 (33)案例十八. 简单的种群增长问题 (34)案例十九. 一阶常系数线性齐次微分方程组的求解 (36)案例二十. 最值问题 (38)附录数学实验报告模板 (39)这里收集了二十个容易理解的案例. 和各类数学建模竞赛的题目相比, 这些案例确实显得过于简单. 但如果学生能通过这些案例加深对线性代数基本概念、理论和方法的理解, 培养数学建模的意识, 那么我们初步的目的也就达到了.案例一. 交通网络流量分析问题城市道路网中每条道路、每个交叉路口的车流量调查,是分析、评价及改善城市交通状况的基础。
根据实际车流量信息可以设计流量控制方案,必要时设置单行线,以免大量车辆长时间拥堵。
图1 某地交通实况图2 某城市单行线示意图【模型准备】某城市单行线如下图所示, 其中的数字表示该路段每小时按箭头方向行驶的车流量(单位: 辆).图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 =-⎧⎪=-+⎨⎪=-⎩.为了唯一确定未知流量, 只要增添x4统计的值即可.当x4 = 350时, 确定x1 = 250, x2 = 250, x3 = 50.若x4 = 200, 则x1 = 100, x2 = 400, x3 = 100 < 0. 这表明单行线“③④”应该改为“③④”才合理.【模型分析】(1) 由(A, b)的行最简形可见, 上述方程组中的最后一个方程是多余的. 这意味着最后一个方程中的数据“300”可以不用统计.(2) 由142434100600300x xx xx x=-⎧⎪=-+⎨⎪=-⎩可得213141500200100x xx xx x=-+⎧⎪=-⎨⎪=+⎩,123242500300600x xx xx x=-+⎧⎪=-+⎨⎪=-+⎩,132343200300300x xx xx x=+⎧⎪=-+⎨⎪=+⎩, 这就是说x1, x2, x3, x4这四个未知量中, 任意一个未知量的值统计出来之后都可以确定出其他三个未知量的值.参考文献陈怀琛, 高淑萍, 杨威, 工程线性代数, 北京: 电子工业出版社, 2007. 页码: 16-17.Matlab实验题某城市有下图所示的交通图, 每条道路都是单行线, 需要调查每条道路每小时的车流量. 图中的数字表示该条路段的车流数. 如果每个交叉路口进入和离开图4 某城市单行线车流量(1)建立确定每条道路流量的线性方程组.(2)分析哪些流量数据是多余的.(3)为了唯一确定未知流量, 需要增添哪几条道路的流量统计.案例二. 配方问题在化工、医药、日常膳食等方面都经常涉及到配方问题. 在不考虑各种成分之间可能发生某些化学反应时, 配方问题可以用向量和线性方程组来建模.图5 日常膳食搭配图6 几种常见的作料【模型准备】一种佐料由四种原料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 yx yx yx 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经济学奖.图7 三个经济部门这里暂时只讨论一个简单的情形.【模型准备】某地有一座煤矿, 一个发电厂和一条铁路. 经成本核算, 每生产价值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 zy x y zz x y-+=⎧⎪-++=⎨⎪-+=⎩,即0.60.5600000.30.90.11000000.20.10x y zx y zx 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 命令窗口输入以下命令>> 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可见T 1 = 82.9167, T 2 = 70.8333, T 3 = 70.8333, T 4 = 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维图像.一个长方形图像可以用一个横竖均匀划分的离散网格来覆盖, 每个网格对应一个像素, 它是该网格上各点像素的均值. 这样一个图像就可以用一个矩阵表示,其元素就是图像在一点的灰度值(黑白图像). 下面我们以33图像为例来说明.表4 消耗与产出情况33图像水平方向上 的叠加值x 1 + x 2 + x 3 = 1x 4 + x 5 + x 6 = 1x 7 + x 8 + x 9 = 1.5的叠加值x 1 + x 4 + x 7 = 1.5 x 2 + x 5 + x 8 = 0.5 x 3 + x 6 + x 9 = 1.5 每个网格中的数字x i 代表其灰度值, 范围在[0, 1]内. 0表示白色, 1表示黑色, 0.5表示灰色. 如果我们不知道网格中的数值, 只知道沿竖直方向和水平方向的叠加值, 为了确定网格中的灰度值, 可以建立线性方程组(含有6个方程, 9个未知数)123456369111x x x x x x x x x ++=⎧⎪++=⎪⎨⎪++=⎪⎩ 显然该方程组的解是不唯一的, 为了重建图像, 必须增加叠加值. 如我们增加从右上方到左下方的叠加值, 则方程组将增加5个方程x 1 = 1,x 2 + x 4 = 0,x 3 + x 5 + x 7 = 1,x 6 + x 8 = 0.5,x 9 = 1,和上面的6个方程放在一起构成一个含有11个方程, 9个未知数的线性方程组.【模型准备】设33图像中第一行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 实验题给定一个33图像的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 绘制该灰度图像.案例六. 平衡结构的梁受力计算在桥梁、房顶、铁塔等建筑结构中, 涉及到各种各样的梁. 对这些梁进行受力分析是设计师、工程师经常做的事情.图13埃菲尔铁塔全景图14 埃菲尔铁塔局部下面以双杆系统的受力分析为例, 说明如何研究梁上各铰接点处的受力情况.【模型准备】在图15所示的双杆系统中, 已知杆1重G1 = 200牛顿, 长L1 = 2米, 与水平方向的夹角为1 = /6, 杆2重G2 = 100牛顿, 长L2= 米, 与水平方向的夹角为2 = /4. 三个铰接点A, B, C所在平面垂直于水平面. 求杆1, 杆2在铰接点处所受到的力.图15双杆系统【模型假设】假设两杆都是均匀的. 在铰接点处的受力情况如图16所示.【模型建立】对于杆1:水平方向受到的合力为零, 故N1 = N3,竖直方向受到的合力为零, 故N2 + N4 = G1,以点A为支点的合力矩为零, 故(L1sin1)N3 + (L1cos1)N4 = (12L1cos1)G1.图16 两杆受力情况对于杆2类似地有N5 = N7, N6 = N8 + G2, (L2sin2)N7 = (L2cos2)N8 + (12L2cos2)G2.N5N6/6/4此外还有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 一个平面结构的梁案例七. 化学方程式配平问题在用化学方法处理污水过程中, 有时会涉及到复杂的化学反应. 这些反应的化学方程式是分析计算和工艺设计的重要依据. 在定性地检测出反应物和生成物之后,可以通过求解线性方程组配平化学方程式.图18 污水处理 【模型准备】某厂废水中含KCN, 其浓度为650mg/L. 现用氯氧化法处理, 发生如下反应:KCN + 2KOH + Cl 2 = KOCN + 2KCl + H 2O.投入过量液氯, 可将氰酸盐进一步氧化为氮气. 请配平下列化学方程式:KOCN + KOH + Cl 2 === CO 2 + N 2 + KCl + H 2O.(注: 题目摘自福建省厦门外国语学校2008-2009学年高三第三次月考化学试卷)【模型建立】设x 1KOCN + x 2KOH + x 3Cl 2 === x 4CO 2 + x 5N 2 + x 6KCl + x 7H 2O,则1261247141527362222x x x x x x x x 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 . 可见配平后的化学方程式如下2KOCN + 4KOH + 3Cl 2 === 2CO 2 + N 2 + 6KCl + 2H 2O.【模型分析】利用线性方程组配平化学方程式是一种待定系数法. 关键是根据化学方程式两边所涉及到的各种元素的量相等的原则列出方程. 所得到的齐次线性方程组Ax = 中所含方程的个数等于化学方程式中元素的种数s, 未知数的个数就是化学方程式中的项数n.当r(A) = n1时, Ax = 的基础解系中含有1个(线性无关的)解向量. 这时在通解中取常数k为各分量分母的最小公倍数即可. 例如本例中1, 2, 3/2, 1, 1/2, 3, 1分母的最小公倍数为2, 故取k = 2.当r(A) n2时, Ax = 的基础解系中含有2个以上的线性无关的解向量. 这时可以根据化学方程式中元素的化合价的上升与下降的情况, 在原线性方程组中添加新的方程.参考文献陈怀琛, 高淑萍, 杨威, 工程线性代数, 北京: 电子工业出版社, 2007. 页码: 84-85.Matlab实验题配平下列反应式(1) FeS + KMnO4 + H2SO4——K2SO4 + MnSO4 + Fe2(SO4)3 + H2O + S↓(2) Al2(SO4)3 + Na2CO3 + H2O ——Al(OH)3↓+ CO2↑+ Na2SO4案例八. 互付工资问题互付工资问题是多方合作相互提供劳动过程中产生的. 比如农忙季节, 多户农民组成互助组, 共同完成各户的耕、种、收等农活. 又如木工, 电工, 油漆工等组成互助组, 共同完成各家的装潢工作. 由于不同工种的劳动量有所不同, 为了均衡各方的利益, 就要计算互付工资的标准.图19 农忙互助 图20 装修互助【模型准备】现有一个木工, 电工, 油漆工. 相互装修他们的房子, 他们有如下协议:(1) 每人工作10天(包括在自己家的日子),(2) 每人的日工资一般的市价在60~80元之间,(3) 日工资数应使每人的总收入和总支出相等.求每人的日工资. 【模型假设】假设每人每天工作时间长度相同. 无论谁在谁家干活都按正常情况工作, 既不偷懒, 也不加班.【模型建立】设木工, 电工, 油漆工的日工资分别为x , y , z 元, 则由下表可得2610451044310x y z x x 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元工资才合理?案例九. 平衡价格问题为了协调多个相互依存的行业的平衡发展, 有关部门需要根据每个行业的产出在各个行业中的分配情况确定每个行业产品的指导价格, 使得每个行业的投入与产出都大致相等.图21 三个行业【模型准备】假设一个经济系统由煤炭、电力、钢铁行业组成, 每个行业的产出在各个行业中的分配如下表所示:等的平衡价格.【模型假设】假设不考虑这个系统与外界的联系.【模型建立】把煤炭、电力、钢铁行业每年总产出的价格分别用x1, x2, x3表示, 则123212331230.40.60.60.10.20.40.50.2x x xx x x xx x x x=+⎧⎪=++⎨⎪=++⎩, 即1231231230.40.600.60.90.200.40.50.80x x xx x xx 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实验题假设一个经济系统由煤炭、石油、电力、钢铁、机械制造、运输行业组成, 每个行业的产出在各个行业中的分配如下表所示:等的平衡价格.参考文献David C. Lay, 线性代数及其应用, 沈复兴, 傅莺莺等译, 北京: 人民邮电出版社, 2009. 页码: 49-50.案例十. 电路设计问题电路是电子元件的神经系统. 参数的计算是电路设计的重要环节. 其依据来自两个方面: 一是客观需要, 二是物理学定律.图22 USB 扩展板 【模型准备】假设图23中的方框代表某类具有输入和输出终端的电路. 用11v i ⎛⎫ ⎪⎝⎭记录输入电压和输入电流(电压v 以伏特为单位, 电流i 以安培为单位), 用22v i ⎛⎫ ⎪⎝⎭记录输出电压和输入电流. 若22v i ⎛⎫ ⎪⎝⎭= A 11v i ⎛⎫ ⎪⎝⎭, 则称矩阵A 为转移矩阵.图23 具有输入和输出终端的电子电路图图24给出了一个梯形网络, 左边的电路称为串联电路, 电阻为R 1(单位: 欧姆). 右边的电路是并联电路, 电路R 2. 利用欧姆定理和楚列斯基定律, 我们可以得到串联电路和并联电路的转移矩阵分别是1101R -⎛⎫ ⎪⎝⎭和2101/1R ⎛⎫ ⎪-⎝⎭串联电路 并联电路图24 梯形网络设计一个梯形网络, 其转移矩阵是180.55-⎛⎫ ⎪-⎝⎭. v 2【模型假设】假设导线的电阻为零.【模型建立】设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-⎛⎫ ⎪-⎝⎭, 则上面的梯形网络无法实现. 因为这时对应的方程组是121281/0.51/4R R R R -=-⎧⎪-=-⎨⎪+=⎩. 根据前两个方程依然得到R 1 = 8, R 2 = 2,但把R 1 = 8, R 2 = 2代入上第三个方程却不能使等式成立.参考文献David C. Lay, 线性代数及其应用, 沈复兴, 傅莺莺等译, 北京: 人民邮电出版社, 2009. 页码: 129-130.练习题根据基尔霍夫回路电路定律(各节点处流入和流出的电流强度的代数和为零, 各回路中各支路的电压降之和为零), 列出下图所示电路中电流i 1, i 2, i 3所满足的线性方程组, 并用矩阵形式表示:图25 简单的回路E 12③案例十一. 平面图形的几何变换随着计算机科学技术的发展, 计算机图形学的应用领域越来越广, 如仿真设计、效果图制作、动画片制作、电子游戏开发等.图26 计算机图形学的广泛应用图形的几何变换, 包括图形的平移、旋转、放缩等, 是计算机图形学中经常遇到的问题. 这里暂时只讨论平面图形的几何变换.【模型准备】平面图形的旋转和放缩都很容易用矩阵乘法实现, 但是图形的平移并不是线性运算, 不能直接用矩阵乘法表示. 现在要求用一种方法使平移、旋转、放缩能统一用矩阵乘法来实现.【模型假设】设平移变换为(x, y ) (x+a, y+b)旋转变换(绕原点逆时针旋转θ角度)为(x, y ) (x cosθy sinθ, x sinθ + y cosθ)放缩变换(沿x轴方向放大s倍, 沿y轴方向放大t倍)为(x, y ) (sx, ty)【模型求解】R2中的每个点(x, y)可以对应于R3中的(x, y, 1). 它在xOy平面上方1单位的平面上. 我们称(x, y, 1)是(x, y)的齐次坐标. 在齐次坐标下, 平移变换(x, y ) (x+a, y+b)可以用齐次坐标写成(x, y , 1) (x+a, y+b, 1).于是可以用矩阵乘积1001001ab⎛⎫⎪⎪⎝⎭1xy⎛⎫⎪⎪⎝⎭=1x ay b+⎛⎫⎪+⎪⎝⎭实现.旋转变换(x, y ) (x cosθy sinθ, x sinθ + y cosθ)可以用齐次坐标写成(x, y , 1) (x cosθy sinθ, x sinθ + y cosθ, 1).于是可以用矩阵乘积cos sin0sin cos0001θθθθ-⎛⎫⎪⎪⎝⎭1xy⎛⎫⎪⎪⎝⎭=cos sinsin cos1x yx 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.图26 Matlab 绘制的图形(1) 写出该图形每个顶点的齐次坐标;(2) 编写Matlab 程序, 先将上面图形放大0.9倍; 再逆时针旋转3π; 最后进行横坐标加0.8, 纵坐标减1的图形平移. 分别绘制上述变换后的图形.案例十二. 太空探测器轨道数据问题太空航天探测器发射以后, 可能需要调整以使探测器处在精确计算的轨道里. 雷达监测到一组列向量x 1, …, x k , 它们给出了不同时刻探测器的实际位置与预定轨道之间的偏差的信息.图28 火星探测器 【模型准备】令X k = [x 1, …, 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 +1T 1k +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 +1T 1k +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 T k x 始终只要做n 2次乘法.Matlab 实验题用Matlab 编写一个程序用于处理这个问题.参考文献David C. Lay, 线性代数及其应用, 沈复兴, 傅莺莺等译, 北京: 人民邮电出版社, 2009. 页码: 123.。
数学建模案例分析模型1 蠓虫分类问题背景 两种蠓虫和已由生物学家W.L.Grogon 和W.W.Wirth (1981)根据Af Apf 它们的触角长度、翅膀长度加以区分. 现测得只和只的触长、翅膀长的数据6Apf 9Af 如下:Apf()1.14,1.78()1.18,1.96()1.20,1.86()1.26,2.00()1.28,2.00()1.30,1.96Af()1.24,1.72()1.36,1.74()1.38,1.64()1.38,1.82()1.38,1.90()1.40,1.70()1.49,1.82()1.54,1.82()1.56,2.08问题 ⑴如何根据以上数据,制定一种方法正确区分两种蠓虫?⑵将你的方法用于触长、翅长分别为的个样本()()()1.24,1.80,1.28,1.84,1.40,2.043进行识别.如何考虑?该问题属于统计模型范畴!(属于黑洞问题)1.首先对已有数据进行分析.(测试)画出相应的散点图什么启发?从图中可以看出,两类蠓虫有明显的差别.问题是该如何识别.法1 用最小二乘法得到回归线:结果不理想.法2 用斜率的平均值构造直线结果?图中不同类别的蠓虫的区别还是比较明显的.如何做进一步的识别?用此方法对给定的三个蠓虫进行识别,若点在直线的上方,则判定为Apf,否则定为Af.由此建立识别函数dist.m. 对给定的样本进行识别,如果样本点在直线上方,则将该蠓虫识别为Apf(标示为1),否则识别为Af(标示为0).clear,clcApf1=[1.14,1.18,1.20 1.26 1.28 1.30];Apf2=[1.78 1.96 1.86 2.00 2.00 1.96];Af1=[1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56]; Af2=[1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08]; x=[Apf1,Af1];y=[Apf2,Af2];n=length(x);k=sum(y./x)/n;A=[1.24,1.80;1.28,1.84;1.40,2.04];n=size(A,1);p=[];for i=1:nd=A(i,2)-k*A(i,1);if d>0p=[p,1];elsep=[p,0];endenddisp(p)结果为1 1 1即:三个新样本的判定结果均为Apf!这样的判定是否有效?(模型解释)为解释判别法的有效性,引入交叉误判率.交叉误判率是每次剔除一个样品,利用其余的训练样本建立判别准则,根据建立的判别准则对删除的样品进行判定,以其误判的比例作为误判率. 具体过程如下:①从总体为的训练样本开始,剔除其中每一个样品,剩余的个样品与中的1G 1m -2G 全部样品建立判别函数;②用建立的判别函数对剔除的样品进行判别;③重复上述步骤,直到中的全部样品依次被剔除、判别,其误判的总数记为;1G 12m ④对的样品重复步骤①②③,直到中的样品全部被剔除、判别,其误判的个数2G 2G 记为21,m 交叉误判率的估计值为1221ˆ.m m pm n+=+程序为clear,clcApf1=[1.14,1.18,1.20 1.26 1.28 1.30];Apf2=[1.78 1.96 1.86 2.00 2.00 1.96];Af1=[1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56]; Af2=[1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08]; x=[Apf1,Af1];y=[Apf2,Af2];m1=length(Apf1);m2=length(Af1);n=length(x);k=sum(y./x)/n;A=[x',y'];p1=[];p2=[];for i=1:m1b=A(i,:);B=A;B(i,:)=[];b1=B(:,1);b2=B(:,2);k=sum(b2./b1)/(n-1);d=b(2)-k*b(1);if d>0p1=[p1,1];elsep1=[p1,0];endendfor i=m1+1:nb=A(i,:);B=A;B(i,:)=[];b1=B(:,1);b2=B(:,2);k=sum(b2./b1)/(n-1);d=b(2)-k*b(1);if d>0p2=[p2,1];elsep2=[p2,0];endenddisp(p1),disp(p2)结果为1 1 1 1 1 10 0 0 0 0 0 0 0 0结论:在这样的判定法则下,交叉误判率为零,说明方法还是有效的.模型2 饮酒驾车问题一、问题背景据报道,2003年全国道路交通死亡人数为10.4372万,其中因饮酒驾车造成的占有相当的比例.针对这种严重的道路交通情况,国际质量监督检查检疫局2004年5月31日发布了新的《车辆驾驶人员血液、呼气酒精含量阀值与检验》国家标准,新标准规定:车辆驾驶人员血液中的酒精含量大于或等于毫克/百毫升、小于毫克/百毫升为饮酒驾车;2080血液中的酒精含量大于或等于毫克/百毫升为醉酒驾车.大李在中午点喝了一瓶啤酒,8012下午点检查时符合新的驾车标准,紧接着他在吃晚饭时又喝了一瓶啤酒,为保险起见他6呆到凌晨点才驾车回家,又一次遭遇检查时却被定为饮酒驾车,这让他既懊恼又困惑,2为什么喝同样多的酒,两次检查结果却会不一样?请你参考下面给出的数据(或自己收集资料)建立饮酒后血液中酒精含量的数学模型,并讨论以下问题:1.对大李的情况做出解释;2.在喝了瓶啤酒或者半斤低度白酒后多长时间内驾车就会违反上述标准,在以下情3况下回答:⑴酒是自很短时间内喝的;⑵酒是在较长一段时间(比如小时)内喝的.23.怎样估计血液中的酒精含量在什么时间内最高?4.根据你的模型论证;如果天天喝酒,是否还能开车?5.根据你的论证并结合新的国家标准写一篇短文,给想喝一点酒的司机如何驾车的忠告.参考数据⑴人的体液占人的体重左右,其中血液只占体重的7%左右.而药物(包括65%70%:酒精)在血液中的含量与在体液中的含量大致相同.⑵体重在的某人在短时间内喝下瓶啤酒后,隔一定时间测量他的血液中酒精含70kg 2量(毫克/百毫升),得到数据如下:时间/小时0.250.50.751 1.252 2.53 3.544.55酒精含量306875828277686858515041时间/小时678910111213141516酒精含量3835282518151210774(酒精含量单位:毫克/百毫升)二、问题分析显然,该问题是微分方程模型.饮酒后,酒精先从肠胃吸收进入血液与体液中,然后从血液与体液向外排泄.由此建立二室模型:大李在喝酒以后,酒精先从吸收室(肠胃)进入中心室(血液也体液),然后从中心室向体外排除.设在时刻时,吸收室的酒精含量为,中心室的酒精含量为,酒精t ()1x t ()2x t 从吸收室进入中心室的速率系数为,分别表示在时刻时两室的酒精含量1k ()()12,y t y t t (毫克/百毫升),为中心室的酒精向外排泄的速率系数.在适度饮酒没有酒精中毒的条2k 件下,都是常量,与饮酒量无关.12,k k假定中心室的容积(百毫升)是常量,在时刻时中心室的酒精含量为,而吸V 0t =0收室的酒精含量为,酒精从吸收室进入中心室的速率与吸收室的酒精含量成正比;大02g 李第二次喝一瓶啤酒是在第一次检查后的两小时后.三、建模与解模1.模型建立由已知条件得到吸收室酒精含量应满足的微分方程为,()111d d x k x t t=-做学相应的初始条件是;而中心室酒精含量应满足的微分方程为()1002x g =()()21122d d x k x t k x t t=-相应的初始条件为.()20x t =由此建立问题的数学模型:()()()()()11121122102,,02,00.x k x t x k x t k x t x g x ⎧=-⎪=-⎨⎪==⎩2.解模调用MatLab 下的求解函数,输入下面语句syms x1 x2 k1 k2 g0[x1,x2]=dsolve('Dx1=-k1*x1','Dx2=k1*x1-k2*x2','x1(0)=2*g0','x2(0)=0');x=simple([x1,x2]);该微分方程组的解为()()()12110012122e ,2e e .k t k t k t x t g g k x t k k ---⎧=⎪⎨=-⎪-⎩中心室的酒精含量(百毫升)()()()()21210122e e e e V k t k t k t k t g k y t k k k ----=---:其中,上式即为短时间内喝完两瓶啤酒后中心室酒精含量率所对应()()0112122V g k k k k k k =≠-的数学模型.为得到模型中的未知参数,采用非线性拟合方法.编写求解程序:k0=[2,1,80];fun=inline('k(3)*(exp(-k(2)*t)-exp(-k(1)*t))','k','t');[k,r]=nlinfit(t,x,fun,k0);disp(k)hold onx1=k(3)*(exp(-k(2)*t)-exp(-k(1)*t));plot(t,x1)此时相应的值为k 2.00790.1855 114.4325图形为图形表明,拟合效果不错.再画出相应的残差图:残差分析表明模型比较理想.将计算结果代入表达式,得到在时刻时中心室酒精含量(百毫升)的函数表达式t .()()0.1855 2.00792114.4325e e t t y t --=- 模型应用若大李仅喝一瓶酒,此时,因此相应的模型为12k k '=()()0.1855 2.0079257.2163e e t t y t --=-再将代入得6t =()()0.18556 2.0079626114.4325e e 18.799320y -⨯-⨯=-≈<即大李此时符合驾车标准.假设大李在晚上点迅速喝完一瓶啤酒,以和分别代表在时刻时吸收室及8()1z t ()2z t t 中心室的含酒量(代表晚上点),则,由此得到微分方程:0t =8()()10108z g x =+一)题()()()()()()()()()1112112210122d ,d d ,d 08,08.z t k z t t z t k z t k z t tz g x z x ⎧=-⎪⎪⎪⎪=-⎨⎪=+⎪⎪=⎪⎩而由前面计算结果知:.将其代入到前面微分方()()()12188801102128e ,8e e k k k g k x g x k k ---==--程的初值问题中,则有()()()()()()()()1211112112281008801212d ,d d ,d 0e ,0e e .k k k z t k z t t z t k z t k z t t z g g g k z k k ---⎧=-⎪⎪⎪=-⎪⎨⎪=+⎪⎪=-⎪-⎩在MatLab 下,编写相应的求解程序:clear,clcsyms z1 z2 k1 k2 g0[z1,z2]=dsolve('Dz1=-k1*z1','Dz2=k1*z1-k2*z2', ...,'z1(0)=g0*(1+exp(-8*k1))','z2(0)=(k1*g0/(k1-k2))*(exp(-8*k2)-exp(-8*k1))');z=simple([z1,z2]);此时问题的解为()()()1122118108802121e e ,1e e 1e e .k k t k k t k k tz g g z k k ------⎧=+⎪⎨⎡⎤=+-+⎪⎣⎦-⎩记,()()()()()2211221188880121e e 1e e 1e e 1e e V k k t k k t k k t k k tg z k k k --------⎡⎤⎡⎤'=+-++-+⎣⎦⎣⎦-:最后代入得到在时刻时大李中心室的酒精含量函数122.0079,0.1855,57.2163k k k '===t .()()1.48400.185516.0632 2.007957.21631e e 1e e t tz ----⎡⎤=+-+⎣⎦取,即有6t = z=57.2163*((1+exp(-1.4840))*exp(-0.1855*6)-(1+exp(-16.0632))*exp(-2.0079*6))返回值23.0618即此时中心室的酒精含量率大于规定标准,属于饮酒驾车.用同样的方法可以讨论其它问题,在此不一一叙述.。
线性代数建模案例汇编法正系,思想政治教育13-1汗克孜·亚森2015年6月目录案例一. 交通网络流量分析问题 (1)案例二. 配方问题 (4)案例三. 投入产出问题 (6)案例四. 平板的稳态温度分布问题 (8)案例五. CT图像的代数重建问题 (10)案例六. 平衡结构的梁受力计算 (12)案例七. 化学方程式配平问题 (14)案例八. 互付工资问题 (16)案例九. 平衡价格问题 (18)案例十. 电路设计问题 (20)案例十一. 平面图形的几何变换 (22)案例十二. 太空探测器轨道数据问题 (24)案例十三. 应用矩阵编制Hill密码 (25)案例十四. 显示器色彩制式转换问题 (27)案例十五. 人员流动问题 (29)案例十六. 金融公司支付基金的流动 (31)案例十七. 选举问题 (33)案例十八. 简单的种群增长问题 (34)案例十九. 一阶常系数线性齐次微分方程组的求解 (36)案例二十. 最值问题 (38)附录数学实验报告模板 (39)这里收集了二十个容易理解的案例. 和各类数学建模竞赛的题目相比, 这些案例确实显得过于简单. 但如果学生能通过这些案例加深对线性代数基本概念、理论和方法的理解, 培养数学建模的意识, 那么我们初步的目的也就达到了.案例一. 交通网络流量分析问题城市道路网中每条道路、每个交叉路口的车流量调查,是分析、评价及改善城市交通状况的基础。
根据实际车流量信息可以设计流量控制方案,必要时设置单行线,以免大量车辆长时间拥堵。
图1 某地交通实况图2 某城市单行线示意图【模型准备】某城市单行线如下图所示, 其中的数字表示该路段每小时按箭头方向行驶的车流量(单位: 辆).图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 =-⎧⎪=-+⎨⎪=-⎩.为了唯一确定未知流量, 只要增添x4统计的值即可.当x4 = 350时, 确定x1 = 250, x2 = 250, x3 = 50.若x4 = 200, 则x1 = 100, x2 = 400, x3 = -100 < 0. 这表明单行线“③←④”应该改为“③→④”才合理.【模型分析】(1) 由(A, b)的行最简形可见, 上述方程组中的最后一个方程是多余的. 这意味着最后一个方程中的数据“300”可以不用统计.(2) 由142434100600300x xx xx x=-⎧⎪=-+⎨⎪=-⎩可得213141500200100x xx xx x=-+⎧⎪=-⎨⎪=+⎩,123242500300600x xx xx x=-+⎧⎪=-+⎨⎪=-+⎩,132343200300300x xx xx x=+⎧⎪=-+⎨⎪=+⎩, 这就是说x1, x2, x3, x4这四个未知量中, 任意一个未知量的值统计出来之后都可以确定出其他三个未知量的值.参考文献陈怀琛, 高淑萍, 杨威, 工程线性代数, 北京: 电子工业出版社, 2007. 页码: 16-17.Matlab实验题某城市有下图所示的交通图, 每条道路都是单行线, 需要调查每条道路每小时的车流量. 图中的数字表示该条路段的车流数. 如果每个交叉路口进入和离开图4 某城市单行线车流量(1)建立确定每条道路流量的线性方程组.(2)分析哪些流量数据是多余的.(3)为了唯一确定未知流量, 需要增添哪几条道路的流量统计.案例二. 配方问题在化工、医药、日常膳食等方面都经常涉及到配方问题. 在不考虑各种成分之间可能发生某些化学反应时, 配方问题可以用向量和线性方程组来建模.图5 日常膳食搭配 图6 几种常见的作料 【模型准备】一种佐料由四种原料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 经济学奖.图7 三个经济部门这里暂时只讨论一个简单的情形. 【模型准备】某地有一座煤矿, 一个发电厂和一条铁路. 经成本核算, 每生产价值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 命令窗口输入以下命令>> 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可见T 1 = 82.9167, T 2 = 70.8333, T 3 = 70.8333, T 4 = 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图像为例来说明.表4 消耗与产出情况3⨯3图像水平方向上 的叠加值x 1 + x 2 + x 3 = 1x 4 + x 5 + x 6 = 1x 7 + x 8 + x 9 = 1.5的叠加值x 1 + x 4 + x 7 = 1.5 x 2 + x 5 + x 8 = 0.5 x 3 + x 6 + x 9 = 1.5 每个网格中的数字x i 代表其灰度值, 范围在[0, 1]内. 0表示白色, 1表示黑色, 0.5表示灰色. 如果我们不知道网格中的数值, 只知道沿竖直方向和水平方向的叠加值, 为了确定网格中的灰度值, 可以建立线性方程组(含有6个方程, 9个未知数)123456369111x x x x x x x x x ++=⎧⎪++=⎪⎨⎪++=⎪⎩ 显然该方程组的解是不唯一的, 为了重建图像, 必须增加叠加值. 如我们增加从右上方到左下方的叠加值, 则方程组将增加5个方程x 1 = 1,x 2 + x 4 = 0,x 3 + x 5 + x 7 = 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 绘制该灰度图像.案例六. 平衡结构的梁受力计算在桥梁、房顶、铁塔等建筑结构中, 涉及到各种各样的梁. 对这些梁进行受力分析是设计师、工程师经常做的事情.图13埃菲尔铁塔全景图14 埃菲尔铁塔局部下面以双杆系统的受力分析为例, 说明如何研究梁上各铰接点处的受力情况.【模型准备】在图15所示的双杆系统中, 已知杆1重G1 = 200牛顿, 长L1 = 2米, 与水平方向的夹角为θ1 = π/6, 杆2重G2 = 100牛顿, 长L2= 米, 与水平方向的夹角为θ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类似地有N5 = N7, N6 = N8 + G2, (L2sinθ2)N7 = (L2cosθ2)N8 + (12L2cosθ2)G2.N5N6此外还有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 一个平面结构的梁案例七. 化学方程式配平问题在用化学方法处理污水过程中, 有时会涉及到复杂的化学反应. 这些反应的化学方程式是分析计算和工艺设计的重要依据. 在定性地检测出反应物和生成物之后,可以通过求解线性方程组配平化学方程式.图18 污水处理 【模型准备】某厂废水中含KCN, 其浓度为650mg/L. 现用氯氧化法处理, 发生如下反应:KCN + 2KOH + Cl 2 = KOCN + 2KCl + H 2O.投入过量液氯, 可将氰酸盐进一步氧化为氮气. 请配平下列化学方程式:KOCN + KOH + Cl 2 === CO 2 + N 2 + KCl + H 2O.(注: 题目摘自福建省厦门外国语学校2008-2009学年高三第三次月考化学试卷)【模型建立】设x 1KOCN + x 2KOH + x 3Cl 2 === x 4CO 2 + x 5N 2 + x 6KCl + x 7H 2O,则1261247141527362222x x x x x x x x 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 . 可见配平后的化学方程式如下2KOCN + 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个以上的线性无关的解向量. 这时可以根据化学方程式中元素的化合价的上升与下降的情况, 在原线性方程组中添加新的方程.参考文献陈怀琛, 高淑萍, 杨威, 工程线性代数, 北京: 电子工业出版社, 2007. 页码: 84-85.Matlab实验题配平下列反应式(1) FeS + KMnO4 + H2SO4——K2SO4 + MnSO4 + Fe2(SO4)3 + H2O + S↓(2) Al2(SO4)3 + Na2CO3 + H2O ——Al(OH)3↓+ CO2↑+ Na2SO4案例八. 互付工资问题互付工资问题是多方合作相互提供劳动过程中产生的. 比如农忙季节, 多户农民组成互助组, 共同完成各户的耕、种、收等农活. 又如木工, 电工, 油漆工等组成互助组, 共同完成各家的装潢工作. 由于不同工种的劳动量有所不同, 为了均衡各方的利益, 就要计算互付工资的标准.图19 农忙互助 图20 装修互助 【模型准备】现有一个木工, 电工, 油漆工. 相互装修他们的房子, 他们有如下协议:(1) 每人工作10天(包括在自己家的日子),(2) 每人的日工资一般的市价在60~80元之间,(3) 日工资数应使每人的总收入和总支出相等.求每人的日工资. 【模型假设】假设每人每天工作时间长度相同. 无论谁在谁家干活都按正常情况工作, 既不偷懒, 也不加班.【模型建立】设木工, 电工, 油漆工的日工资分别为x , y , z 元, 则由下表可得 2610451044310x y z x x 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元工资才合理?案例九. 平衡价格问题为了协调多个相互依存的行业的平衡发展, 有关部门需要根据每个行业的产出在各个行业中的分配情况确定每个行业产品的指导价格, 使得每个行业的投入与产出都大致相等.图21 三个行业 【模型准备】假设一个经济系统由煤炭、电力、钢铁行业组成, 每个行业的产出在各个行业中的分配如下表所示:等的平衡价格.【模型假设】假设不考虑这个系统与外界的联系.【模型建立】把煤炭、电力、钢铁行业每年总产出的价格分别用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实验题假设一个经济系统由煤炭、石油、电力、钢铁、机械制造、运输行业组成, 每个行业的产出在各个行业中的分配如下表所示:等的平衡价格.参考文献David C. Lay, 线性代数及其应用, 沈复兴, 傅莺莺等译, 北京: 人民邮电出版社, 2009. 页码: 49-50.案例十. 电路设计问题电路是电子元件的神经系统. 参数的计算是电路设计的重要环节. 其依据来自两个方面: 一是客观需要, 二是物理学定律.图22 USB 扩展板 【模型准备】假设图23中的方框代表某类具有输入和输出终端的电路. 用11v i ⎛⎫ ⎪⎝⎭记录输入电压和输入电流(电压v 以伏特为单位, 电流i 以安培为单位), 用22v i ⎛⎫ ⎪⎝⎭记录输出电压和输入电流. 若22v i ⎛⎫ ⎪⎝⎭= A 11v i ⎛⎫ ⎪⎝⎭, 则称矩阵A 为转移矩阵.图23 具有输入和输出终端的电子电路图 图24给出了一个梯形网络, 左边的电路称为串联电路, 电阻为R 1(单位: 欧姆). 右边的电路是并联电路, 电路R 2. 利用欧姆定理和楚列斯基定律, 我们可以得到串联电路和并联电路的转移矩阵分别是1101R -⎛⎫ ⎪⎝⎭和2101/1R ⎛⎫ ⎪-⎝⎭串联电路 并联电路图24 梯形网络设计一个梯形网络, 其转移矩阵是180.55-⎛⎫ ⎪-⎝⎭.v 2【模型假设】假设导线的电阻为零.【模型建立】设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-⎛⎫ ⎪-⎝⎭, 则上面的梯形网络无法实现. 因为这时对应的方程组是121281/0.51/4R R R R -=-⎧⎪-=-⎨⎪+=⎩. 根据前两个方程依然得到R 1 = 8, R 2 = 2,但把R 1 = 8, R 2 = 2代入上第三个方程却不能使等式成立.参考文献David C. Lay, 线性代数及其应用, 沈复兴, 傅莺莺等译, 北京: 人民邮电出版社, 2009. 页码: 129-130.练习题根据基尔霍夫回路电路定律(各节点处流入和流出的电流强度的代数和为零, 各回路中各支路的电压降之和为零), 列出下图所示电路中电流i 1, i 2, i 3所满足的线性方程组, 并用矩阵形式表示:图25 简单的回路 E 12案例十一. 平面图形的几何变换随着计算机科学技术的发展, 计算机图形学的应用领域越来越广, 如仿真设计、效果图制作、动画片制作、电子游戏开发等.图26 计算机图形学的广泛应用图形的几何变换, 包括图形的平移、旋转、放缩等, 是计算机图形学中经常遇到的问题. 这里暂时只讨论平面图形的几何变换.【模型准备】平面图形的旋转和放缩都很容易用矩阵乘法实现, 但是图形的平移并不是线性运算, 不能直接用矩阵乘法表示. 现在要求用一种方法使平移、旋转、放缩能统一用矩阵乘法来实现.【模型假设】设平移变换为(x, y) → (x+a, y+b)旋转变换(绕原点逆时针旋转θ角度)为(x, y) → (x cosθ-y sinθ, x sinθ + y cosθ)放缩变换(沿x轴方向放大s倍, 沿y轴方向放大t倍)为(x, y) → (sx, ty)【模型求解】R2中的每个点(x, y)可以对应于R3中的(x, y, 1). 它在xOy平面上方1单位的平面上. 我们称(x, y, 1)是(x, y)的齐次坐标. 在齐次坐标下, 平移变换(x, y) → (x+a, y+b)可以用齐次坐标写成(x, y, 1) → (x+a, y+b, 1).于是可以用矩阵乘积1001001ab⎛⎫⎪⎪⎝⎭1xy⎛⎫⎪⎪⎝⎭=1x ay b+⎛⎫⎪+⎪⎝⎭实现.旋转变换(x, y) → (x cosθ-y sinθ, x sinθ + y cosθ)可以用齐次坐标写成(x, y, 1) → (x cosθ-y sinθ, x sinθ + y cosθ, 1).于是可以用矩阵乘积cos sin0sin cos0001θθθθ-⎛⎫⎪⎪⎝⎭1xy⎛⎫⎪⎪⎝⎭=cos sinsin cos1x yx 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.图26 Matlab 绘制的图形(1) 写出该图形每个顶点的齐次坐标; (2) 编写Matlab 程序, 先将上面图形放大0.9倍; 再逆时针旋转3π; 最后进行横坐标加0.8, 纵坐标减1的图形平移. 分别绘制上述变换后的图形.案例十二. 太空探测器轨道数据问题太空航天探测器发射以后, 可能需要调整以使探测器处在精确计算的轨道里. 雷达监测到一组列向量x 1, …, x k , 它们给出了不同时刻探测器的实际位置与预定轨道之间的偏差的信息.图28 火星探测器 【模型准备】令X k = [x 1, …, 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 +1T 1k +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 +1T 1k +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 T k x 始终只要做n 2次乘法.Matlab 实验题用Matlab 编写一个程序用于处理这个问题.参考文献David C. Lay, 线性代数及其应用, 沈复兴, 傅莺莺等译, 北京: 人民邮电出版社, 2009. 页码: 123.。