文章

逆矩阵计算

逆矩阵计算

逆矩阵计算

1. 前置定义

行列式

  • 矩阵A的行列式记作 $\left|A\right|$ 或者 $det(A)$ 或者 $det A$
  • 几何意义为所处空间单位区域的缩放倍数
    • 对于二维空间来说, 即基于组成矩阵$A$的两个向量组成的平行四边形面积.
    • 对于三维空间来说, 即基于组成矩阵$A$的三个向量组成的空间体积.

余子式

  • 对任意方阵 $A$, ${A}_{ij}$ 表示通过删去 $A$ 中第 $i$ 行和第 $j$ 列而得到的子矩阵

  • 例如方阵:

    \[A= \left[ \begin{array}{c|cc} {a}_{11}&{a}_{12}&{a}_{13}\\ \hline {a}_{21}&{a}_{22}&{a}_{23}\\{a}_{31}&{a}_{32}&{a}_{33} \end{array} \right] , {A}_{11}= \left[ \begin{matrix} {a}_{22}&{a}_{23}\\{a}_{32}&{a}_{33} \end{matrix} \right],\]
  • ${A}_{ij}$ 的行列式—–$det{A}_{ij}$即为 ${a}_{ij}$ 的余子式.

代数余子式(余因子)

  • 简单来说, 将矩阵 $A$ 的 $(i,j)$ 余子式乘以 ${(-1)}^{i+j}$ 即为代数余子式, 也称为矩阵 $A$ 的$(i,j)$ 的余因子 ${C}_{ij}$
\[{C}_{ij}={(-1)}^{i+j}det{A}_{ij}\]

伴随矩阵

  • 由矩阵 $A$ 中的每一个元素的代数余子式(余因子)构成的矩阵的转置矩阵称为矩阵 $A$ 的伴随矩阵 ${A}^{*}$

    \[{B}= \left[ \begin{matrix} {C}_{11}&{C}_{12}&{C}_{13}&\cdots&{C}_{1j}\\ {C}_{21}&{C}_{22}&{C}_{23}&\cdots&{C}_{2j}\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ {C}_{i1}&{C}_{i2}&{C}_{i3}&\cdots&{C}_{ij} \end{matrix} \right], {A}^{*}={B}^{T}= \left[ \begin{matrix} {C}_{11}&{C}_{21}&{C}_{31}&\cdots&{C}_{i1}\\ {C}_{12}&{C}_{22}&{C}_{32}&\cdots&{C}_{i2}\\ \vdots&\vdots&\vdots&\ddots&\vdots\\ {C}_{1j}&{C}_{2j}&{C}_{3j}&\cdots&{C}_{ij} \end{matrix} \right],\]

如何计算行列式

  • 代数余子式法

    在矩阵 $A$ 中任选一行/列, 有

    \[detA={a}_{i'1}*{C}_{i'1}+{a}_{i'2}*{C}_{i'2}+...+{a}_{i'j}*{C}_{i'j}\]

    或者

    \[detA={a}_{1j'}*{C}_{1j'}+{a}_{2j'}*{C}_{2j'}+...+{a}_{ij'}*{C}_{ij'}\]

    其中, $i’$和$j’$, 分别是小于等于$i$大于等于$1$, 和小于等于$j$大于等于$1$的任意整数.

  • 基于代数余子式法, 那么我们只需要使用”行变换”, 让大部分的元素为0, 即变为三角阵, 即可简化运算

    • 行变换对于$detA$的影响如下(A为方阵):

      • $A$ 的某一行的倍数加到另一行得到 $B$ , 则 $detB=detA$ ;
      • 若 $A$ 的两行互换得到 $B$ , 则 $detB=-detA$ ;
      • 若 $A$ 的某行乘以 $k$ 倍得到 $B$ , 则 $detB=k*detA$ ;
    • 若 $A$ 为三角阵, 那么 $detA$ 等于 $A$ 的主对角线上元素的乘积. 即形如

      \[{A}= \left[ \begin{matrix} {a}_{11}&{a}_{12}&{a}_{13}\\0&{a}_{22}&{a}_{23}\\0&0&{a}_{33} \end{matrix} \right]\]

      \(detA={a}_{11}*{a}_{22}*{a}_{33}\) 一般计算机计算 $detA$ 的方式(见«线性代数及其应用»P170中”数值计算的注解”)为

      \(detA = {(-1)}^{r}\cdot(U的主元乘积)\) $r$ 代表行交换的次数,U则代表化简后的三角阵, 主元乘积则等同于 ${a}_{11}{a}_{22}{a}_{33}\cdots{a}_{ij}$

    • 例如:

    \[A= \left[ \begin{matrix} 1&2&3\\1&0&-1\\0&1&1 \end{matrix} \right], 第二行加上(第一行*(-1)),变为 \left[ \begin{matrix} 1&2&3\\0&-2&-4\\0&1&1 \end{matrix} \right],\] \[A= \left[ \begin{matrix} 1&2&3\\0&-2&-4\\0&1&1 \end{matrix} \right], 第三行加上(第二行*(0.5)),变为 \left[ \begin{matrix} 1&2&3\\0&-2&-4\\0&0&-1 \end{matrix} \right],\] \[detA=1*(-2)*(-1)=2\]

2. 逆矩阵

公式推导

