牧场主给了你三种饲料 A、B、C,每种饲料每千克的营养含量如下:
· 饲料 A:蛋白质 2 g、脂肪 1 g、钙 3 g
· 饲料 B:蛋白质 1 g、脂肪 2 g、钙 1 g
· 饲料 C:蛋白质 3 g、脂肪 1 g、钙 1 g
现在要配一份饲料,使它恰好含蛋白质 20 g、脂肪 12 g、钙 18 g。问 A、B、C 各取多少千克?
设三种饲料分别取 x₁、x₂、x₃ 千克,问题立刻写成三个方程:
2x₁ + 1x₂ + 3x₃ = 20
1x₁ + 2x₂ + 1x₃ = 12
3x₁ + 1x₂ + 1x₃ = 18
手算的办法叫加减消元:用第二个方程乘 −2 加到第一个上,就能把 x₁ 消掉;再把第一、第三个方程配对,又能消掉一个未知数……一步一步做下去,最后只剩一个未知数,直接解出来。
高斯消元的洞察是:整个过程中你根本不需要看 x₁、x₂ 这些字母,只需要看它们的系数。把系数连同等号右边的常数抄成一张表 —— 增广矩阵,然后对这张表做三种固定操作(换行、倍乘、倍加),解就机械地出来了。
这就是计算机能"解方程"的原理:把人的代数直觉,翻译成对一张表格的规则化操作。而且这套操作是 O(n³) 的 —— n 个未知数时,全世界最快的算法也只能做到这个量级。