线性代数 - 矩阵求逆

线性代数 - 矩阵求逆

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 。

  1. 前提:只有可逆方阵才有逆矩阵,非方阵或行列式=0的方阵(奇异矩阵)都没有逆矩阵。
  2. 作用 :"还原",比如用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),这在解线性方程组时特别常用。
  3. 唯一性:一个可逆矩阵的逆矩阵是唯一的,不会有多个不同的逆矩阵。

也可以这么说

设 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⋯1n×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⋮1 n×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}_3A∣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,04-2×2, 3-2×1, 3-2×1, 0-2×1, 1-2×0, 0-2×0 = 0, 1, 1, -2, 1, 04−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,18-4×2, 7-4×1, 9-4×1, 0-4×1, 0-4×0, 1-4×0 = 0, 3, 5, -4, 0, 18−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,10-3×0, 3-3×1, 5-3×1, -4-3×(-2), 0-3×1, 1-3×0 = 0, 0, 2, 2, -3, 10−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,02÷2, 1÷2, 1÷2, 1÷2, 0÷2, 0÷2 = 1, 0.5, 0.5, 0.5, 0, 02÷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.50÷2, 0÷2, 2÷2, 2÷2, -3÷2, 1÷2 = 0, 0, 1, 1, -1.5, 0.50÷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.251-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.251−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.50-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.50−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,01-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, 01−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------因为左边相乘后矩阵的行数、列数,和右边单位矩阵的行数、列数根本对不上,乘法结果不可能是单位矩阵。

非方阵虽然没有"逆矩阵",但在某些场景下会有"伪逆",不过这和"可逆矩阵"不是一回事,不能等同看待。

相关推荐
金色熊族18 小时前
QTransform使用心得(二)--仿射变换、非仿射变换、矩阵
qt·线性代数·矩阵
江畔柳前堤1 天前
github实战指南00-命令在哪里执行?
人工智能·线性代数·oracle·数据挖掘·github·word
江畔柳前堤1 天前
github实战指南05-Fork与开源协作
人工智能·线性代数·oracle·开源·github·word
AI_yangxi2 天前
短视频矩阵系统供应商
大数据·人工智能·矩阵
TCW11212 天前
AI底层系列:用C++实现线性代数的公式推导与算法设计-基础篇-5.矩阵方程
人工智能·线性代数·算法
菜鸡爱玩2 天前
线性代数矩阵相乘
线性代数·算法·矩阵
AI科技星3 天前
第四卷:橡皮泥江湖(拓扑学)――诸同奥义,九同立境贯拓扑
网络·人工智能·线性代数·架构·概率论·学习方法·拓扑学
爱代码的小黄人3 天前
矩阵求逆引理(Sherman-Morrison-Woodbury公式)详解
线性代数·矩阵
菜鸟分享录3 天前
AI 学习路线 03:线性代数、概率统计、梯度下降到底有什么用?
人工智能·线性代数·ai