Numpyのマニュアルで、行列式を計算できる関数det(M)
があることを読みました。ただし、Numpyでdet()
メソッドが見つかりません。
ところで、私はPython 2.5を使用します。Numpyとの互換性の問題はないはずです。
numpy.linalg.det
配列の行列式を計算するには:
In [1]: import numpy
In [2]: M = [[1, 2], [3, 4]]
In [3]: print numpy.linalg.det(M)
Out[3]: -2.0000000000000004
大きな配列の場合、numpy.linalg.det
を使用するときにアンダーフロー/オーバーフローが発生するか、inf
または-inf
が返されます。
これらの多くの場合、numpy.linalg.slogdet
( ドキュメントを参照 )を使用できます。
(sign, logdet)
ここでsign
は行列式の符号で、logdet
は行列式の対数です。これにより、行列式det
を計算できます。
det = np.exp(logdet)