
pythonで、lamda = np.linalg.inv(sigma)
でsigmaが2x2の変数で、これを繰り返し計算していると、何回めかに
下記のようなエラーが出ます。下の値で、pythonでインターラクティブに計算して
見たのですが、ちゃんと逆行列は求まります。何が悪いのでしょうか?
lamda=[[ 0.16138508 0.03359245]
File "/Users/tetsuomiyoshi/PycharmProjects/nonparametricbayes2/nonparamerticbayes2.py", line 255, in <module>
[ 0.03359245 0.14452796]]
p_rate = p_update(X, c_first, mu, beta, nu)
lank=1
File "/Users/tetsuomiyoshi/PycharmProjects/nonparametricbayes2/nonparamerticbayes2.py", line 170, in p_update
lamda = np.linalg.inv(sigma + sigma0)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/linalg/linalg.py", line 519, in inv
ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/linalg/linalg.py", line 90, in _raise_linalgerror_singular
raise LinAlgError("Singular matrix")
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
先に行列式を求めて、絶対値がある程度以下なら逆行列は求めない。
という方法で回避自体はできますが。
ただ、それでいいのか
ロジックやデータがおかしいのが真の原因ではないか
ということは確認するのがいいかと思います。
念の為
array([[ -1.69855324e+08, 9.27898313e+07],
[ 9.27898313e+07, -5.06899188e+07]])
の e はエラーではありません。 -1.69855324e+07 は -1.69855324 * (10**7) の意味です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby 教えてください 2 2023/01/04 17:50
- Ruby パイソンエラーについて 1 2022/12/24 14:07
- その他(プログラミング・Web制作) python 2 2022/12/23 09:06
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- オープンソース stable diffusionのインストールがうまくいきません。 1 2023/06/20 13:09
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- その他(プログラミング・Web制作) pythonをjupiter notebookからmecabで頻出の高い単語の抽出について(Runt 1 2022/12/17 18:08
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- サーバー WindowsでApache が起動しない 1 2022/11/29 12:21
- Ruby pythonエラー 4 2022/11/11 19:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
End Sub が必要です。
-
(fortran) run-time erro M620...
-
ISLispのsetq関数について教え...
-
Delphiでif文がうまく書けないです
-
C++ Regionについて
-
intel fortranのエラーで困って...
-
Makefile と <math.h>
-
Texに詳しい方よろしくお願いい...
-
コンパイルエラー
-
Excel VABについて 下記記述が...
-
C言語の#includeについて
-
教えて下さい
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
配列数式の解除
-
Excel_マクロ_現在開いているシ...
-
Excel・Word リサーチ機能を無...
-
メッセージボックスのOKボタ...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
End Sub が必要です。
-
Excel VABについて 下記記述が...
-
フォートランのエラーについて...
-
typedef による2重定義
-
AccessVBAでVLookupを使いたい
-
C# IEnumerable が IEnumerable...
-
intel fortranのエラーで困って...
-
Excel VBA: UserForm.Show で実...
-
Delphiでif文がうまく書けないです
-
フォートラン(fortran)のエラー...
-
他クラスからForm1内コントロル...
-
コンパイルで未定義のシンボル
-
fortran 配列宣言のオーバーフ...
-
VBでエラー'ActiveX component ...
-
DLL内からの外部変数の参照
-
ユニティ(unity)です。プログ...
-
(fortran) run-time erro M620...
-
構造体のポインタ参照
-
Mac OSX上でFortranを使いたい
-
C言語における定数の使用方法
おすすめ情報
a = np.array([[0.24183635, 0.44269067], [0.44269067, 0.81036215]])
の逆行列を求めている所で、
これは実際にpythonで計算すると、
array([[ -1.69855324e+08, 9.27898313e+07],
[ 9.27898313e+07, -5.06899188e+07]])
になるようなのですが、
行列式の値がほとんど0に近い値なので起きているエラーのような気がするのですが、
これを回避する方法とかあるのでしょうか?