2.2 伴随矩阵法求逆矩阵
文章目录
- 逆矩阵定义
- 伴随矩阵
- python实现
逆矩阵定义
逆矩阵指的是另一个矩阵和自己相乘会变成单位矩阵,符号是右上角一个−1-1−1,就是:
AA−1=A−1A=IAA^{-1}=A^{-1}A=I AA−1=A−1A=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} −1−314121−4010−100−1112−13112211111112=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∗=A11⋮An1⋯⋱⋯A1n⋮AnnT=A11⋮A1n⋯⋱⋯An1⋮Ann
把伴随矩阵除于行列式就是矩阵A的逆矩阵了:
A−1=1∣A∣A∗A^{-1}=\frac1{|A|}A^* A−1=∣A∣1A∗
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} 12−13112211111112−1−314121−4010−100−11=1000010000100001
总结
以上是生活随笔为你收集整理的2.2 伴随矩阵法求逆矩阵的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 展会回顾|2021ELEXCON电子展,
- 下一篇: 数据安全生命周期管理介绍(二)