文章目录

  • 逆矩阵定义
  • 伴随矩阵
  • python实现

逆矩阵定义

  逆矩阵指的是另一个矩阵和自己相乘会变成单位矩阵,符号是右上角一个 − 1 -1 −1,就是:
A A − 1 = A − 1 A = I AA^{-1}=A^{-1}A=I AA−1=A−1A=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} ​−1−314​121−4​010−1​00−11​ ​ ​12−13​1122​1111​1112​ ​= ​1000​0100​0010​0001​ ​

伴随矩阵

  求逆矩阵最死板的办法就是伴随矩阵法了。这种算法因为计算量超级大,所以性能比较低,不建议使用,但是我还是要讲讲。首先,什么是伴随矩阵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∗= ​A11​⋮An1​​⋯⋱⋯​A1n​⋮Ann​​ ​T= ​A11​⋮A1n​​⋯⋱⋯​An1​⋮Ann​​ ​
  把伴随矩阵除于行列式就是矩阵A的逆矩阵了:
A − 1 = 1 ∣ A ∣ A ∗ A^{-1}=\frac1{|A|}A^* A−1=∣A∣1​A∗

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 + 1r = i if i < row else i + 1array[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) / detmatrix = 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} ​12−13​1122​1111​1112​ ​ ​−1−314​121−4​010−1​00−11​ ​= ​1000​0100​0010​0001​ ​

3.3 伴随矩阵法求逆矩阵相关推荐

  1. 用高斯约当法求逆矩阵​​​​​​​​​​​​​​​​​​​​​A-1

    原矩阵:                   求. 用高斯约当法求逆矩阵. #include<iostream> #include<cstdio> #include<cs ...

  2. 通过伴随矩阵怎么求逆矩阵

    设矩阵A为n阶方阵,其伴随矩阵为Adj(A),则A的逆矩阵为: A⁻¹ = (1/|A|) · Adj(A) |A|为A的行列式 Adj(A)为A的伴随矩阵 具体步骤如下: 求出A的行列式|A| 求出 ...

  3. 高斯约当法求逆矩阵的算法实现(C++)

    #include"iostream.h" #include"math.h" void main() { float a[10][10],A[10][10],b[ ...

  4. 选主元的高斯-约旦(Gauss-Jordan)消元法解线性方程组/求逆矩阵

    选主元的高斯-约当(Gauss-Jordan)消元法在很多地方都会用到,例如求一个矩阵的逆矩阵.解线性方程组(插一句:LM算法求解的一个步骤),等等.它的速度不是最快的,但是它非常稳定(来自网上的定义 ...

  5. 选主元的高斯-约当(Gauss-Jordan)消元法解线性方程组和求逆矩阵

    选主元的高斯-约当(Gauss-Jordan)消元法在很多地方都会用到,例如求一个矩阵的逆矩阵.解线性方程组(插一句:LM算法求解的一个步骤),等等.它的速度不是最快的,但是它非常稳定(来自网上的定义 ...

  6. 变换例题_用初等变换求逆矩阵的小小解释

    在我们学习逆矩阵的过程中,肯定会遇到这样一种求逆矩阵的方法: 若A是一个n阶可逆矩阵, (虚竖线打不出,凑合着看吧!)这一过程中经历了一系列初等行变换,并且我们下结论说: 中的 就是A的逆矩阵! 按逻 ...

  7. numpy求逆矩阵_线性代数精华2——逆矩阵的推导过程

    点击上方蓝字,和我一起学技术. 上一讲当中我们复习了行列式的内容,行列式只是开胃小菜,线性代数的大头还是矩阵. 矩阵的定义很简单,就是若干个数按照顺序排列在一起的数表.比如m * n个数,排成一个m ...

  8. 湘潭2017 ccpc中南地区邀请赛 Determinant 高斯约当求逆矩阵

    链接  http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1260 要求逆矩阵还是第一次见到 题意  给定一个n-1*n的矩阵, ...

  9. ker矩阵是什么意思_用初等变换求逆矩阵的小小解释

    在我们学习逆矩阵的过程中,肯定会遇到这样一种求逆矩阵的方法: 若A是一个n阶可逆矩阵, (虚竖线打不出,凑合着看吧!)这一过程中经历了一系列初等行变换,并且我们下结论说: 中的 就是A的逆矩阵! 按逻 ...

最新文章

  1. 在接触到服务器时破解密码、及改ssh端口
  2. android之实现各个组件点击事件监听
  3. js 设置 table 第一个 tr_华胜天成参与起草中国主导的第一个云计算国际技术报告...
  4. leetcode 834. Sum of Distances in Tree | 834. 树中距离之和(树形DP)
  5. 获得SAP CRM report的元数据get report detail(Metadata) via url
  6. POJ 2777 - Count Color(线段树区间更新+状态压缩)
  7. leetcode1029. 两地调度(贪心算法)
  8. 论文笔记(SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation)
  9. 通过命令行获取计算机参数,Win32命令行参数的传到和获取
  10. Android大图片裁剪之手机拍照和从相册中选择注意点
  11. python如何实时查询oracle_python针对Oracle常见查询操作实例分析
  12. mediacodec延时_FFmpeg优化点播延时方案
  13. Poker2的Programmer Dvorak解决方案
  14. 计算机应用基础听课点评,《爬山虎的脚》听课反思评课稿.docx
  15. 获取本地与服务器地址
  16. 手把手教你用Python打造一款属于你自己的个性二维码
  17. 日更100天(33)每天进步一点点
  18. 计算机网络协议第一章,网络协议基础知识
  19. 黑羽压测 做 API接口功能测试
  20. Macbook非常好用的一些功能

热门文章

  1. 代码主题darcula_darcula主题模式是()模式。_学小易找答案
  2. 比Siri更厉害的个人助理Viv 能否一统江湖?
  3. 迪科斯特拉算法(Dijkstra Algorithm)
  4. 小程序中引导用户关注公众号
  5. 如何在oracle官网下载ojdbc8,想不想在maven里直接下载ojdbc这个jar?
  6. java—Web(项目)—数据库(插入数据)
  7. 手机远程连接linux软件下载,远程连接linux服务器软件下载
  8. 【游戏开发小技】Unity中实现Dota里的角色技能地面贴花效果(URP ShaderGraph Decal)
  9. Win11笔记本耗电大怎么解决?Win11耗电快怎么办?
  10. Python-函数入参和全局变量