矩阵 $A$ 的逆矩阵 ${A}^{-1}$, 为

\[{A}^{-1}=\frac {1} {detA}\cdot {A}^{*}\]

实际运算

在实际手工运算的时候, 一般是采用

\[将增广矩阵 \left[ \begin{matrix} A&I \end{matrix} \right] 进行化简, 若A行等价于I, 则 \left[ \begin{matrix} A&I \end{matrix} \right] 行等价于 \left[ \begin{matrix} I&{A}^{-1} \end{matrix} \right], 否则A没有逆.\]

行等价, 经过初等行变化前后的矩阵为行等价的.

初等行变换包括(见«线性代数及其应用»P6):

  • 把某一行的倍数加在另一行上
  • 把两行对换
  • 把某一行的所有元素乘以同一个非0数

具体过程可以使用逆矩阵运算结果 (reshish.com)网站进行计算和查看.

3. 例子

公式推导

\[A= \left[ \begin{matrix} 1&2&3\\1&0&-1\\0&1&1 \end{matrix} \right], detA=2,\] \[{C}_{11}={(-1)}^{1+1}*(0*1-(-1)*1)=1\] \[{C}_{12}={(-1)}^{1+2}*(1*1-(-1)*0)=-1\] \[{C}_{13}={(-1)}^{1+3}*(1*1-0*0)=1\] \[{C}_{21}={(-1)}^{2+1}*(2*1-3*1)=1\] \[{C}_{22}={(-1)}^{2+2}*(1*1-3*0)=1\] \[{C}_{23}={(-1)}^{2+3}*(1*1-2*0)=-1\] \[{C}_{31}={(-1)}^{3+1}*(2*(-1)-3*0)=-2\] \[{C}_{32}={(-1)}^{3+2}*(1*(-1)-3*1)=4\] \[{C}_{33}={(-1)}^{3+3}*(1*0-2*1)=-2\] \[B= \left[ \begin{matrix} 1&-1&1\\1&1&-1\\-2&4&-2 \end{matrix} \right], {B}^{T}= \left[ \begin{matrix} 1&1&-2\\-1&1&4\\1&-1&-2 \end{matrix} \right]={A}^{*}\] \[{A}^{-1}=\frac {1} {detA} \cdot {A}^{*}=\frac {1} {2} \cdot {B}^{T}= \left[ \begin{matrix} 0.5&0.5&-1\\-0.5&0.5&2\\0.5&-0.5&-1 \end{matrix} \right]\]

实际运算

\[\left[ \begin{matrix} A&I \end{matrix} \right] = \left[ \begin{array}{ccc|ccc} 1&2&3&1&0&0\\1&0&-1&0&1&0\\0&1&1&0&0&1 \end{array} \right]\]

进行初等行变换, 第二行减去第一行

\[\left[ \begin{array}{ccc|ccc} 1&2&3&1&0&0\\1&0&-1&0&1&0\\0&1&1&0&0&1 \end{array} \right] \sim \left[ \begin{array}{ccc|ccc} 1&2&3&1&0&0\\0&-2&-4&-1&1&0\\0&1&1&0&0&1 \end{array} \right]\]

交换第三行和第二行

\[\left[ \begin{array}{ccc|ccc} 1&2&3&1&0&0\\0&-2&-4&-1&1&0\\0&1&1&0&0&1 \end{array} \right] \sim \left[ \begin{array}{ccc|ccc} 1&2&3&1&0&0\\0&1&1&0&0&1\\0&-2&-4&-1&1&0 \end{array} \right]\]

第二行*(-2)加到第一行, 第二行*2加到第三行

\[\left[ \begin{array}{ccc|ccc} 1&2&3&1&0&0\\0&1&1&0&0&1\\0&-2&-4&-1&1&0 \end{array} \right] \sim \left[ \begin{array}{ccc|ccc} 1&0&1&1&0&-2\\0&1&1&0&0&1\\0&0&-2&-1&1&2 \end{array} \right]\]

第三行除以-2

\[\left[ \begin{array}{ccc|ccc} 1&0&1&1&0&-2\\0&1&1&0&0&1\\0&0&-2&-1&1&2 \end{array} \right] \sim \left[ \begin{array}{ccc|ccc} 1&0&1&1&0&-2\\0&1&1&0&0&1\\0&0&1&0.5&-0.5&-1 \end{array} \right]\]

第一行减去第三行, 第二行减去第三行

\[\left[ \begin{array}{ccc|ccc} 1&0&1&1&0&-2\\0&1&1&0&0&1\\0&0&1&0.5&-0.5&-1 \end{array} \right] \sim \left[ \begin{array}{ccc|ccc} 1&0&0&0.5&0.5&-1\\0&1&0&-0.5&0.5&2\\0&0&1&0.5&-0.5&-1 \end{array} \right]\]

则有

\[\left[ \begin{matrix} I&{A}^{-1} \end{matrix} \right] = \left[ \begin{array}{ccc|ccc} 1&0&0&0.5&0.5&-1\\0&1&0&-0.5&0.5&2\\0&0&1&0.5&-0.5&-1 \end{array} \right],\] \[{A}^{-1} = \left[ \begin{matrix} 0.5&0.5&-1\\-0.5&0.5&2\\0.5&-0.5&-1 \end{matrix} \right],\]
本文由作者按照 CC BY 4.0 进行授权