pythonでSVDをやっているのですが、毎回実行するたびにSVDの結果が変化してしまいます。
SVDには、numpyを用いています。
そのまま、実行すると値が収束しないエラーが発生することから、以下のコードのように書き換えています。
python
1try: 2 u, s, v = np.linalg.svd(A) 3except: 4 w, x = np.linalg.eigh(np.dot(A.T ,A)) 5 w = w[::-1]; x = x[:,::-1] 6 s = np.sqrt(w) 7 u = np.dot(A,x); u = np.dot(u,np.diag(s**(-1))); x = x.T
SVDの実行結果が毎回変化してしまうのは仕方がないのでしょうか?
もし、変化しないようにすることが可能な方法がありましたら、ご教授頂けると嬉しいです。
回答1件
あなたの回答
tips
プレビュー