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?314?121?4?010?1?00?11???12?13?1122?1111?1112??=?1000?0100?0010?0001??
伴隨矩陣
??求逆矩陣最死板的辦法就是伴隨矩陣法了。這種算法因為計算量超級大,所以性能比較低,不建議使用,但是我還是要講講。首先,什么是伴隨矩陣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??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())??測試數據:
(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?13?1122?1111?1112????1?314?121?4?010?1?00?11??=?1000?0100?0010?0001??
總結
以上是生活随笔為你收集整理的2.2 伴随矩阵法求逆矩阵的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 展会回顾|2021ELEXCON电子展,
- 下一篇: 数据安全生命周期管理介绍(二)