线性代数 - 矩阵求逆
线性代数 - 矩阵求逆
flyfish
逆矩阵
逆矩阵就是可逆方阵的“倒数”,对于方阵A\mathbf{A}A,如果存在一个方阵A−1\mathbf{A}^{-1}A−1,满足A×A−1=A−1×A=I\mathbf{A} \times \mathbf{A}^{-1} = \mathbf{A}^{-1} \times \mathbf{A} = \mathbf{I}A×A−1=A−1×A=I,那A−1\mathbf{A}^{-1}A−1就是A\mathbf{A}A的逆矩阵。
I\mathbf{I}I是单位矩阵,相当于数字里的“1”,单位矩阵是一种特殊的方阵,:主对角线(从左上到右下)上的元素全是1,其余位置的元素全是0。
比如3阶单位矩阵I3=[100010001]\mathbf{I}_3 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}I3=100010001
它的作用类似数字“1”——任何矩阵和它相乘,结果都等于原矩阵(前提是乘法规则允许)
矩阵A=[211433879]\mathbf{A} = \begin{bmatrix} 2 & 1 & 1 \\ 4 & 3 & 3 \\ 8 & 7 & 9 \end{bmatrix}A=248137139(行列式=4≠0,可逆),它的逆矩阵A−1\mathbf{A}^{-1}A−1就满足A×A−1=[100010001]\mathbf{A} \times \mathbf{A}^{-1} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}A×A−1=100010001。
- 前提:只有可逆方阵才有逆矩阵,非方阵或行列式=0的方阵(奇异矩阵)都没有逆矩阵。
 - 作用:“还原”,比如用A\mathbf{A}A把向量x\mathbf{x}x变成y\mathbf{y}y(y=Ax\mathbf{y}=\mathbf{A}\mathbf{x}y=Ax),用A−1\mathbf{A}^{-1}A−1乘y\mathbf{y}y就能变回x\mathbf{x}x(x=A−1y\mathbf{x}=\mathbf{A}^{-1}\mathbf{y}x=A−1y),这在解线性方程组时特别常用。
 - 唯一性:一个可逆矩阵的逆矩阵是唯一的,不会有多个不同的逆矩阵。
 
也可以这么说
设 A\mathbf{A}A 为 nnn 阶方阵(行数=列数=nnn),若存在 nnn 阶方阵 A−1\mathbf{A}^{-1}A−1,满足:
A×A−1=A−1×A=In\mathbf{A} \times \mathbf{A}^{-1} = \mathbf{A}^{-1} \times \mathbf{A} = \mathbf{I}_nA×A−1=A−1×A=In
其中 In\mathbf{I}_nIn 为 nnn 阶单位矩阵,形式为:
In=[10⋯001⋯0⋮⋮⋱⋮00⋯1]n×n\mathbf{I}_n = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{bmatrix}_{n \times n}In=10⋮001⋮0⋯⋯⋱⋯00⋮1n×n
则 A−1\mathbf{A}^{-1}A−1 称为 A\mathbf{A}A 的逆矩阵。
计算过程
计算矩阵A=[211433879]\mathbf{A} = \begin{bmatrix} 2 & 1 & 1 \\ 4 & 3 & 3 \\ 8 & 7 & 9 \end{bmatrix}A=248137139的逆矩阵
构造增广矩阵[A∣I3][\mathbf{A} \mid \mathbf{I}_3][A∣I3],通过初等行变换把左边的A\mathbf{A}A变成单位矩阵I3\mathbf{I}_3I3,此时右边的I3\mathbf{I}_3I3就变成了A−1\mathbf{A}^{-1}A−1。
第一步:构造初始增广矩阵
把A\mathbf{A}A和3阶单位矩阵I3\mathbf{I}_3I3拼接,得到:
[A∣I3]=[211⋮100433⋮010879⋮001]
[\mathbf{A} \mid \mathbf{I}_3] = \begin{bmatrix} 2 & 1 & 1 & \vdots & 1 & 0 & 0 \\ 4 & 3 & 3 & \vdots & 0 & 1 & 0 \\ 8 & 7 & 9 & \vdots & 0 & 0 & 1 \end{bmatrix}
[A∣I3]=248137139⋮⋮⋮100010001
第二步:消去第1列下方的非零元素(目标:第1列只有第1行非零)
行变换操作:r2=r2−2r1r_2 = r_2 - 2r_1r2=r2−2r1(第2行减去第1行的2倍)、r3=r3−4r1r_3 = r_3 - 4r_1r3=r3−4r1(第3行减去第1行的4倍)
计算过程:
- r2r_2r2新值:[4−2×2,3−2×1,3−2×1,0−2×1,1−2×0,0−2×0]=[0,1,1,−2,1,0][4-2×2, 3-2×1, 3-2×1, 0-2×1, 1-2×0, 0-2×0] = [0, 1, 1, -2, 1, 0][4−2×2,3−2×1,3−2×1,0−2×1,1−2×0,0−2×0]=[0,1,1,−2,1,0]
 - r3r_3r3新值:[8−4×2,7−4×1,9−4×1,0−4×1,0−4×0,1−4×0]=[0,3,5,−4,0,1][8-4×2, 7-4×1, 9-4×1, 0-4×1, 0-4×0, 1-4×0] = [0, 3, 5, -4, 0, 1][8−4×2,7−4×1,9−4×1,0−4×1,0−4×0,1−4×0]=[0,3,5,−4,0,1]
 
