###実現したいこと
行列式の値が0かどうかを正確に評価したいです。
下記のような行列の場合、誤差のせいで実際には0になるはずの行列式の値が非常に小さい値を持つと評価されてしまいます。
計算結果が本当に0かどうかを評価する上で何か良い方法は無いでしょうか?
###問題が生じる計算結果の例
python
1A = np.arange(36).reshape(6, 6) 2A[0,0]=5 3A=A[:4,:4] 4print(A) 5> [[ 5 1 2 3] 6 [ 6 7 8 9] 7 [12 13 14 15] 8 [18 19 20 21]] 9 10print(np.linalg.det(A)) 11> 1.065814103640152e-13
###補足
numpyでは、LU分解することで行列式を求めているようです。
LU分解では三角行列にする過程で割り算を行うので、丸め誤差が発生してしまいます。
解決策として例えば、余因子展開を用いて行列式を計算すれば割り算は行わないので、誤差が生じにくい気がするのですが、この認識は合っているでしょうか?
以上になります。どうぞよろしくお願い致します。> 引用テキスト
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/27 06:27