lapack ++ライブラリを使用して(非対称、二乗) LaMatGenDouble行列の行列式を計算する最良の(最速の)方法は何ですか?
質問する
3921 次
2 に答える
2
行列式を計算する 1 つの方法は、LU 分解を使用することです。
LaVectorLongInt pivots(A.cols());
LUFactorizeIP(A, pivots);
double detA = 1;
for (int i = 0; i < A.cols(); ++i)
detA *= A(i, i);
警告、Aは変更されるため、コピーを作成することをお勧めします。
于 2009-07-21T09:37:47.337 に答える
0
lapack ++についてはわかりませんが、標準のlapackにはないはずです。確認してください。私の知る限り、lapack ++はマトリシアル操作自体を実装していませんが、他のものを使用しています。実際には、それらのいくつか(atlas、mkl(インテルマスカーネルライブラリ)など)を切り替えることができます。したがって、私の仮定は、lapack++にも行列式の操作があるということです。
于 2009-07-20T10:02:38.130 に答える