变换后矩阵:
[211⋮100011⋮−210035⋮−401]
\begin{bmatrix} 2 & 1 & 1 & \vdots & 1 & 0 & 0 \\ 0 & 1 & 1 & \vdots & -2 & 1 & 0 \\ 0 & 3 & 5 & \vdots & -4 & 0 & 1 \end{bmatrix}
200113115⋮⋮⋮1−2−4010001
第三步:消去第2列下方的非零元素(目标:第2列只有第2行非零)
行变换操作:r3=r3−3r2r_3 = r_3 - 3r_2r3=r3−3r2(第3行减去第2行的3倍)
计算过程:
- r3r_3r3新值:[0−3×0,3−3×1,5−3×1,−4−3×(−2),0−3×1,1−3×0]=[0,0,2,2,−3,1][0-3×0, 3-3×1, 5-3×1, -4-3×(-2), 0-3×1, 1-3×0] = [0, 0, 2, 2, -3, 1][0−3×0,3−3×1,5−3×1,−4−3×(−2),0−3×1,1−3×0]=[0,0,2,2,−3,1]
 
变换后矩阵:
[211⋮100011⋮−210002⋮2−31]
\begin{bmatrix} 2 & 1 & 1 & \vdots & 1 & 0 & 0 \\ 0 & 1 & 1 & \vdots & -2 & 1 & 0 \\ 0 & 0 & 2 & \vdots & 2 & -3 & 1 \end{bmatrix}
200110112⋮⋮⋮1−2201−3001
第四步:将主对角线元素化为1(目标:第1、2、3行主对角线元素都是1)
行变换操作:r1=r1÷2r_1 = r_1 ÷ 2r1=r1÷2(第1行除以2)、r3=r3÷2r_3 = r_3 ÷ 2r3=r3÷2(第3行除以2)
计算过程:
- r1r_1r1新值:[2÷2,1÷2,1÷2,1÷2,0÷2,0÷2]=[1,0.5,0.5,0.5,0,0][2÷2, 1÷2, 1÷2, 1÷2, 0÷2, 0÷2] = [1, 0.5, 0.5, 0.5, 0, 0][2÷2,1÷2,1÷2,1÷2,0÷2,0÷2]=[1,0.5,0.5,0.5,0,0]
 - r3r_3r3新值:[0÷2,0÷2,2÷2,2÷2,−3÷2,1÷2]=[0,0,1,1,−1.5,0.5][0÷2, 0÷2, 2÷2, 2÷2, -3÷2, 1÷2] = [0, 0, 1, 1, -1.5, 0.5][0÷2,0÷2,2÷2,2÷2,−3÷2,1÷2]=[0,0,1,1,−1.5,0.5]
 
变换后矩阵:
[10.50.5⋮0.500011⋮−210001⋮1−1.50.5]
\begin{bmatrix} 1 & 0.5 & 0.5 & \vdots & 0.5 & 0 & 0 \\ 0 & 1 & 1 & \vdots & -2 & 1 & 0 \\ 0 & 0 & 1 & \vdots & 1 & -1.5 & 0.5 \end{bmatrix}
1000.5100.511⋮⋮⋮0.5−2101−1.5000.5
第五步:消去主对角线上方的非零元素(目标:上三角区域全为0)
第一步:消去第3列上方非零元素(第1、2行的第3列)
行变换操作:r1=r1−0.5r3r_1 = r_1 - 0.5r_3r1=r1−0.5r3(第1行减去第3行的0.5倍)、r2=r2−r3r_2 = r_2 - r_3r2=r2−r3(第2行减去第3行的1倍)
计算过程:
- r1r_1r1新值:[1−0.5×0,0.5−0.5×0,0.5−0.5×1,0.5−0.5×1,0−0.5×(−1.5),0−0.5×0.5]=[1,0.5,0,0,0.75,−0.25][1-0.5×0, 0.5-0.5×0, 0.5-0.5×1, 0.5-0.5×1, 0-0.5×(-1.5), 0-0.5×0.5] = [1, 0.5, 0, 0, 0.75, -0.25][1−0.5×0,0.5−0.5×0,0.5−0.5×1,0.5−0.5×1,0−0.5×(−1.5),0−0.5×0.5]=[1,0.5,0,0,0.75,−0.25]
 - r2r_2r2新值:[0−1×0,1−1×0,1−1×1,−2−1×1,1−1×(−1.5),0−1×0.5]=[0,1,0,−3,2.5,−0.5][0-1×0, 1-1×0, 1-1×1, -2-1×1, 1-1×(-1.5), 0-1×0.5] = [0, 1, 0, -3, 2.5, -0.5][0−1×0,1−1×0,1−1×1,−2−1×1,1−1×(−1.5),0−1×0.5]=[0,1,0,−3,2.5,−0.5]
 
