SLogDet

Calcola il segno e il logaritmo di un determinante della matrice.

double matrix::SLogDet(
  int&  sign      // segno
   );

Parametri

segno

[out] Il segno del determinante. Se il segno è pari, il determinante è positivo.

Valore Restituito

Un numero che rappresenta il segno del determinante.

Note

Il determinante è calcolato con il metodo Gaussiano riducendo la matrice a una forma triangolare superiore. Il determinante di una matrice triangolare superiore è uguale al prodotto degli elementi delle diagonali principali. Il logaritmo di un prodotto è uguale alla somma dei logaritmi. Pertanto, in caso di overflow durante il calcolo del determinante, è possibile utilizzare il metodo SLogDet.

Se il segno è pari, il determinante è positivo.

Esempio

 
a = np.array([[1, 2], [3, 4]])  (sign, logdet) = np.linalg.slogdet(a)  (sign, logdet) (-1, 0.69314718055994529) # puт variare  sign * np.exp(logdet) -2.0