Gauss-Jordan消元法求矩阵的逆
字数 1231 2025-11-03 00:20:06
Gauss-Jordan消元法求矩阵的逆
题目描述:给定一个n阶可逆方阵A,要求使用Gauss-Jordan消元法计算其逆矩阵A⁻¹。该方法通过将增广矩阵[A | I](其中I是n阶单位矩阵)通过初等行变换化为[I | A⁻¹]的形式,从而直接得到逆矩阵。
解题过程:
-
构造增广矩阵
- 将n阶单位矩阵I放在可逆矩阵A的右侧,构成一个n×2n的增广矩阵:M = [A | I]。
- 目标是通过一系列行变换,将M的左半部分(即A的部分)化为单位矩阵I。根据矩阵理论,此时右半部分即为A的逆矩阵A⁻¹。
-
前向消元:将矩阵A化为上三角矩阵
- 从第1列开始,到第n列结束,依次将主对角线元素(称为主元)下方的元素消为0。
- 对于第k列(k从1到n):
a. 选主元(增强数值稳定性):在当前列k中,从第k行到第n行寻找绝对值最大的元素所在的行,记为p行。交换第k行和第p行(如果需要)。这可以避免使用过小的数作为除数,减少计算误差。
b. 归一化主元行:将第k行除以主元M[k,k],使得主对角线元素变为1。注意,此时需要将整行都进行除法运算,包括右半部分(即单位矩阵部分)。- 操作:
M[k, :] = M[k, :] / M[k, k]
c. 消去下方元素:对于第k行以下的所有行i(i从k+1到n),将第i行减去第k行的M[i,k]倍,使得第k列在第i行位置的元素变为0。 - 操作:
M[i, :] = M[i, :] - M[i, k] * M[k, :]
- 操作:
- 完成前向消元后,矩阵M的左半部分(即原矩阵A的位置)变成了一个主对角线上元素全为1的上三角矩阵。
-
后向消元:将上三角矩阵化为单位矩阵
- 从第n列开始,到第1列结束(即从下往上,从右往左),依次将主对角线上方的元素消为0。
- 对于第k列(k从n到1,步长为-1):
a. 消去上方元素:对于第k行以上的所有行i(i从k-1到1,步长为-1),将第i行减去第k行的M[i,k]倍,使得第k列在第i行位置的元素变为0。- 操作:
M[i, :] = M[i, :] - M[i, k] * M[k, :] - 注意:此时第k行的主对角线元素已经是1,并且该列下方元素已为0(在前向消元中完成),上方元素即将被消为0。
- 操作:
-
提取逆矩阵
- 经过上述所有行变换,原增广矩阵M的左半部分已经变成了单位矩阵I,而右半部分就是矩阵A的逆矩阵A⁻¹。
- 即,最终M的形态为[I | A⁻¹]。从M中取出右半部分的n×n矩阵,即为所求的逆矩阵。
关键点:
- 整个过程只允许使用初等行变换。
- 选主元操作对于数值稳定性至关重要,特别是在计算机求解时。
- 最终目标是左半部分变为单位矩阵,如果无法实现(例如出现全0行),则说明原矩阵A是奇异的(不可逆)。
通过以上步骤,我们系统地利用行变换将原矩阵“清除”为单位矩阵,同时这些变换作用在旁边的单位矩阵上,就“记录”下了逆矩阵的变换过程,最终直接得到逆矩阵。