矩阵求逆的几种方式(以二阶为例)
矩阵求逆的方法有多种,以下是常用的几种方式总结:
1. 行列式公式法
这是最常见的方法,适用于2×22 \times 22×2矩阵。
对于矩阵:
Φ=[abcd],
\Phi =
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix},
Φ=[acbd],
其逆矩阵为:
Φ−1=1det(Φ)[d−b−ca],
\Phi^{-1} = \frac{1}{\text{det}(\Phi)}
\begin{bmatrix}
d & -b \\
-c & a
\end{bmatrix},
Φ−1=det(Φ)1[d−c−ba],
前提是行列式det(Φ)=ad−bc≠0\text{det}(\Phi) = ad - bc \neq 0det(Φ)=ad−bc=0。
2. 伴随矩阵法
适用于任意n×nn \times nn×n矩阵,特别是在符号化计算中常用。
步骤:
计算矩阵的代数余子式,构造伴随矩阵adj(Φ)\text{adj}(\Phi)adj(Φ)。使用公式:
Φ−1=1det(Φ)⋅adj(Φ).
\Phi^{-1} = \frac{1}{\text{det}(\Phi)} \cdot \text{adj}(\Phi).
Φ−1=det(Φ)1⋅adj(Φ).
对于2×22 \times 22×2矩阵:
adj(Φ)=[d−b−ca].
\text{adj}(\Phi) =
\begin{bmatrix}
d & -b \\
-c & a
\end{bmatrix}.
adj(Φ)=[d−c−ba].
以下是**2×22 \times 22×2矩阵伴随矩阵**的推导过程:
2.1. 伴随矩阵定义
给定矩阵:
Φ=[abcd],
\Phi =
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix},
Φ=[acbd],
伴随矩阵adj(Φ)\text{adj}(\Phi)adj(Φ)是Φ\PhiΦ的代数余子式矩阵的转置。
2.2. 求代数余子式
代数余子式AijA_{ij}Aij定义为:
Aij=(−1)i+j⋅Mij,
A_{ij} = (-1)^{i+j} \cdot M_{ij},
Aij=(−1)i+j⋅Mij,
其中MijM_{ij}Mij是去掉矩阵Φ\PhiΦ第iii行、第jjj列后得到的余矩阵的行列式。
对于2×22 \times 22×2矩阵Φ\PhiΦ,每个代数余子式计算如下:
计算A11A_{11}A11:
A11=(−1)1+1⋅det[d]=1⋅d=d.
A_{11} = (-1)^{1+1} \cdot \text{det}\begin{bmatrix} d \end{bmatrix} = 1 \cdot d = d.
A11=(−1)1+1⋅det[d]=1⋅d=d.
计算A12A_{12}A12:
A12=(−1)1+2⋅det[c]=−1⋅c=−c.
A_{12} = (-1)^{1+2} \cdot \text{det}\begin{bmatrix} c \end{bmatrix} = -1 \cdot c = -c.
A12=(−1)1+2⋅det[c]=−1⋅c=−c.
计算A21A_{21}A21:
A21=(−1)2+1⋅det[b]=−1⋅b=−b.
A_{21} = (-1)^{2+1} \cdot \text{det}\begin{bmatrix} b \end{bmatrix} = -1 \cdot b = -b.
A21=(−1)2+1⋅det[b]=−1⋅b=−b.
计算A22A_{22}A22:
A22=(−1)2+2⋅det[a]=1⋅a=a.
A_{22} = (-1)^{2+2} \cdot \text{det}\begin{bmatrix} a \end{bmatrix} = 1 \cdot a = a.
A22=(−1)2+2⋅det[a]=1⋅a=a.
2.3. 构造代数余子式矩阵
将上述代数余子式按原矩阵Φ\PhiΦ的顺序排列,得到代数余子式矩阵:
代数余子式矩阵=[A11A12A21A22]=[d−c−ba].
\text{代数余子式矩阵} =
\begin{bmatrix}
A_{11} & A_{12} \\
A_{21} & A_{22}
\end{bmatrix}
=\begin{bmatrix}
d & -c \\
-b & a
\end{bmatrix}.
代数余子式矩阵=[A11A21A12A22]=[d−b−ca].
2.4. 求伴随矩阵
伴随矩阵是代数余子式矩阵的转置:
adj(Φ)=[d−c−ba]T=[d−b−ca].
\text{adj}(\Phi) =
\begin{bmatrix}
d & -c \\
-b & a\end{bmatrix}^T=
\begin{bmatrix}
d & -b \\
-c & a
\end{bmatrix}.
adj(Φ)=[d−b−ca]T=[d−c−ba].
因此对于2×22 \times 22×2矩阵:
Φ=[abcd],
\Phi =
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix},
Φ=[acbd],
其伴随矩阵为:
adj(Φ)=[d−b−ca].
\text{adj}(\Phi) =
\begin{bmatrix}
d & -b \\
-c & a
\end{bmatrix}.
adj(Φ)=[d−c−ba].
3. 初等行变换法(高斯-约旦消元法)
通过将矩阵扩展为一个分块矩阵:
[Φ∣I],
[\Phi | I],
[Φ∣I],
然后对左边矩阵执行初等行变换,直到其变成单位矩阵III,右侧的矩阵就是逆矩阵Φ−1\Phi^{-1}Φ−1。
以下是利用高斯-约旦消元法求矩阵逆矩阵的详细步骤(以2×22 \times 22×2矩阵为例):
3.1. 问题描述
给定一个2×22 \times 22×2矩阵:
Φ=[abcd],
\Phi =
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix},
Φ=[acbd],
目标是通过初等行变换计算其逆矩阵Φ−1\Phi^{-1}Φ−1。
3.2. 扩展增广矩阵
将Φ\PhiΦ扩展为增广矩阵:
[Φ∣I]=[ab10cd01].
[\Phi | I] =
\begin{bmatrix}
a & b & 1 & 0 \\
c & d & 0 & 1
\end{bmatrix}.
[Φ∣I]=[acbd1001].
目标是通过行变换将左侧矩阵变成单位矩阵III,右侧变成逆矩阵Φ−1\Phi^{-1}Φ−1。
3.3 高斯-约旦消元法步骤
步骤 1:将[1,1][1,1][1,1]位置元素变为1(主元化)
通过行变换使aaa变为1。若a≠0a \neq 0a=0,直接将第1行除以aaa:
R1→R1a,
R_1 \to \frac{R_1}{a},
R1→aR1,
增广矩阵变为:
[1ba1a0cd01].
\begin{bmatrix}
1 & \frac{b}{a} & \frac{1}{a} & 0 \\
c & d & 0 & 1
\end{bmatrix}.
[1cabda1001].
步骤 2:消去第2行的第1列元素
将第2行的第1列元素ccc消为0:
R2→R2−c⋅R1,
R_2 \to R_2 - c \cdot R_1,
R2→R2−c⋅R1,
增广矩阵变为:
[1ba1a00d−bca−ca1].
\begin{bmatrix}
1 & \frac{b}{a} & \frac{1}{a} & 0 \\
0 & d - \frac{bc}{a} & -\frac{c}{a} & 1
\end{bmatrix}.
[10abd−abca1−ac01].
步骤 3:将[2,2][2,2][2,2]位置元素变为1(主元化)
通过行变换使d−bcad - \frac{bc}{a}d−abc变为1。若d−bca≠0d - \frac{bc}{a} \neq 0d−abc=0,将第2行除以该值:
R2→R2d−bca,
R_2 \to \frac{R_2}{d - \frac{bc}{a}},
R2→d−abcR2,
增广矩阵变为:
[1ba1a001−ca(d−bca)1d−bca].
\begin{bmatrix}
1 & \frac{b}{a} & \frac{1}{a} & 0 \\
0 & 1 & \frac{-c}{a(d - \frac{bc}{a})} & \frac{1}{d - \frac{bc}{a}}
\end{bmatrix}.
[10ab1a1a(d−abc)−c0d−abc1].
步骤 4:消去第1行的第2列元素
将第1行的第2列元素ba\frac{b}{a}ab消为0:
R1→R1−ba⋅R2,
R_1 \to R_1 - \frac{b}{a} \cdot R_2,
R1→R1−ab⋅R2,
增广矩阵变为:
[10ddet(Φ)−bdet(Φ)01−cdet(Φ)adet(Φ)],
\begin{bmatrix}
1 & 0 & \frac{d}{\text{det}(\Phi)} & \frac{-b}{\text{det}(\Phi)} \\
0 & 1 & \frac{-c}{\text{det}(\Phi)} & \frac{a}{\text{det}(\Phi)}
\end{bmatrix},
[1001det(Φ)ddet(Φ)−cdet(Φ)−bdet(Φ)a],
其中det(Φ)=ad−bc\text{det}(\Phi) = ad - bcdet(Φ)=ad−bc。
最终,左侧已变成单位矩阵III,右侧即为逆矩阵Φ−1\Phi^{-1}Φ−1:
Φ−1=1det(Φ)[d−b−ca],
\Phi^{-1} =
\frac{1}{\text{det}(\Phi)}
\begin{bmatrix}
d & -b \\
-c & a
\end{bmatrix},
Φ−1=det(Φ)1[d−c−ba],
前提是det(Φ)≠0\text{det}(\Phi) \neq 0det(Φ)=0。
4. 数值计算法(如LU分解法)
对于数值计算,通过矩阵分解技术(如LU分解)来求解逆矩阵:
将矩阵分解为Φ=LU\Phi = LUΦ=LU的形式;分别解两个三角方程,最终获得逆矩阵。
此方法更适合大规模矩阵的计算,但对于2×22 \times 22×2矩阵意义有限。
以下是利用LU分解法求逆矩阵的详细步骤:
4.1. 问题描述
给定一个2×22 \times 22×2矩阵:
Φ=[abcd]
\Phi =
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
Φ=[acbd]
目标是通过LU分解计算其逆矩阵Φ−1\Phi^{-1}Φ−1。
4.2. LU分解概念
LU分解将矩阵Φ\PhiΦ分解为下列形式:
Φ=LU,
\Phi = LU,
Φ=LU,
其中:
LLL为下三角矩阵,主对角线元素为1;UUU为上三角矩阵。
对于2×22 \times 22×2矩阵,分解过程如下:
L=[10l211],U=[u11u120u22].
L =
\begin{bmatrix}
1 & 0 \\
l_{21} & 1
\end{bmatrix},
\quad
U =
\begin{bmatrix}
u_{11} & u_{12} \\
0 & u_{22}
\end{bmatrix}.
L=[1l2101],U=[u110u12u22].
4.3. LU分解步骤
步骤 1:初始化
假设Φ=LU\Phi = LUΦ=LU,则有:
[abcd]=[10l211][u11u120u22].
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix} =
\begin{bmatrix}
1 & 0 \\
l_{21} & 1
\end{bmatrix}
\begin{bmatrix}
u_{11} & u_{12} \\
0 & u_{22}
\end{bmatrix}.
[acbd]=[1l2101][u110u12u22].
通过矩阵乘法,得到:
[abcd]=[u11u12l21u11l21u12+u22].
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix} =
\begin{bmatrix}
u_{11} & u_{12} \\
l_{21} u_{11} & l_{21} u_{12} + u_{22}
\end{bmatrix}.
[acbd]=[u11l21u11u12l21u12+u22].
步骤 2:逐元素比较,确定LLL和UUU的元素
比较[1,1][1,1][1,1]位置元素:
u11=a.u_{11} = a.u11=a.比较[1,2][1,2][1,2]位置元素:
u12=b.u_{12} = b.u12=b.比较[2,1][2,1][2,1]位置元素:
l21=cu11=ca.l_{21} = \frac{c}{u_{11}} = \frac{c}{a}.l21=u11c=ac.比较[2,2][2,2][2,2]位置元素:
u22=d−l21u12=d−ca⋅b.u_{22} = d - l_{21} u_{12} = d - \frac{c}{a} \cdot b.u22=d−l21u12=d−ac⋅b.
最终得到:
L=[10ca1],U=[ab0d−bca].
L =
\begin{bmatrix}
1 & 0 \\
\frac{c}{a} & 1
\end{bmatrix},
\quad
U =
\begin{bmatrix}
a & b \\
0 & d - \frac{bc}{a}
\end{bmatrix}.
L=[1ac01],U=[a0bd−abc].
4. 求逆矩阵Φ−1\Phi^{-1}Φ−1
LU分解完成后,通过分块求逆的方式得到结果。
步骤 1:解LY=ILY = ILY=I(前向替代)
将Φ−1\Phi^{-1}Φ−1分为两部分:
LY=[10ca1][y11y12y21y22]=[1001].
LY =
\begin{bmatrix}
1 & 0 \\
\frac{c}{a} & 1
\end{bmatrix}
\begin{bmatrix}
y_{11} & y_{12} \\
y_{21} & y_{22}
\end{bmatrix} =
\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}.
LY=[1ac01][y11y21y12y22]=[1001].
逐行解得:
第1行:
y11=1,y12=0.y_{11} = 1, \quad y_{12} = 0.y11=1,y12=0.第2行:
y21=−ca,y22=1.y_{21} = -\frac{c}{a}, \quad y_{22} = 1.y21=−ac,y22=1.
因此:
Y=[10−ca1].
Y =
\begin{bmatrix}
1 & 0 \\
-\frac{c}{a} & 1
\end{bmatrix}.
Y=[1−ac01].
步骤 2:解UZ=YUZ = YUZ=Y(后向替代)
[ab0d−bca][z11z12z21z22]=[10−ca1].
\begin{bmatrix}
a & b \\
0 & d - \frac{bc}{a}
\end{bmatrix}
\begin{bmatrix}
z_{11} & z_{12} \\
z_{21} & z_{22}
\end{bmatrix} =
\begin{bmatrix}
1 & 0 \\
-\frac{c}{a} & 1
\end{bmatrix}.
[a0bd−abc][z11z21z12z22]=[1−ac01].
逐行解得:
第2行:
z21=−cad−bca=−cad−bc,z22=1d−bca=aad−bc.z_{21} = \frac{-\frac{c}{a}}{d - \frac{bc}{a}} = \frac{-c}{ad - bc}, \quad z_{22} = \frac{1}{d - \frac{bc}{a}} = \frac{a}{ad - bc}.z21=d−abc−ac=ad−bc−c,z22=d−abc1=ad−bca.第1行:
z11=1−b⋅z21a=dad−bc,z12=0−b⋅z22a=−bad−bc.z_{11} = \frac{1 - b \cdot z_{21}}{a} = \frac{d}{ad - bc}, \quad z_{12} = \frac{0 - b \cdot z_{22}}{a} = \frac{-b}{ad - bc}.z11=a1−b⋅z21=ad−bcd,z12=a0−b⋅z22=ad−bc−b.
最终得到:
Z=[dad−bc−bad−bc−cad−bcaad−bc].
Z =
\begin{bmatrix}
\frac{d}{ad - bc} & \frac{-b}{ad - bc} \\
\frac{-c}{ad - bc} & \frac{a}{ad - bc}
\end{bmatrix}.
Z=[ad−bcdad−bc−cad−bc−bad−bca].
因此,逆矩阵为:
Φ−1=Z=1det(Φ)[d−b−ca].
\Phi^{-1} = Z =
\frac{1}{\text{det}(\Phi)}
\begin{bmatrix}
d & -b \\
-c & a
\end{bmatrix}.
Φ−1=Z=det(Φ)1[d−c−ba].
LU分解法通过矩阵分解简化了求解逆矩阵的过程,特别是对于高维矩阵,通过分解后的前向替代和后向替代显著提高了计算效率。
5. 符号化工具或计算机软件
如使用数学软件(Matlab、NumPy)直接调用内置函数:
NumPy: np.linalg.inv(Phi)Matlab: inv(Phi)
这类方法内部可能实现了上述的数值算法,适合工程计算。
6. 定义验证法
利用逆矩阵的定义ΦΦ−1=I\Phi \Phi^{-1} = IΦΦ−1=I,通过代数方程的形式验证或构造满足该条件的矩阵。
例如,对于简单的2×22 \times 22×2矩阵,可以手动解联立方程组获得逆矩阵。
6.1. 问题描述
给定一个2×22 \times 22×2矩阵:
Φ=[abcd],
\Phi =
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix},
Φ=[acbd],
我们要求矩阵Φ\PhiΦ的逆矩阵Φ−1\Phi^{-1}Φ−1,并利用定义ΦΦ−1=I\Phi \Phi^{-1} = IΦΦ−1=I来求解。
我们假设Φ−1\Phi^{-1}Φ−1为:
Φ−1=[xyzw].
\Phi^{-1} =
\begin{bmatrix}
x & y \\
z & w
\end{bmatrix}.
Φ−1=[xzyw].
6.2. 利用矩阵乘法公式
根据定义ΦΦ−1=I\Phi \Phi^{-1} = IΦΦ−1=I,我们可以写出方程:
[abcd][xyzw]=[1001].
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
\begin{bmatrix}
x & y \\
z & w
\end{bmatrix}
=\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}.
[acbd][xzyw]=[1001].
进行矩阵乘法,得到:
[ax+bzay+bwcx+dzcy+dw]=[1001].
\begin{bmatrix}
ax + bz & ay + bw \\
cx + dz & cy + dw
\end{bmatrix}
=\begin{bmatrix}
1 & 0 \\
0 & 1
\end{bmatrix}.
[ax+bzcx+dzay+bwcy+dw]=[1001].
6.3. 通过逐元素比较构造方程
从上面的等式中,我们得到以下4个方程:
第一行第一列:
ax+bz=1. ax + bz = 1. ax+bz=1.
第一行第二列:
ay+bw=0. ay + bw = 0. ay+bw=0.
第二行第一列:
cx+dz=0. cx + dz = 0. cx+dz=0.
第二行第二列:
cy+dw=1. cy + dw = 1. cy+dw=1.
这些方程构成了一个线性方程组,接下来我们解这个方程组。
6.4. 解联立方程组
为了得到x,y,z,wx, y, z, wx,y,z,w的值,我们可以按照以下步骤进行解算。
步骤 1:解第3个方程
从第3个方程:
cx+dz=0, cx + dz = 0, cx+dz=0,
解得:
z=−cdx. z = -\frac{c}{d}x. z=−dcx.
步骤 2:代入第1个方程
将z=−cdxz = -\frac{c}{d}xz=−dcx代入第1个方程:
ax+b(−cdx)=1, ax + b\left(-\frac{c}{d}x\right) = 1, ax+b(−dcx)=1,
得到:
ax−bcdx=1. ax - \frac{bc}{d}x = 1. ax−dbcx=1.
提取xxx,得到:
x(a−bcd)=1. x\left(a - \frac{bc}{d}\right) = 1. x(a−dbc)=1.
因此:
x=dad−bc. x = \frac{d}{ad - bc}. x=ad−bcd.
步骤 3:解第4个方程
从第4个方程:
cy+dw=1, cy + dw = 1, cy+dw=1,
解得:
w=1−cyd. w = \frac{1 - cy}{d}. w=d1−cy.
步骤 4:代入第2个方程
将w=1−cydw = \frac{1 - cy}{d}w=d1−cy代入第2个方程:
ay+b(1−cyd)=0, ay + b\left(\frac{1 - cy}{d}\right) = 0, ay+b(d1−cy)=0,
得到:
ay+b(1−cy)d=0, ay + \frac{b(1 - cy)}{d} = 0, ay+db(1−cy)=0,
整理后:
ay+bd−bcdy=0. ay + \frac{b}{d} - \frac{bc}{d}y = 0. ay+db−dbcy=0.
提取yyy,得到:
y(a−bcd)=−bd. y\left(a - \frac{bc}{d}\right) = -\frac{b}{d}. y(a−dbc)=−db.
因此:
y=−bad−bc. y = \frac{-b}{ad - bc}. y=ad−bc−b.
步骤 5:解www
将y=−bad−bcy = \frac{-b}{ad - bc}y=ad−bc−b代入w=1−cydw = \frac{1 - cy}{d}w=d1−cy:
w=1−c(−bad−bc)d=dad−bc. w = \frac{1 - c\left(\frac{-b}{ad - bc}\right)}{d} = \frac{d}{ad - bc}. w=d1−c(ad−bc−b)=ad−bcd.
#3## 6.5. 最终结果
通过以上步骤,我们得到了Φ−1\Phi^{-1}Φ−1的各个元素:
Φ−1=[dad−bc−bad−bc−cad−bcaad−bc].
\Phi^{-1} =
\begin{bmatrix}
\frac{d}{ad - bc} & \frac{-b}{ad - bc} \\
\frac{-c}{ad - bc} & \frac{a}{ad - bc}
\end{bmatrix}.
Φ−1=[ad−bcdad−bc−cad−bc−bad−bca].
利用逆矩阵的定义ΦΦ−1=I\Phi \Phi^{-1} = IΦΦ−1=I,我们通过构造并解联立方程组的方法成功求得了2×22 \times 22×2矩阵的逆矩阵。该方法虽然手动推导较为繁琐,但对于理解逆矩阵的性质和计算过程具有重要的理论意义。
7. 比较总结
方法特点适用场景行列式公式法直接计算,简单明了小规模矩阵伴随矩阵法适用于符号化求解,但计算代数余子式较繁琐手动推导或符号化运算初等行变换法理论基础强,操作灵活理论学习与推导数值计算法效率高,适合大矩阵工程计算与编程实现符号化工具或函数快捷简洁,依赖工具实际工程问题求解定义验证法基础方法,计算量较大理论验证与构造