Cómo encontrar el cofactor de una array usando Numpy

En este artículo, vamos a ver cómo encontrar el cofactor de una array dada usando NumPy. No hay una forma directa de encontrar el cofactor de una array dada usando Numpy.

Derivando la fórmula para encontrar el cofactor usando el inverso de la array en Numpy

Fórmula para encontrar la inversa de una array:

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

Adj(A) es la array adjunta de A que se puede encontrar tomando la transpuesta de la array cofactor de A:

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

Sustituyendo la ecuación 2 en la ecuación 1 obtenemos lo siguiente:

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

Enviando det(A) al otro lado de la ecuación:

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

Eliminar la transposición en el lado derecho (RHS) de la ecuación dará como resultado la aplicación de la transposición en el lado izquierdo (LHS) de la ecuación. Podemos aplicar la transposición después de multiplicar A -1 por det(A), pero para simplificar, aplicaremos la transposición a A -1 y luego multiplicaremos por det(A), sin embargo, ambos resultados son iguales.

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

Finalmente , derivamos la fórmula para encontrar el cofactor de una array:

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

Implementación en Numpy:

Pasos necesarios:

Ejemplo 1: Encontrar cofactor en la array 2D

Python3

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

Producción:

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

Ejemplo 2: encontrar la array 3D del cofactor

Python3

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

Producción:

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

Publicación traducida automáticamente

Artículo escrito por gurukiranx y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *