图17 一个平面结构的梁
14
案例七. 化学方程式配平问题
在用化学方法处理污水过程中, 有时会涉及到复杂的化学反应. 这些反应的化学方程式是分析计算和工艺设计的重要依据. 在定性地检测出反应物和生成物之后,可以通过求解线性方程组配平化学方程式.
图18 污水处理
【模型准备】某厂废水中含KCN, 其浓度为650mg/L. 现用氯氧化法处理, 发生如下反应:
KCN + 2KOH + Cl2 = KOCN + 2KCl + H2O.
投入过量液氯, 可将氰酸盐进一步氧化为氮气. 请配平下列化学方程式:
KOCN + KOH + Cl2 === CO2 + N2 + KCl + H2O. (注: 题目摘自福建省厦门外国语学校2008-2009学年高三第三次月考化学试卷) 【模型建立】设
x1KOCN + x2KOH + x3Cl2 === x4CO2 + x5N2 + x6KCl + x7H2O, 则
?x1?x2?x6?x1?x2?x6?0?x?x?2x?x?x?x?2x?x?0124747??12???x1?x4?x1?x4?0, 即 ???x1?2x5?x1?2x5?0?x2?2x7?x2?2x7?0??2x?x??6?3?2x3?x6?0【模型求解】在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 + 3Cl2 === 2CO2 + N2 + 6KCl + 2H2O.
15
【模型分析】利用线性方程组配平化学方程式是一种待定系数法. 关键是根据化学方程式两边所涉及到的各种元素的量相等的原则列出方程. 所得到的齐次线性方程组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
16
案例八. 互付工资问题
互付工资问题是多方合作相互提供劳动过程中产生的. 比如农忙季节, 多户农民组成互助组, 共同完成各户的耕、种、收等农活. 又如木工, 电工, 油漆工等组成互助组, 共同完成各家的装潢工作. 由于不同工种的劳动量有所不同, 为了均衡各方的利益, 就要计算互付工资的标准.
图19 农忙互助 图20 装修互助
【模型准备】现有一个木工, 电工, 油漆工. 相互装修他们的房子, 他们有如下协议:
(1) 每人工作10天(包括在自己家的日子), (2) 每人的日工资一般的市价在60~80元之间, (3) 日工资数应使每人的总收入和总支出相等.
在谁家木工家 电工家 油漆工家 求每人的日工资.
表5 工作天数 工人木工 电工 油漆工 6 1 3 2 4 4 1 5 4 【模型假设】假设每人每天工作时间长度相同. 无论谁在谁家干活都按正常情况工作, 既不偷懒, 也不加班.
【模型建立】设木工, 电工, 油漆工的日工资分别为x, y, z元, 则由下表
表6 各家应付工资和各人应得收入 工人木工 电工 油漆工 各家应付工资 在谁家木工家 电工家 油漆工家 各人应得收入 可得
2x 4x 4x 10x 1y 5y 4y 10y 6z 1z 3z 10z 2x + y + 6z 4x + 5y + z 4x + 4y + 3z ?2x?y?6z?10x??8x?y?6z?0??4x?5y?z?10y, 即?4x?5y?z?0 ????4x?4y?7z?0?4x?4y?3z?10z【模型求解】在Matlab命令窗口输入以下命令
17
>> 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元之间”可知
318216060 ?k 931363182160也就是说, 木工, 电工, 油漆工的日工资分别为k元, k元, k元, 其中? k ? 80. 93136为了简便起见, 可取k = 72, 于是木工, 电工, 油漆工的日工资分别为62元, 64元, 72元. 【模型分析】事实上各人都不必付自己工资, 这时各家应付工资和各人应得收入如下 表7 各家应付工资和各人应得收入 在谁家木工家 电工家 油漆工家 个人应得收入 由此可得 ?y?6z?8x??8x?y?6z?0???4x?z?5y, 即?4x?5y?z?0 ???4x?4y?7z?4x?4y?7z?0可见这样得到的方程组与前面得到的方程组是一样的. 工人 木工 0 4x 4x 8x 电工 1y 0 4y 5y 油漆工 6z 1z 0 7z 各家应付工资 y + 6z 4x + z 4x + 4y Matlab实验题 甲, 乙, 丙三个农民组成互助组, 每人工作6天(包括为自己家干活的天数), 刚好完成他们三人家的农活, 其中甲在甲, 乙, 丙三家干活的天数依次为: 2, 2.5, 1.5; 乙在甲, 乙, 丙三家各干2天活, 丙在甲, 乙, 丙三家干活的天数依次为: 1.5, 2, 2.5. 根据三人干活的种类, 速度和时间, 他们确定三人不必相互支付工资刚好公平. 随后三人又合作到邻村帮忙干了2天(各人干活的种类和强度不变), 共获得工资500元. 问他们应该怎样分配这500元工资才合理? 18