欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

2.2 伴随矩阵法求逆矩阵

发布时间:2024/3/24 52 豆豆
生活随笔 收集整理的这篇文章主要介绍了 2.2 伴随矩阵法求逆矩阵 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

文章目录

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

逆矩阵定义

  逆矩阵指的是另一个矩阵和自己相乘会变成单位矩阵,符号是右上角一个−1-11,就是:
AA−1=A−1A=IAA^{-1}=A^{-1}A=I AA1=A1A=I
  例如以下两个矩阵就是互为逆矩阵:
(−1100−3210110−14−4−11)(11112111−12113212)=(1000010000100001)\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} 13141214010100111213112211111112=1000010000100001

伴随矩阵

  求逆矩阵最死板的办法就是伴随矩阵法了。这种算法因为计算量超级大,所以性能比较低,不建议使用,但是我还是要讲讲。首先,什么是伴随矩阵adjugate matrix呢?伴随矩阵符号是一个*号,是由每个元素的代数余子式组成的矩阵的转置(千万不要忘了转置啊)。矩阵A的第i行第j列的代数余子式cofactor记作AijA_{ij}Aij,所以伴随矩阵的定义如下:
A∗=(A11⋯A1n⋮⋱⋮An1⋯Ann)T=(A11⋯An1⋮⋱⋮A1n⋯Ann)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=A11An1A1nAnnT=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 + 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())

  测试数据:
(11112111−12113212)(−1100−3210110−14−4−11)=(1000010000100001)\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} 12131122111111121314121401010011=1000010000100001

总结

以上是生活随笔为你收集整理的2.2 伴随矩阵法求逆矩阵的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。