煤 消电 耗 运 根据需求, 应该有
产出(1元) 煤 电 运 0 0.6 0.5 0.3 0.1 0.1 0.2 0.1 0 产出 x y z 消耗 0.6y + 0.5z 0.3x + 0.1y + 0.1z 0.2x + 0.1y 订单 60000 100000 0 ?x?(0.6y?0.5z)?60000??y?(0.3x?0.1y?0.1z)?100000, ??z?(0.2x?0.1y)?0即
?x?0.6y?0.5z?60000???0.3x?0.9y?0.1z?100000 ???0.2x?0.1y?z?0【模型求解】在Matlab命令窗口输入以下命令
>> A = [1,-0.6,-0.5;-0.3,0.9,-0.1;-0.2,-0.1,1]; b = [60000;100000;0]; >> x = A\\b Matlab执行后得 x =
1.0e+005 * 1.9966 1.8415 0.5835
可见煤矿要生产1.9966?105元的煤, 电厂要生产1.8415?105元的电恰好满足需求.
?x??00.60.5??60000?【模型分析】令x =?y?, A =?0.30.10.1?, b =?100000?, 其中x称为总产值列向
?z??0.20.10??0???????量, A称为消耗系数矩阵, b称为最终产品向量, 则
?00.60.5??x??0.6y?0.5z?Ax =?0.30.10.1??y?=?0.3x?0.1y?0.1z?
?0.20.10??z??0.2x?0.1y???????根据需求, 应该有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万元, 那么他们
5
各生产多少才能满足需求?
案例四. 平板的稳态温度分布问题
在热传导的研究中, 一个重要的问题是确定一块平板的稳态温度分布. 根据…定律, 只要测定一块矩形平板四周的温度就可以确定平板上各点的温度.
图8 一块平板的温度分布图
【模型准备】如图9所示的平板代表一条金属梁的截面. 已知四周8个节点处的温度(单位°C), 求中间4个点处的温度T1, T2, T3, T4.
100 80 90 T1 T2 60 80 T3 60 T4 50 50
图9 一块平板的温度分布图
【模型假设】假设忽略垂直于该截面方向上的热传导, 并且每个节点的温度等于与它相邻的四个节点温度的平均值.
【模型建立】根据已知条件和上述假设, 有如下线性方程组
1?T??14(90?100?T2?T3)?1?T2?(80?60?T1?T4)?4 ?1?T3?(80?60?T1?T4)4?1?T?(50?50?T2?T3)4??4【模型求解】将上述线性方程组整理得
6
?190?4T1?T2?T3??T4?140??T1?4T2. ??T?4T3?T4?1401??T2?T3?4T4?100??在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
可见T1 = 82.9167, T2 = 70.8333, T3 = 70.8333, T4 = 60.4167.
参考文献
陈怀琛, 高淑萍, 杨威, 工程线性代数, 北京: 电子工业出版社, 2007. 页码: 15-16.
Matlab实验题
假定下图中的平板代表一条金属梁的截面, 并忽略垂直于该截面方向上的热传导. 已知平板内部有30个节点, 每个节点的温度近似等于与它相邻的四个节点温度的平均值. 设4条边界上的温度分别等于每位同学学号的后四位的5倍, 例如学号为16308209的同学计算本题时, 选择Tl = 40, Tu = 10, Tr = 0, Td = 45.
Tu Tu Tu Tl T1 T6 T26 Tr Tr Tl T2 T7 T27 Tl T5 T10 T30 Tr Td Td Td 图10 一块平板的温度分布图
(1) 建立可以确定平板内节点温度的线性方程组. (2) 用Matlab软件求解该线性方程组.
(3) 用Matlab中的函数mesh绘制三维平板温度分布图.
7
案例五. CT图像的代数重建问题
X射线透视可以得到3维对象在2维平面上的投影, CT则通过不同角度的X射线得到3维对象的多个2维投影, 并以此重建对象内部的3维图像. 代数重建方法就是从这些2维投影出发, 通过求解超定线性方程组, 获得对象内部3维图像的方法.
图11双层螺旋CT 图12 CT图像
这里我们考虑一个更简单的模型, 从2维图像的1维投影重建原先的2维图像. 一个长方形图像可以用一个横竖均匀划分的离散网格来覆盖, 每个网格对应一个像素, 它是该网格上各点像素的均值. 这样一个图像就可以用一个矩阵表示,其元素就是图像在一点的灰度值(黑白图像). 下面我们以3?3图像为例来说明.
表4 消耗与产出情况 3?3图像 水平方向上
各点的灰度值 的叠加值
x1 = 1 x2 = 0 x3 = 0 x1 + x2 + x3 = 1 x4 = 0 x5 = 0.5 x6 = 0.5 x4 + x5 + x6 = 1 x7 = 0.5 x8 = 0 x9 = 1 x7 + x8 + x9 = 1.5 竖直方向上x1 + x4 + x7 x2 + x5 + x8 x3 + x6 + x9
= 1.5 = 0.5 = 1.5 的叠加值
每个网格中的数字xi代表其灰度值, 范围在[0, 1]内. 0表示白色, 1表示黑色, 0.5表示灰色. 如果我们不知道网格中的数值, 只知道沿竖直方向和水平方向的叠加值, 为了确定网格中的灰度值, 可以建立线性方程组(含有6个方程, 9个未知数)
?x1?x2?x3?1??x4?x5?x6?1 ????x3?x6?x9?1显然该方程组的解是不唯一的, 为了重建图像, 必须增加叠加值. 如我们增加从右上方到左下方的叠加值, 则方程组将增加5个方程
x1 = 1,
x2 + x4 = 0, x3 + x5 + x7 = 1, x6 + x8 = 0.5, x9 = 1,
和上面的6个方程放在一起构成一个含有11个方程, 9个未知数的线性方程组.
8
【模型准备】设3?3图像中第一行3个点的灰度值依次为x1, x2, x3, 第二行3个点的灰度值依次为x4, x5, x6, 第三行3个点的灰度值依次为x7, x8, x9. 沿竖直方向的叠加值依次为1.5, 0.5, 1.5, 沿水平方向的叠加值依次为1, 1, 1.5, 沿右上方到左下方的叠加值依次为1, 0, 1, 0.5, 1. 确定x1, x2, …, x9的值.
【模型建立】由已知条件可得(含有11个方程, 9个未知数的)线性方程组
?x1?x2?x3?1??x4?x5?x6?1 ????x9?1【模型求解】在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 可见上述方程组的解不唯一. 其中的一个特解为
x1 = 1, x2 = 0, x3 = 0, x4 = 0, x5 = 0.5, x6 = 0.5, x7 = 0.5, x8 = 0, x9 = 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绘制该灰度图像.
9