Python metoda eliminacji gaussa-jordana POMOCY

0

Witam,prosiłbym o pomoc w programie który pisze z przedmiotu metody numeryczne.Program musi wypisywać na każdym kroku algorytmu zawartość macierzy i rozwiązać musze z plików podany przykład :

3 4
0.2500000000000000 0.2000000000000000 0.1666666666666667 9.0000000000000000
0.3333333333333333 0.2500000000000000 0.2000000000000000 8.0000000000000000
0.5000000000000000 1.0000000000000000 2.0000000000000000 8.0000000000000000

Do tej pory doszedłem tylko do eliminacji gaussa a dalej mam problemy z wczytaniem powyższego przykładu i zaprogramowaniu eliminacji gaussa-jordana.

 import numpy as np

def gauss(a):
    n = len(a)
    for i in range(n):
        maxE = abs(a[i][i])
        maxR = i
        for k in range(i+1, n):
            if abs(a[k][i]) > maxE:
                maxE = abs(a[k][i])
                maxR = k
        for k in range(i, n+1):
            a[maxR][k], a[i][k] = a[i][k], a[maxR][k]
        for k in range(i+1, n):
            c = -a[k][i] / a[i][i]
            for j in range(i, n+1):
                if i == j:
                    a[k][j] = 0
                else:
                    a[k][j] += c * a[i][j]
    x = np.zeros(n)
    for i in range(n-1, -1, -1):
        x[i] = a[i][n] / a[i][i]
        for k in range(i-1, -1, -1):
            a[k][n] -= a[k][i] * x[i]
    return x

a = np.loadtxt('A.txt')
b = np.loadtxt('b.txt')
A = np.column_stack((a, b))
print A, '\n'
if any(x == 0 for x in np.diag(a)):
    print('0 na przekatnej. stop')
else:
    for i, x in enumerate(gauss(A), 1):
        print 'x%s = %s' % (i, x)

Proszę o szybką pomoc.

0
matrix = []
inversedMatrix = []
dimension = 3

def gauss_jordan():
    # w przypadku liczenia macierzy odwrotnej,
    # zmienna inversedMatrix inicjujemy wartosciami macierzy jednostkowej:
    for i in range(0, dimension):
        line = []
	for j in range(0, dimension):
	    if i == j:
	        line.append(1)
	    else:
	        line.append(0)
	    inversedMatrix.append(line)
	
    # właściwe obliczenia, macierz matrix doprowadzamy do postaci macierzy jednostkowej
    # i odpowiednio zmieniamy wartości w macierzy odwrotnej i wektorze wartości
    for i in range(0, dimension):
        if matrix[i][i] == 0:
	    print "brak rozwiazan"
	    return
	value = matrix[i][i]
	    for j in range(0, dimension):
	        matrix[i][j] /= value
		# w przypadku liczenia macierzy odwrotnej:
		inversedMatrix[i][j] /= value
	    # w przypadku liczenia rozwiazania rownania:
	    vector[i] /= value
	    for j in range(0, dimension):
	        if j == i: continue
		value = -matrix[j][i]
		for k in range(0, dimension):
		    matrix[j][k] += value*matrix[i][k]
		    # przypadek liczenia macierzy dowrotnej:
		    inversedMatrix[j][k] += value*inversedMatrix[i][k]
		# przypadek liczenia rozwiazan rownania:
		vector[j] += value*vector[i]

jak wczytać dane z pliku do tablicy można znaleźć tutaj: "https://4programmers.net/Forum/Inne/185249-wczytanie_pliku_do_tablicy_z_delimiterem_w_pythonie"

1 użytkowników online, w tym zalogowanych: 0, gości: 1