seegongsik
我的单词本
工程数学

解方程组就是把变换倒着走

解方程组,学校里你都是机械地做的吧,加减消元、代入,摆两个式子把 x 和 y 消掉。可你大概从来没搞清楚它到底在干什么。其实方程组问的是这么个问题:"给某个输入套上变换 A,结果出来个 b。原来的输入是什么?" 也就是说,你在把变换倒着放。第5讲说矩阵是变换,第6讲说这个变换可能把空间压扁。这两件事在这儿合到了一起。方程组什么时候有解、什么时候没解,其实全是那幅画。

先把 Ax = b 这个式子当成一幅画来看。A 是变换,x 是我们不知道的输入,b 是结果。给平面套上 A,每个点都跑到某个地方去了。其中正好落在 b 这个位置的点,就是我们要找的 x。拖动一个候选点,让它过一遍 A。当套上 A 的结果正好压在 b 上,那就是答案。所谓解方程组,说到底就是"倒着去找那个落到 b 上的输入"。

bxA·x
A·x = (-0.9, 2.8) · b = (2, 0.7)
拖动 x(蓝),让 A·x 落到 b 上

不过呢,总不能每次都靠瞎猜候选点。有更聪明的办法。既然 A 把空间掰弯了,那就一定有个变换能把它正好掰回来。那就是逆矩阵 A⁻¹。你看:套上 A,网格扭了,再套上 A⁻¹,网格就严丝合缝地回到了原样。所以答案就是 x = A⁻¹b。把 b 过一遍倒着转的变换,落到的就是起点 x。解方程组的那个公式,原来一直就是个"倒带按钮"。

× I
now
[
1.00.00.01.0
]
答案: x = A⁻¹b = (1.15, 1.33)

可答案总是只有一个吗?只要变换没把空间压扁,也就是第6讲里那个行列式不是0,那就是的。当变换把点均匀铺开的时候,对每一个结果 b,落到它上面的输入正好只有一个。把 b 挪来挪去看看。每挪一下,那个唯一的 x 都跟着走。能倒回去的变换,答案永远正好一个。这就是"行列式不是0就能干净地解出来"的真正意思。

xb
x = A⁻¹b = (1.66, 0.31)det = 1.63 ≠ 0
拖动 b(金),唯一的 x 跟着走

现在把行列式弄成0。就像第6讲里看到的,平面被压成了一条线。这时候,怪事发生了。结果 b 要是不在那条线上呢?根本没有输入会落到那儿,无解。反过来,b 要是在那条线上呢?一大堆输入都被压到了那一个点上,于是有无穷多个解。把 b 在线上挪进挪出试试。要么没有,要么太多。第6讲里"没有逆矩阵"那句吓人的话,在方程组里就原样变成了"得不出干净的答案"。

b
det = 0 · 无解
把 b 拖到线上/线外

最后,跟你在学校学的那幅画连起来。把方程组的两个式子画成图,就是两条直线,答案就是两条直线相交的点。这个"两条直线相交"的画面,和刚才看的"把变换倒着走"的画面,是同一回事。那行列式为0的时候呢?两条直线平行、永不相交(无解),或者干脆是同一条线、处处相交(无穷多解)。被压扁的变换,原来就是平行的直线。看着这两幅画其实是一体的。

det0.80
一个解
实际应用遇到方程组,就这么看:它是"把 A 倒着套到 b 上"。行列式不是0,答案就干净利落只有一个(x = A⁻¹b);是0,就要么无解、要么无穷多解,得当心。实战里你几乎不会用手去算逆矩阵——电脑会替你解。但是知道这个方程组到底有没有解(行列式是不是0)、解不出来时为什么(空间被压扁了),这才是工程师的直觉。
如果有帮助,请支持我们
工程数学