Как вычислить матрицу определителя с помощью lapack ++ (2.5+) - PullRequest
1 голос
/ 20 июля 2009

Каков наилучший (самый быстрый) способ вычисления определителя (несимметричного квадрата) LaMatGenDouble с библиотекой lapack ++ ?

Ответы [ 2 ]

2 голосов
/ 21 июля 2009

Один из способов вычисления определителя - использование разложения LU:

  LaVectorLongInt pivots(A.cols());

  LUFactorizeIP(A, pivots);

  double detA = 1;
  for (int i = 0; i < A.cols(); ++i)
    detA *= A(i, i);

Предупреждение, A изменится, поэтому рекомендуется сделать копию.

0 голосов
/ 20 июля 2009

Я не знаю, что такое lapack ++, но я уверен, что его нет в стандартном lapack, , проверьте . Насколько я знаю, lapack ++ не реализует саму матричную операцию, а использует другие, на самом деле вы можете переключаться между несколькими из них (atlas, mkl (библиотека ядра Intel Math) и т. Д.). Поэтому я предполагаю, что в lapack ++ также есть какая-то определительная операция.

...