前提・実現したいこと
行列の計算プログラムをつくっています
第一段階として、
対角成分を1にその左側を0にしようとしています
ex)
1,2,3,1
4,5,6,2
7,8,9,3
↓
1,2,3,1
0,1,x,y
0,0,1,z
どこがおかしいのかわからないので一応全部のっけときます
まだ覚えていることが少ないので、えらく遠回りして書いているとは思いますが
できるだけこの方向性で完成させたいです
発生している問題・エラーメッセージ
計算は分数で進めたいのでfractionを使っています 求まったやつをprintするとfraction(数字,数字)で表示されてしまいます [[Fraction(1, 1), Fraction(2, 1), Fraction(1, 1), Fraction(1, 1)],... こんな感じになってしまいます
該当のソースコード
python
1def Eans(matriz): 2 from fractions import Fraction 3 mA=matriz 4 for i in range(0,len(mA[0])): 5 if mA[i][i]==0: 6 m=mA.pop(i) 7 mA.append(m) #頭0やったら一番後ろに持ってく 8 for l in range(i,len(mA[0])): 9 s=mA[i][i] 10 mA[i][l] = Fraction(mA[i][l],s) #i行i列を1になるようi行を調整する 11 for k in range(i+1,len(mA)): 12 for l in range(i,len(mA[0])): 13 mA[k][l] -= mA[i][l] * mA[k][i] #i行以降の行のi列を0にするように引き算 14 return mA
試したこと
計算の仕方自体を色々いじってみたりしたんですが、解決しませんでした [[Fraction(1, 1), Fraction(2, 1), Fraction(1, 1), Fraction(1, 1)],... この表示のままです
補足情報(FW/ツールのバージョンなど)
python3.7です
リストにはintになるようにちゃんと数字いれてます
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/11 15:55
2020/05/11 16:26
2020/05/11 16:38