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:
- Encontrar el determinante de una array dada.
- Hallar la inversa de una array y transponerla.
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