“对 $(x,z)$ 做二元消元,找到生成元乘积的系数,再实际相乘核对符号。如果乘积为 $M$,结果确定为 $+1$;若为 $ M$,结果为 $ 1$,状态无需改变。这里也包括 $M=\pm…”
形式陈述
域
反复变换可得到行阶梯形:零行位于底部,每个非零行的首个非零元称为主元,下一行的主元位于上一行主元的右侧。继续使主元为
两个同型矩阵行等价,当且仅当它们有相同 RREF,也等价于行空间相同。
一个有限的 Gauss–Jordan 过程
输入是可以执行精确域运算的
- 在第
行及以下寻找 。若没有,就跳过本列;若有,可固定选择行号最小的一项 - 交换第
行,再把第 行除以它在第 列的非零主元 - 对每个
,从第 行减去 倍的主元行,使本列除主元外全为零 - 令
;所有行都已成为主元行时结束,否则继续扫描下一列
每个主元行在此前主元列上已经为零,所以后续操作不会破坏已完成的主元列。列数和行数有限,过程必终止;零矩阵直接跳过全部列。输入增广矩阵时,要保留系数列与右端列的分界:右端列上的孤立主元表示矛盾行,不是一个未知量的主元。
直觉
行变换是在不改变方程约束集合的前提下重写方程:把冗余和依赖逐步显露,最终让主变量与自由变量一目了然。
例如“第二个方程减去第一个方程的两倍”可以用相反的加法还原。每一步都可逆,原方程组与化简后的方程组便表达同一组约束。出现零行意味着某个方程可由其他方程组合得到;出现主元则留下一个独立约束。
例子与边界
从主元读出解
对增广矩阵
第二行减去第一行的两倍后成为零行,系数矩阵只有一个主元,秩为
若把原来第二行的右端项由
行变换如何改变矩阵
行变换保持行空间,也保持列之间的线性依赖关系,因此保持秩。列向量本身则会随左乘的初等矩阵移动。例如把
对方阵,交换两行使行列式变号,一行乘以
列变换对应未知变量的坐标替换。例如交换系数矩阵的两列,就要同时交换这两个变量的位置。用列变换求解时,把这些替换记录下来,才能将最后的坐标还原为原未知量。
精确消元与浮点消元
精确代数中,每个非零主元都可以用来做除法。浮点消元还要考虑尺度:除以很小的主元可能产生很大的消元倍数,放大舍入误差。选主元与增长因子用于分析并控制这种误差传播。
推论与应用
行化简统一处理线性方程组的可解性、参数解与秩。把自由变量依次取为标准坐标,可以从齐次方程的参数解中读出核的一组基;把可逆矩阵的增广块
完整 RREF 适合展示规范形和参数解。大型浮点方阵求解通常使用带主元的 Gaussian 消元或 LU 因子,再以回代求解;同一系数矩阵对应多个右端项时,保存的因子还可以重复使用。
在Horton圈基算法中,每条候选圈是一行二元边向量,消元只需异或主元行。剩余为零表示该圈已在旧张成内;非零剩余给新主元。用于消元的剩余向量可能是多个圈的并,输出时仍须保留被接受的原简单圈及其边ID。
参考资料
- Gilbert Strang, Introduction to Linear Algebra, 6th ed., Wellesley-Cambridge Press, 2023,Chs. 2–3, elimination, echelon forms, and complete solutions of Ax=b。
- Michael Artin, Algebra, 2nd ed., Pearson, 2011,Ch. 1, row operations and reduced echelon matrices。