In diesem Artikel werden wir sehen, wie man den Cofaktor einer gegebenen Matrix mit NumPy findet. Es gibt keine direkte Möglichkeit, den Cofaktor einer bestimmten Matrix mit Numpy zu finden.

Ableitung der Formel zum Finden des Cofaktors unter Verwendung der Umkehrung der Matrix in Numpy

Formel zum Finden der Inversen einer Matrix:

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

Adj(A) ist die Adjoint-Matrix von A, die gefunden werden kann, indem man die Transponierte der Cofaktor-Matrix von A nimmt:

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

Wenn wir Gleichung 2 in Gleichung 1 einsetzen, erhalten wir Folgendes:

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

Senden von det(A) auf eine andere Seite der Gleichung:

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

Das Entfernen der Transponierung auf der rechten Seite (RHS) der Gleichung führt zur Anwendung der Transponierung auf der linken Seite (LHS) der Gleichung. Wir können die Transponierung anwenden, nachdem wir A -1 mit det(A) multipliziert haben, aber der Einfachheit halber werden wir die Transponierung auf A -1 anwenden und dann mit det(A) multiplizieren, jedoch sind beide Ergebnisse gleich.

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

Schließlich haben wir die Formel hergeleitet, um den Cofaktor einer Matrix zu finden:

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

Implementierung in Numpy:

Benötigte Schritte:

Beispiel 1: Cofaktor in der 2D-Matrix finden

Python3

# code to find the cofactor of given matrix
import numpy as np
  
def matrix_cofactor(matrix):
  
    cofactor = None
    cofactor = np.linalg.inv(matrix).T * np.linalg.det(matrix)
  
    # return cofactor matrix of the given matrix
    return cofactor
  
print(matrix_cofactor([[1, 2], [3, 4]]))

Ausgabe:

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

Beispiel 2: Cofaktor-3D-Matrix finden

Python3

# code to find the cofactor of given matrix
import numpy as np
  
def matrix_cofactor(matrix):
  
    cofactor = None
    cofactor = np.linalg.inv(matrix).T * np.linalg.det(matrix)
  
    # return cofactor matrix of the given matrix
    return cofactor
  
print(matrix_cofactor([[1, 9, 3],
                       [2, 5, 4],
                       [3, 7, 8]]))

Ausgabe:

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