跳转至

如何使用 Numpy

找到矩阵的辅因子

原文:https://www . geeksforgeeks . org/如何使用-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 

移除等式右侧的转置将导致在等式左侧(LHS)应用转置。我们可以在将 A -1 乘以 det(A)之后应用转置,但是为了简单起见,我们将转置应用到 A -1 然后乘以 det(A),然而,两个结果是相同的。

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

最后我们推导出求矩阵辅因子的公式:

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

Numpy 中的实现:

所需步骤:

例 1:在 2D 矩阵中寻找辅因子

蟒蛇 3

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:求辅因子 3D 矩阵

蟒蛇 3

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.]]


回到顶部