3.3 伴随矩阵法求逆矩阵

这篇具有很好参考价值的文章主要介绍了3.3 伴随矩阵法求逆矩阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

逆矩阵定义

  逆矩阵指的是另一个矩阵和自己相乘会变成单位矩阵,符号是右上角一个 − 1 -1 1,就是:
A A − 1 = A − 1 A = I AA^{-1}=A^{-1}A=I AA1=A1A=I
  例如以下两个矩阵就是互为逆矩阵:
( − 1 1 0 0 − 3 2 1 0 1 1 0 − 1 4 − 4 − 1 1 ) ( 1 1 1 1 2 1 1 1 − 1 2 1 1 3 2 1 2 ) = ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ) \begin{pmatrix}-1 & 1 & 0 & 0\\ -3 & 2 & 1 & 0\\ 1 & 1 & 0 & -1\\ 4 & -4 & -1 & 1\\ \end{pmatrix}\begin{pmatrix}1 & 1 & 1 & 1\\ 2 & 1 & 1 & 1\\ -1 & 2 & 1 & 1\\ 3 & 2 & 1 & 2\\ \end{pmatrix}= \begin{pmatrix}1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1\\ \end{pmatrix} 1314121401010011 1213112211111112 = 1000010000100001

伴随矩阵

  求逆矩阵最死板的办法就是伴随矩阵法了。这种算法因为计算量超级大,所以性能比较低,不建议使用,但是我还是要讲讲。首先,什么是伴随矩阵adjugate matrix呢?伴随矩阵符号是一个*号,是由每个元素的代数余子式组成的矩阵的转置(千万不要忘了转置啊)。矩阵A的第i行第j列的代数余子式cofactor记作 A i j A_{ij} Aij,所以伴随矩阵的定义如下:
A ∗ = ( A 11 ⋯ A 1 n ⋮ ⋱ ⋮ A n 1 ⋯ A n n ) T = ( A 11 ⋯ A n 1 ⋮ ⋱ ⋮ A 1 n ⋯ A n n ) A^*=\begin{pmatrix}A_{11} & \cdots & A_{1n}\\ \vdots & \ddots & \vdots\\ A_{n1} & \cdots & A_{nn} \end{pmatrix}^T =\begin{pmatrix}A_{11} & \cdots & A_{n1}\\ \vdots & \ddots & \vdots\\ A_{1n} & \cdots & A_{nn} \end{pmatrix} A= A11An1A1nAnn T= A11A1nAn1Ann
  把伴随矩阵除于行列式就是矩阵A的逆矩阵了:
A − 1 = 1 ∣ A ∣ A ∗ A^{-1}=\frac1{|A|}A^* A1=A1A

python实现

  这种计算逆矩阵的方法用Python很容易写出来:

     # 子式
    def minor(self, row, column):
        # 创建新矩阵
        n = len(self.__lines)
        array = [[0 for _ in range(n - 1)] for _ in range(n - 1)]
        # i 代表行 j代表列
        for i in range(0, n - 1):
            for j in range(0, n - 1):
                col = j if j < column else j + 1
                r = i if i < row else i + 1
                array[j][i] = self.__lines[col][r]
        return Matrix(array).chio()

    # 求代数余子式
    def cofactor(self, row, column):
        minor = self.minor(row, column)
        return minor if (row + column) % 2 == 0 else -minor

    # 用伴随矩阵求逆矩阵
    def inverse(self):
        det = self.chio()
        n = len(self.__lines)
        array = [[0 for _ in range(n)] for _ in range(n)]
        for i in range(0, n):
            for j in range(0, n):
                array[i][j] = self.cofactor(j, i) / det
        matrix = Matrix(array)
        return Matrix(matrix.transpose())

  测试数据:
( 1 1 1 1 2 1 1 1 − 1 2 1 1 3 2 1 2 ) ( − 1 1 0 0 − 3 2 1 0 1 1 0 − 1 4 − 4 − 1 1 ) = ( 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ) \begin{pmatrix}1 & 1 & 1 & 1\\ 2 & 1 & 1 & 1\\ -1 & 2 & 1 & 1\\ 3 & 2 & 1 & 2\\ \end{pmatrix} \begin{pmatrix}-1 & 1 & 0 & 0\\ -3 & 2 & 1 & 0\\ 1 & 1 & 0 & -1\\ 4 & -4 & -1 & 1\\ \end{pmatrix}= \begin{pmatrix}1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1\\ \end{pmatrix} 1213112211111112 1314121401010011 = 1000010000100001 文章来源地址https://www.toymoban.com/news/detail-491763.html

