前提・実現したいこと
python初心者です。
numpyで行列の計算を行なってシンプレックス法の一部の係数を合わせて計算する関数を作りたいです。ある行の値全てを別の変数に保存してその変数を使って、他の行と係数を合わせて引き算をしたくコードを書きました。
しかし、出力してみると別の変数に保存したはずなのにある行そのものが係数をかけられた違う値に変わっていました。
発生している問題・エラーメッセージ
期待している出力↓ [[ 8. 0. 1.66666667] [ 2. 0. 0.66666667] [ 6. 1. 0.33333333] [ 12. 0. -0.33333333]] 実際の出力↓ [[ 8. 0. 1.66666667] [ 2. 0. 0.66666667] [-12. -2. -0.66666667] [ 12. 0. -0.33333333]]
該当のソースコード
python
1sim = np.array([[14,1,2],[8,1,1],[18,3,1],[0,-2,-1]],dtype = 'float') 2m = 4 #simの行 3n = 3 #simの列 4min_gen_m = 2 5min_n = 1 6def sum(): 7 gyakusu = 1/sim[int(min_gen_m),int(min_n)] 8 sim[min_gen_m,:] *= gyakusu 9 for i in range(m): 10 if i != min_gen_m: 11 k = sim[min_gen_m,:] 12 k *= sim[i,min_n] 13 sim[i,:] -= k 14 print(sim)
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/06/09 01:52