SLogDet

Вычисляет знак и логарифм определителя матрицы.

double matrix::SLogDet(
  int&  sign      // знак
   );

Параметры

sign

[out]  Знак определителя (детерминанта). Если значение sign чётное, то детерминант положительный.

Возвращаемое значение

Число, представляющее знак определителя.

Примечание

Определитель считается методом Гаусса путём приведения матрицы к верхнетреугольному виду. Определитель верхнетреугольной матрицы равен произведению членов главной диагонали. Логарифм произведения равен сумме логарифмов. Поэтому в случае переполнения при вычислении детерминанта можно воспользоваться методом SLogDet.

Если значение sign чётное, то детерминант положительный.

Пример:

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