Calcule el signo y el logaritmo natural del determinante de una array en Python

En este artículo, cubriremos cómo calcular el signo y el logaritmo natural del determinante de una array en Python usando NumPy .

método numpy.linalg.slogdet()

El método numpy.linalg.slogdet() nos permite calcular el signo y el logaritmo natural del determinante de una array en Python. Una llamada a slogdet puede desbordarse o subdesbordarse si el determinante de una array es muy pequeño o muy grande. Debido a que calcula el logaritmo del determinante en lugar del determinante de sí mismo, este procedimiento es más resistente a tales problemas.

Sintaxis: numpy.linalg.slogdet()

Parámetros:

  • a: array como objeto. La array de entrada debe ser una array bidimensional.

Retorno: logaritmo del determinante de un arreglo.

Ejemplo 1:

En este ejemplo, se crea una array bidimensional con el método numpy.array() y se usa numpy.lib.linalg.slogdet() para calcular el registro del determinante de la array y el signo. El método devuelve el signo y el logaritmo del determinante de la array. La forma, el tipo de datos y las dimensiones de la array se pueden encontrar mediante los atributos .shape, .dtype y .ndim .

Python3

# import packages
import numpy as np
  
# Creating an array
array = np.array([[10,20],[30,40]])
print(array)
  
# shape of the array is
print("Shape of the array is : ",array.shape)
  
# dimension of the array
print("The dimension of the array is : ",array.ndim)
  
# Datatype of the array
print("Datatype of our Array is : ",array.dtype)
  
# computing sign and natural logarithm of the 
# determinant of the array
sign, determinant= (np.linalg.slogdet(array))
  
print('sign of the array is : '+str(sign))
  
print('logarithm of the determinant of the array is : '+ str(determinant))

Producción:

[[10 20]

 [30 40]]

La forma de la array es: (2, 2)

La dimensión de la array es: 2

El tipo de datos de nuestro Array es: int64

el signo de la array es: -1.0

logaritmo del determinante de la array es: 5.298317366548037

Ejemplo 2:

Si también queremos calcular el determinante de la array, podemos usar sign*exp(logdet) y encontrarlo. sign y logdet son devueltos por el método numpy.lib.linalg.slogdet().

Python3

import numpy as np
  
# Creating an array
array = np.array([[2,3],[5,6]])
print(array)
  
# shape of the array is
print("Shape of the array is : ",array.shape)
  
# dimension of the array
print("The dimension of the array is : ",array.ndim)
  
# Datatype of the array
print("Datatype of our Array is : ",array.dtype)
  
# computing sign and natural logarithm of the
# determinant of the array
sign, determinant= (np.linalg.slogdet(array))
  
print('sign of the array is : '+str(sign))
  
print('logarithm of the determinant of the array is : '+ str(determinant))
  
print('computing the determinant of the array using np.exp(): '
      + str(sign*np.exp(determinant)))

Producción:

[[2 3]

 [5 6]]

La forma de la array es: (2, 2)

La dimensión de la array es: 2

El tipo de datos de nuestro Array es: int32

el signo de la array es: -1.0

logaritmo del determinante de la array es: 1.0986122886681091

calculando el determinante de la array usando np.exp(): -2.9999999999999982

Publicación traducida automáticamente

Artículo escrito por sarahjane3102 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 *