线性代数拾遗(四):线性方程组的应用

由于这段时间科研任务较重,加上 hexo 升级后总出现一些奇怪的问题,所以有一段时间没更新这个系列了,今天忙里偷闲补上一篇。

前面几章,我们回顾了一遍线性方程组和矩阵的一些概念。线性代数的最原始问题是解线性方程组,为了解决这个问题,我们引入了向量和矩阵,继而对矩阵的一些特性也进行了一番分析,然后又发现矩阵不但可以表示数据,也可以表示变换。然而,这些概念是如何应用于现实生活呢,实际生活中有哪些线性方程组的例子?这一章我们来介绍一些线性代数的实际应用。

总体上来说,牵涉到多个变量的相互约束,而且这些约束是“线性”的问题时,就有可能通过建立线性方程组从而得到解。

一、经济学例子

这是来自《线性代数及其应用》中的一个例子,很好地展示了线性代数在经济学中的应用:

比如一个国家包括煤炭、电力、钢铁三个部门,各部门都产出一定的资源,同时也消耗一定的资源(为方便讨论,本例中只考虑煤炭、电力、钢铁这三种资源,并且假设所有产出的资源都会被消耗)。比如,煤炭部门生产的每 100 份煤炭中,60 份被电力部门消耗,40 份被钢铁部门消耗;电力部门每生产 100 份煤炭,40 份被煤炭部门消耗,10 份被自己消耗,还有 50 份被钢铁部门消耗;钢铁部门每生产 100 份钢铁,60 份被煤炭部门消耗,20 份被电力部门消耗,还有 20 份被自己消耗。那么,如何给这三种资源定价,使得各部门的收支达到平衡?

首先,上面所述的各部门产出与消耗情况可以用一个表格来表示:

煤炭产出 电力产出 钢铁产出
煤炭部门的消耗 0 0.4 0.6
电力部门的消耗 0.6 0.1 0.2
钢铁部门的消耗 0.4 0.5 0.2

表中每一行表示某部们消耗各资源的情况,各列表示某资源被各部门消耗的情况。例如,煤炭部门每生产 1 单位的煤炭,就有 0.6 单位被电力部门消耗,0.4 单位被钢铁部门消耗;同时,煤炭部门也会消耗 0.4 单位的电力和 0.6 单位的钢铁来保证生产。

当然我们可以考虑用向量来表示这个表格。将表格中的各行向量化,得到:

$$\begin{align} O_c &= [0, 0.4, 0.6] \\ O_e &= [0.6, 0.1, 0.2] \\ O_s &= [0.4, 0.5, 0.2] \end{align}$$

其中,$O_c$, $O_e$, $O_s$ 分别表示煤炭、电力、钢铁各个部门消耗三种资源的量。

各种资源的单位价格也可以用符号定义。例如用 $p_c$, $p_e$, $p_s$ 分别来表示煤炭、电力、钢铁三种资源的价格,那么煤炭部门的总支出就是 $0 \cdot p_c+0.4 p_e+0.6 p_s = O_c \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix}$. 同理,电力部门和钢铁部门的总支出是 $O_e \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix}, O_s \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix}$.

也就是说,煤炭部门每生产出 1 单位价值为 $p_c$ 的煤炭,它就需要消耗价值为 $O_c \cdot \begin{bmatrix}p_c\ p_e\ p_s\end{bmatrix}$ 的资源。要使煤炭部门收支平衡,就需要:

$$\begin{equation} O_c \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} = p_c \end{equation}$$

同理,要使三个部门都达到收支平衡,需要:

$$\begin{align} O_c \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} &= [0 , 0.4, 0.6] \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} &= p_c \\ O_e \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} &= [0.6, 0.1, 0.2] \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} &= p_e \\ O_s \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} &= [0.4, 0.5, 0.2] \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} &= p_s \end{align}$$

借助矩阵的封装,我们可以把这三个式子合并为一个式子:
$$\begin{eqnarray} \mathbf{A} \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} &= \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} \\ \left( \mathbf{A} - \mathbf{I} \right) \cdot \begin{bmatrix}p_c\\ p_e\\ p_s\end{bmatrix} &= \begin{bmatrix}0\\ 0\\ 0\end{bmatrix} \label{homogeneous}\\ \end{eqnarray}$$
其中,3 x 3 矩阵 $\mathbf{A}$ 就是上面的那个表格。

式子 $\eqref{homogeneous}$ 是我们熟悉的齐次线性方程组的形式。按照套路,我们化简增广矩阵:
$$\begin{equation} \begin{bmatrix} -1 & 0.4 & 0.6 & 0 \\ 0.6 & -0.9 & 0.2 & 0 \\ 0.4 & 0.5 & -0.8 & 0 \end{bmatrix} \sim \begin{bmatrix} 1 & -0.4 & -0.6 & 0 \\ 0 & 1 & -0.85 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix} \sim \begin{bmatrix} 1 & 0 & -0.94 & 0 \\ 0 & 1 & -0.85 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix} \end{equation}$$

由此得到通解:$p_c = 0.94 p_s$, $p_e = 0.85 p_s$,$p_s$ 为自由变量。

所以,各部门达到收支平衡时的平衡价格向量为:
$$\begin{equation} \mathbf{p} = p_s \begin{bmatrix} 0.94 \\ 0.85 \\ 1 \end{bmatrix} \end{equation}$$

也就是说,如果钢铁价格为100元,那么煤炭和电的价格分别为94元和和85元时,整个经济系统可以达到平衡。

二、总结

从上面的例子,我们可以发现:

  • 当一个系统中各个部分之间存在线性约束时(例如化学方程式的配平,各元素之间相互存在约束关系),就有可能借助线性方程组来建模。
  • 当一个问题描述的是一张简单的表格时,我们可以将其向量化为一系列向量,或是一个矩阵,进而进行“批量”计算。

这里,我们再次发现了矩阵“封装”计算的特点。借助向量化矩阵化,我们可以将传统的数学问题转化为线性代数问题(如本文的例子就转化为了齐次线性方程组)。

参考文献


  • 线性代数及其应用:第3版/(美)莱(Lay, D.C.)著;沈复兴等译. ——北京:人民邮电出版社,2007.7

版权声明:


本文中所有文字、图片版权均属本人所有,如需转载请注明来源。