变换后矩阵:
[10.50⋮00.75−0.25010⋮−32.5−0.5001⋮1−1.50.5]
\begin{bmatrix} 1 & 0.5 & 0 & \vdots & 0 & 0.75 & -0.25 \\ 0 & 1 & 0 & \vdots & -3 & 2.5 & -0.5 \\ 0 & 0 & 1 & \vdots & 1 & -1.5 & 0.5 \end{bmatrix}
1000.510001⋮⋮⋮0−310.752.5−1.5−0.25−0.50.5
第二步:消去第2列上方非零元素(第1行的第2列)
行变换操作:r1=r1−0.5r2r_1 = r_1 - 0.5r_2r1=r1−0.5r2(第1行减去第2行的0.5倍)
计算过程:
- r1r_1r1新值:[1−0.5×0,0.5−0.5×1,0−0.5×0,0−0.5×(−3),0.75−0.5×2.5,−0.25−0.5×(−0.5)]=[1,0,0,1.5,−0.5,0][1-0.5×0, 0.5-0.5×1, 0-0.5×0, 0-0.5×(-3), 0.75-0.5×2.5, -0.25-0.5×(-0.5)] = [1, 0, 0, 1.5, -0.5, 0][1−0.5×0,0.5−0.5×1,0−0.5×0,0−0.5×(−3),0.75−0.5×2.5,−0.25−0.5×(−0.5)]=[1,0,0,1.5,−0.5,0]
 
第六步:得到最终结果(左侧化为I3\mathbf{I}_3I3,右侧即为A−1\mathbf{A}^{-1}A−1)
最终增广矩阵:
[I3∣A−1]=[100⋮1.5−0.50010⋮−32.5−0.5001⋮1−1.50.5]
[\mathbf{I}_3 \mid \mathbf{A}^{-1}] = \begin{bmatrix} 1 & 0 & 0 & \vdots & 1.5 & -0.5 & 0 \\ 0 & 1 & 0 & \vdots & -3 & 2.5 & -0.5 \\ 0 & 0 & 1 & \vdots & 1 & -1.5 & 0.5 \end{bmatrix}
[I3∣A−1]=100010001⋮⋮⋮1.5−31−0.52.5−1.50−0.50.5
将小数化为分数(更规范),矩阵A\mathbf{A}A的逆矩阵为:
A−1=[32−120−352−121−3212]
\mathbf{A}^{-1} = \begin{bmatrix} \frac{3}{2} & -\frac{1}{2} & 0 \\ -3 & \frac{5}{2} & -\frac{1}{2} \\ 1 & -\frac{3}{2} & \frac{1}{2} \end{bmatrix}
A−1=23−31−2125−230−2121
不是方阵就一定不可逆,逆矩阵的定义要求矩阵A和它的逆矩阵A−1\mathbf{A}^{-1}A−1相乘,结果必须是单位矩阵I,而单位矩阵I本身是方阵(行数=列数)。
从乘法规则来看:如果A是m行n列的非方阵(m≠n),不管 A−1\mathbf{A}^{-1}A−1是什么形状,都没法满足A×A−1=A−1×A=I\mathbf{A} \times \mathbf{A}^{-1} = \mathbf{A}^{-1} \times \mathbf{A} = \mathbf{I}A×A−1=A−1×A=I——因为左边相乘后矩阵的行数、列数,和右边单位矩阵的行数、列数根本对不上,乘法结果不可能是单位矩阵。
非方阵虽然没有“逆矩阵”,但在某些场景下会有“伪逆”,不过这和“可逆矩阵”不是一回事,不能等同看待。
