zoukankan      html  css  js  c++  java
  • 如何求矩阵的逆矩阵

    求逆矩阵最有效的方法是初等变换法(虽然还有别的方法)。如果要求方阵 \(A\) 的逆矩阵,标准的做法是:

    • 将矩阵 \(A\) 与单位矩阵 \(I\) 排成一个新的矩阵 \((A \quad I)\)
    • 将此新矩阵 \(( A \quad I )\) 做初等行变换,将它化成 \(( I \quad B )\) 的形式
    • \(B=A^{-1}\)

    若 \(A\) 是一个二阶方阵

    \[A=\begin{pmatrix}a&b\\ c&d\end{pmatrix}\]

    则它的逆矩阵可以直接使用公式

    \[A^{-1}=\frac{1}{ad-bc}\begin{pmatrix}d&-b\\ -c&a\end{pmatrix}\]

    来计算。我们来看几个例子。

    例1:求二阶矩阵

    \[A=\begin{pmatrix}8&6\\ 5&4\end{pmatrix}\]

    的逆矩阵。

    解:因为矩阵是二阶矩阵,我们可以直接利用二阶逆矩阵的公式来求解。

    \[\begin{align*}A^{-1}&=\frac{1}{8\cdot4-6\cdot5}\begin{pmatrix}4&-6\\ -5&8\end{pmatrix} \\& =\frac{1}{2}\begin{pmatrix} 4&-6\\ -5&8 \end{pmatrix}= \begin{pmatrix} 2&-3\\ -\frac{5}{2}&4 \end{pmatrix}\end{align*}\]

    例2:求矩阵

    \[A= \begin{pmatrix} 1&0&-2\\ -3&1&4\\ 2&-3&4\end{pmatrix} \]

    的逆矩阵。

    解:这是一个三阶的矩阵,最简便有效的方法是初等变换法。(你可以试试用伴随矩阵的方法来求,计算量比初等变换法相差多大)我们将矩阵与单位矩阵排在一起,然后做初等变换

    \[\begin{align*}(A\quad I)&=\begin{pmatrix} 1&0&-2&\vdots&1&0&0\\ -3&1&4 &\vdots& 0&1&0\\ 2&-3&4 &\vdots& 0&0&1\end{pmatrix}\sim \begin{pmatrix} 1&0&-2&\vdots&1&0&0\\ 0&1&-2 &\vdots& 3&1&0\\ 0&-3&8 &\vdots& -2&0&1\end{pmatrix}\\ &\sim \begin{pmatrix} 1&0&-2&\vdots&1&0&0\\ 0&1&-2 &\vdots& 3&1&0\\ 0&0&2 &\vdots& 7&3&1\end{pmatrix}\sim \begin{pmatrix} 1&0&0&\vdots&8&3&1\\ 0&1&0 &\vdots& 10&4&1\\ 0&0&2 &\vdots& 7&3&1\end{pmatrix}\\&\sim \begin{pmatrix} 1&0&0&\vdots&8&3&1\\ 0&1&0 &\vdots& 10&4&1\\ 0&0&1 &\vdots& \frac{7}{2}&\frac{3}{2}&\frac{1}{2}\end{pmatrix} \end{align*}\]

    所以我们得到

    \[A^{-1}= \begin{pmatrix} 8&3&1\\ 10&4&1\\\frac{7}{2}&\frac{3}{2}&\frac{1}{2}\end{pmatrix} \]

    我们看到的这个矩阵是三阶的,利用初等变换计算逆矩阵已经比伴随矩阵法少了很多的计算量了。实际上,矩阵的阶数越高,节约下来的计算量越多。利用伴随矩阵计算逆矩阵,三阶矩阵的话,需要计算一个三阶行列式,九个二阶行列式。四阶的话,需要计算一个四阶行列式,十六个三阶行列式,手算的话,已经让人难以接受了。

    我们来看一个四阶矩阵的逆矩阵。

    例3:求矩阵

    \[A=\begin{pmatrix}1&2&3&4\\ 2&3&1&2\\ 1&1&1&-1\\ 1&0&-2&-6\end{pmatrix}\]

    的逆矩阵。

    解:我们将下述矩阵做初等变换

    \[ \begin{align*} (A\quad I)&= \begin{pmatrix}1&2&3&4 &\vdots &1&0&0&0\\ 2&3&1&2 &\vdots &0&1&0&0\\ 1&1&1&-1 &\vdots &0&0&1&0\\ 1&0&-2&-6 &\vdots &0&0&0&1\end{pmatrix}\sim \begin{pmatrix} 1&0&-2&-6 &\vdots &0&0&0&1\\ 2&3&1&2 &\vdots &0&1&0&0\\ 1&1&1&-1 &\vdots &0&0&1&0\\ 1&2&3&4 &\vdots &1&0&0&0 \end{pmatrix} \\& \sim \begin{pmatrix} 1&0&-2&-6 &\vdots &0&0&0&1\\ 0&3&5&14 &\vdots &0&1&0&-2\\ 0&1&3&5 &\vdots &0&0&1&-1\\ 0&2&5&10 &\vdots &1&0&0&-1 \end{pmatrix}\sim \begin{pmatrix} 1&0&-2&-6 &\vdots &0&0&0&1\\ 0&1&3&5 &\vdots &0&0&1&-1 \\ 0&3&5&14 &\vdots &0&1&0&-2 \\ 0&2&5&10 &\vdots &1&0&0&-1 \end{pmatrix}\\&\sim \begin{pmatrix} 1&0&-2&-6 &\vdots &0&0&0&1\\ 0&1&3&5 &\vdots &0&0&1&-1 \\ 0&0&-4&-1 &\vdots &0&1&-3&1 \\ 0&0&-1&0 &\vdots &1&0&-2&1 \end{pmatrix}\sim \begin{pmatrix} 1&0&-2&-6 &\vdots &0&0&0&1\\ 0&1&3&5 &\vdots &0&0&1&-1 \\ 0&0&-1&0 &\vdots &1&0&-2&1 \\ 0&0&-4&-1 &\vdots &0&1&-3&1 \end{pmatrix}\\&\sim \begin{pmatrix} 1&0&-2&-6 &\vdots &0&0&0&1\\ 0&1&3&5 &\vdots &0&0&1&-1 \\ 0&0&-1&0 &\vdots &1&0&-2&1 \\ 0&0&0&-1 &\vdots &-4&1&5&-3 \end{pmatrix}\sim \begin{pmatrix} 1&0&-2&0 &\vdots &24&-6&-30&19\\ 0&1&3&0 &\vdots &-20&5&26&-16 \\ 0&0&-1&0 &\vdots &1&0&-2&1 \\ 0&0&0&-1 &\vdots &-4&1&5&-3 \end{pmatrix} \\ &\sim \begin{pmatrix} 1&0&0&0 &\vdots &22&-6&-26&17\\ 0&1&0&0 &\vdots &-17&5&20&-13 \\ 0&0&-1&0 &\vdots &1&0&-2&1 \\ 0&0&0&-1 &\vdots &-4&1&5&-3 \end{pmatrix}\sim \begin{pmatrix} 1&0&0&0 &\vdots &22&-6&-26&17\\ 0&1&0&0 &\vdots &-17&5&20&-13 \\ 0&0&1&0 &\vdots &-1&0&2&-1 \\ 0&0&0&1 &\vdots &4&-1&-5&3 \end{pmatrix} \end{align*}\]

    所以,我们得到

    \[A^{-1}= \begin{pmatrix} 22&-6&-26&17\\ -17&5&20&-13 \\ -1&0&2&-1 \\ 4&-1&-5&3 \end{pmatrix} \]

  • 相关阅读:
    Python print "hello world" SyntaxError: invalid syntax
    Parencodings(模拟)
    Do the Untwist(模拟)
    Jugs(回溯法)
    Anagrams by Stack(深度优先搜索)
    Fire Net(深度优先搜索)
    Integer Numbers
    Codeforces Beta Round #34 (Div. 2) E. Collisions
    什么是Qt Widget?
    codeblocks快捷键(转)
  • 原文地址:https://www.cnblogs.com/dingdangsunny/p/15670502.html
Copyright © 2011-2022 走看看