到了这里,关于3.3 伴随矩阵法求逆矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 给定一个 5×5 的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。

     遍历数组,将数组内的元素与ma x进行对比并储存最大值和坐标值。   列的实现与行的类似  打印鞍点及其坐标  

    2024年02月03日
    浏览(50)
  • 线性代数(4):伴随矩阵、逆矩阵和矩阵的秩

             A 为一个n阶矩阵,行列式 | A | 的每个元素a ij 的代数余子式Aij组成的矩阵叫做伴随矩阵,记作 A* ;         a.  如果 A 矩阵可逆,A* = | A | A^-1         b.  | A | = | A |^(n-1)         c.  ( kA )* = k^(n-1) A*         a.  若矩阵的行列式结果值不等于 0 ,那么这个矩阵就是

    2024年02月08日
    浏览(60)
  • 伴随矩阵九大公式

    1 公式一          伴随矩阵定义式,也是判定方式         和原矩阵同阶的可交换方阵;         和原矩阵相乘结果是行列式值和单位矩阵之积。 2 公式二          逆矩阵的另外一种定义方式; 3 公式三 对于可逆矩阵 可以求出可逆矩阵的伴随矩阵。 4 公式四

    2024年01月24日
    浏览(41)
  • 伴随矩阵秩的证明

    伴随矩阵是引出n阶矩阵逆计算的一个重要矩阵工具,课本中关于伴随矩阵的涉及的讲解并不多,本文将从一下方面讲解: 基础重要计算公式(引入逆的求解); 通过和逆的关系求解伴随矩阵以及证明相关运算律; 证明伴随矩阵秩的三种情况(抽象秩的证明方法); 说明两

    2024年02月11日
    浏览(44)
  • 余子式、代数余子式、伴随矩阵

    设矩阵 A = ( a i j ) n × n A=left(a_{i j}right)_{n times n} A = ( a i j ​ ) n × n ​ , 将矩阵 A A A 的元素 a i j a_{i j} a i j ​ 所在的第行第 j mathrm{j} j 列元素划去后, 到余的各元素按原来的排列顾序组成的 n − 1 n-1 n − 1 阶 矩脌所确定的行列式称为元古 a i j a_{i j} a i j ​ 的余子式,记为

    2024年02月02日
    浏览(79)
  • C语言求矩阵的逆(伴随法)

    之前介绍了C语言用代数余子式求行列式 本次开始介绍如何用公式法对矩阵求逆,并用C语言将其实现。 之前程序有点小bug,已于2022年11月29日修改。 更新:          伴随法只适合求低阶矩阵的逆,对于相对高阶(20维以上)对矩阵求逆用高斯法求解效率更高,此外本文中

    2024年02月02日
    浏览(43)
  • 分块矩阵求逆推导 + 矩阵反演公式由来

    引自知乎:https://www.zhihu.com/question/47760591 David Sun 大佬的回答 其实也可以正面刚,下面从正面刚一下: 其实正面刚比上一种解法更简单! PS:啥时候Markdown 编辑公式能像Mathtype 那么方便就好了,这样笔者也不用先在word中编辑一遍再贴个图过来了。 注意到第一种分块矩阵求逆

    2024年02月07日
    浏览(38)
  • 线性代数——求逆矩阵

    利用计算技巧凑出公式:两边加E、提取公因式、没有公因式可提时利用隐形的E=AA^(-1),因为E可看作系数1 主对角线有矩阵(副对角线是0矩阵),则分别逆后放在原位置 副对角线有矩阵(主对角线是0矩阵),则分别逆后互换位置

    2024年02月11日
    浏览(52)
  • Maple矩阵求逆

    如何使用Maple进行矩阵求逆 调用包 输入我想要的矩阵: 然后我使用了Inverse命令 结果并没有生成矩阵的逆。 查了一下说明手册加上 mod 好像也不行,而且手册的mod的参数我也没有看懂。 上网查了一下解决方法: 改用命令 MatrixInverse 就可以了。 完美解决!

    2024年02月11日
    浏览(82)
  • 分块对角矩阵的求逆

    分块对角矩阵的逆矩阵: [ A B C ⋱ ] − 1 = [ A − 1 B − 1 C − 1 ⋱ ] begin{bmatrix} mathbf{A} \\\\ mathbf{B} \\\\ mathbf{C} \\\\ ddots \\\\ end{bmatrix}^{-1} = begin{bmatrix} mathbf{A}^{-1} \\\\ mathbf{B}^{-1} \\\\ mathbf{C}^{-1} \\\\ ddots \\\\ end{bmatrix} ⎣ ⎢ ⎢ ⎡ ​ A ​ B ​ C ​ ⋱ ​ ⎦ ⎥ ⎥ ⎤ ​ − 1 = ⎣ ⎢ ⎢ ⎡

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包