ここで Python に問題が発生しました。Python 2.X を使用していて、除算に問題があることがわかっているため、追加from __future__ import division
したところ、これまでのところ問題なく動作しています。しかし、このプロジェクトで int を float で上書きしようとするとうまくいかないことに気付きました。小さなプロジェクトでテストしましたが、うまくいきました。
ここで何が問題なのか、誰にも手がかりがありますか?
A = [
[3, 3, 3],
[1, 1, 2],
[1, 0, 3]
]
b = [0, 0, 3]
def gauss_elim(A,b):
print A[0], b[0]
print A[1], b[1]
print A[2], b[2]
n = len(A)
temp = []
temp_b = []
MAX = 0
te = [0,0,0]
for i in range(0,n-1):
k=i
for a in range(i,n-1):
### Pivotsearch Start ###
if math.fabs(A[a][i]) < math.fabs(A[a+1][i]):
MAX = (a+1)
temp = A[i]
A[i] = A[MAX]
A[MAX] = temp
temp_b = b[i]
b[i] =b[MAX]
b[MAX]=temp_b
### Pivotsearch End ###
for j in range(i+1, n):
if A[j][i] == 0:
continue
A[j][i] = A[j][i] - ( A[j][i] / A[i][i] ) * A[i][i]
b[j] = ( b[j] - (A[j][i])/(A[i][i]) ) #<<<< DOES NOT OVERWRITE
k = k + 1
print 'done:'
print A[0], b[0]
print A[1], b[1]
print A[2], b[2]
gauss_elim(A,b)