线性方程组与高斯消元
层级:A|必学
1. 为什么线性方程组是核心问题
最小二乘的正规方程、线性回归闭式解、概率图模型中的高斯推断和许多数值优化步骤,最终都要解
理解“有无解、解是否唯一、怎样稳定求解”比熟练手算大矩阵更重要。
2. 从方程到矩阵
方程组
写成
矩阵每行对应一个方程,每列对应一个未知量。增广矩阵把常数列并在右侧:
3. 三种基本行变换
对方程做以下操作不改变解集:
- 交换两行;
- 某一行乘非零常数;
- 某一行加上另一行的倍数。
它们分别对应交换方程、等式两边同乘非零数、一个方程加上另一个方程的倍数。
4. 高斯消元
目标是通过行变换把矩阵化为阶梯形,再回代求解。以上例为例,先交换两行:
第二行减去第一行两倍:
由第二行 ,代入第一行得 。
若继续把主元化为 1,并消去主元上方元素,得到简化行阶梯形,这称 Gauss–Jordan 消元。实际数值求解通常不必消到最彻底。
5. 主元与自由变量
阶梯形中每个非零行最左侧的非零位置称主元位置。对应列是主元列,对应变量是基本变量;没有主元的列对应自由变量。
例:
中 是基本变量, 自由。令 :
因此有无穷多个解,解集是一条仿射直线。
6. 无解、唯一解、无穷多解
消元后:
- 若出现 且 ,表示 ,无解;
- 若每个未知量列都有主元,且无矛盾行,解唯一;
- 若无矛盾但存在自由变量,有无穷多解。
用秩表示:
这里 是未知量个数。
7. 几何解释
每个二维线性方程是一条直线:两条直线相交一点、平行不交或完全重合,分别对应唯一解、无解、无穷多解。
另一种解释是列组合: 问的是“ 能否由 的列线性组合得到”。若 不在列空间中,无解;若表示唯一,唯一解;若列向量相关,同一个 可能有多种系数表示。
8. 齐次方程
总有零解。若还有非零解,则矩阵列线性相关。所有解构成零空间。对方阵而言,以下性质等价:
- 齐次方程只有零解;
- 列线性无关;
- 矩阵满秩;
- 行列式非零;
- 矩阵可逆。
这组等价关系是线性代数的主干。
9. 超定系统与最小二乘
机器学习通常有 :方程多于未知参数。真实数据含噪声, 往往没有精确解。于是改求
最优预测 是 在 列空间上的投影,残差与列空间正交,从而得到正规方程
数值实现通常用 QR、SVD 或专用最小二乘求解器,不直接构造逆矩阵。
10. 欠定系统
若未知量多于独立方程,通常有无穷多解。伪逆可以选 Euclidean 范数最小的解;L1 正则化可偏向稀疏解;先验或业务约束也能从众多解中选择。
“数据能拟合”不表示参数被唯一确定,这是高维建模的重要区别。
11. 数值稳定性与主元选择
理论上任何非零主元都能消元;浮点计算中若主元很小,除法会放大舍入误差。部分主元法在当前列选择绝对值最大的候选行交换上来。成熟线性代数库还会使用块算法和硬件优化。
不要自己为生产问题编写朴素高斯消元,除非是教学或有特殊结构。
易错点
- 方程数等于未知量数不保证唯一解,仍需满秩。
- 行变换保持解集,但一般会改变矩阵特征值等其他性质。
- 无解不表示问题无法近似,可改求最小二乘。
- 正规方程有理论意义,但数值上可能平方条件数。
- 直接求 通常不如解线性系统。
常见问答
Q1:为什么机器学习很少手算高斯消元?
实际矩阵规模大且有数值误差,需要优化过的分解算法。但高斯消元帮助理解解的结构、秩和自由变量。
Q2:有无穷多解时训练如何返回一个?
优化器初始化、隐式偏好、伪逆、正则化或早停会选择某个解。不同算法可能产生相同训练预测但不同参数。
Q3:solve(A,b) 与 inv(A)@b 有何区别?
前者直接通过分解解方程,通常更快、更稳定;后者先计算完整逆矩阵,做了不必要工作并放大误差。
练习
- 解 。
- 方程组消元后出现 ,说明什么?
- 有 5 列、秩为 3,若 相容,有多少个自由变量?
- 解释为什么 不在 的列空间时方程无解。
- 为什么 无解时可用最小二乘?
答案与提示
- 。
- 矛盾 ,无解。
- 2 个。
- 的所有可能值正是列空间,若 不在其中无法到达。
- 它寻找列空间中离 最近的点,而非要求精确相等。