如何用Numpy查找矩阵的辅助因子

如何用Numpy查找矩阵的辅助因子

在这篇文章中,我们将看到如何使用NumPy找到一个给定矩阵的辅助因子。没有直接的方法可以用Numpy找到一个给定矩阵的辅助因子。

在Numpy中使用矩阵的逆运算,推导出寻找辅助因子的公式

寻找矩阵的逆的公式:

A-1 = ( 1 / det(A) )* Adj(A)      ----(1)

Adj(A)是A的邻接矩阵,可以通过对A的共因子矩阵进行转置来找到:

Adj(A) = (cofactor(A))T            ----(2)

将方程2代入方程1,得到如下结果:

A-1 = ( 1/det(A) ) *  (cofactor(A))T 

将det(A)送到方程的另一边:

det(A) * A-1 = (cofactor(A))T 

去掉方程右边的转置将导致在方程左边应用转置。我们可以在A-1乘以det(A)后应用转置,但为了简单起见,我们将对A-1应用转置,然后再乘以det(A),然而,两个结果都是一样的。

det(A) * (A-1)T = cofactor(A)      

最后我们得出了寻找矩阵的辅助因子的公式:

cofactor(A) = (A-1)T * det(A)

用Numpy实现。

需要的步骤:

  • 寻找一个给定矩阵的行列式。
  • 寻找矩阵的逆值,并对其进行转置。

例子1:在二维矩阵中寻找辅助因子

import numpy as np
   
def matrix_cofactor(matrix):
 
    try:
        determinant = np.linalg.det(matrix)
        if(determinant!=0):
            cofactor = None
            cofactor = np.linalg.inv(matrix).T * determinant
            # return cofactor matrix of the given matrix
            return cofactor
        else:
            raise Exception("singular matrix")
    except Exception as e:
        print("could not find cofactor matrix due to",e)
   
print(matrix_cofactor([[1, 2], [3, 4]]))

输出:

[[ 4. -3.]
 [-2.  1.]]

例子2。寻找辅助因子三维矩阵

import numpy as np
   
def matrix_cofactor(matrix):
 
    try:
        determinant = np.linalg.det(matrix)
        if(determinant!=0):
            cofactor = None
            cofactor = np.linalg.inv(matrix).T * determinant
            # return cofactor matrix of the given matrix
            return cofactor
        else:
            raise Exception("singular matrix")
    except Exception as e:
        print("could not find cofactor matrix due to",e)
   
print(matrix_cofactor([[1, 9, 3],
                       [2, 5, 4],
                       [3, 7, 8]]))

输出:

[[ 12.  -4.  -1.]
 [-51.  -1.  20.]
 [ 21.   2. -13.]]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程