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.