HOWTO · Python

Determinante de Python

Este tutorial demuestra cómo encontrar el determinante de una matriz cuadrada en Python.

En esta página

Un determinante es un escalar asociado a una matriz cuadrada, es decir, una matriz con el mismo número de filas y columnas. Para la matriz 2×2 [[7, 5], [2, 4]], use la fórmula (7 × 4) − (5 × 2) para obtener un determinante de 18. En Python, NumPy es una opción práctica para los arrays numéricos, mientras que SymPy puede mantener exactos los cálculos enteros y simbólicos. Los ejemplos siguientes usan ambas bibliotecas con las mismas matrices 2×2 y 3×3 para que pueda elegir el enfoque que se adapte a su cálculo.

Usar numpy.linalg.det() para calcular el determinante de una matriz cuadrada en Python

Instale NumPy en el entorno de Python en el que planea ejecutar el programa usando python -m pip install numpy. Este comando instala el paquete para el intérprete invocado como python; en un cuaderno o un entorno virtual, asegúrese de que el comando apunte al mismo entorno que ejecuta su código. El ejemplo completo importa NumPy, crea dos arrays cuadrados y llama a numpy.linalg.det() para cada uno. Esta API es una función que acepta una matriz tipo array como entrada. El ejemplo se proporciona como código ejecutable, pero no se capturó ninguna salida de ejecución para él.

import numpy as np

matrix_2x2 = np.array([[7, 5], [2, 4]])
matrix_3x3 = np.array([[7, 5, 3], [2, 4, 1], [5, 8, 6]])

print("2x2 determinant:", np.linalg.det(matrix_2x2))
print("3x3 determinant:", np.linalg.det(matrix_3x3))

Para estos valores, los resultados matemáticos exactos son 18 y 65. NumPy calcula con aritmética de punto flotante, por lo que la representación impresa puede mostrar una pequeña diferencia de precisión respecto a un entero exacto. Esto es lo esperado en el cálculo numérico y no significa por sí solo que la matriz o el cálculo sean incorrectos. Conserve la precisión devuelta cuando las operaciones posteriores dependan de ella. Redondee para mostrar solo cuando la tolerancia de su aplicación lo permita; redondear un resultado intermedio puede afectar a cálculos posteriores. Si sus valores de entrada son mediciones o aproximaciones, el determinante también es una aproximación, sin importar cuántos dígitos se impriman.

NumPy es útil cuando sus matrices ya son arrays o cuando trabaja con álgebra lineal numérica. La función acepta matrices cuadradas de distintos tamaños, y NumPy también puede operar con lotes de matrices. Este artículo limita el ejemplo a un solo array 2×2 y un solo array 3×3 para que la entrada y el resultado sean fáciles de comparar. Un determinante solo está definido para matrices cuadradas, así que compruebe que el número de filas y columnas coincide antes de elegir esta operación.

Usar SymPy para calcular el determinante de una matriz cuadrada en Python

Instale SymPy en el entorno de Python para este ejemplo con python -m pip install sympy. Al igual que con NumPy, use el intérprete y el entorno que ejecutarán el código. SymPy representa la entrada como un objeto Matrix y calcula el resultado mediante su método det(). El ejemplo repite los mismos valores que el programa de NumPy, lo que facilita comparar el comportamiento de las bibliotecas. El ejemplo se proporciona como código ejecutable, pero no se capturó ninguna salida de ejecución para él.

import sympy as sp

matrix_2x2 = sp.Matrix([[7, 5], [2, 4]])
matrix_3x3 = sp.Matrix([[7, 5, 3], [2, 4, 1], [5, 8, 6]])

print("2x2 determinant:", matrix_2x2.det())
print("3x3 determinant:", matrix_3x3.det())

Con valores enteros, SymPy devuelve los valores enteros exactos para estos ejemplos en lugar de una aproximación de punto flotante. Matrix.det() es el método utilizado para obtener el determinante de una matriz de SymPy; la ortografía sympy en minúsculas pertenece a la importación de Python, mientras que el nombre de la biblioteca en el texto es SymPy. También puede construir matrices a partir de variables simbólicas y conservar una expresión en el resultado, lo que resulta útil al derivar una fórmula antes de sustituir valores concretos.

Elija SymPy cuando la aritmética exacta o las expresiones simbólicas sean importantes, y NumPy para arrays numéricos y álgebra lineal de punto flotante. Ambos ejemplos usan matrices pequeñas cuyos resultados exactos son 18 y 65, por lo que también ofrecen una forma sencilla de comprobar que los valores de entrada están en el orden de filas previsto. Estas bibliotecas ofrecen modelos de cálculo diferentes: SymPy conserva las formas exactas cuando es posible, mientras que NumPy está diseñado para el trabajo numérico. Seleccione según cómo se usará el resultado y conserve la precisión suficiente para cualquier cálculo posterior.