Método de GaussJordan
Método de GaussJordan
Método de GaussJordan
Jordán.
Solución de un sistema de
ecuaciones lineales.
Este sistema se puede resolver mediante el uso de matrices, de tal forma que
tendremos la siguiente ecuación matricial:
𝐴𝑋 = 𝐵
Donde:
𝑎11 𝑎12 … 𝑎1𝑛
𝑎 𝑎22 … 𝑎2𝑛
𝐴 = ( 21 )
⋮ ⋮ ⋮ ⋮
𝑎𝑛1 𝑎𝑛2 … 𝑎𝑛𝑛
𝑏1
𝑏
𝐵 = ( 2)
⋮
𝑏𝑛
𝑥1
𝑥
𝑋 = ( 2)
⋮
𝑥𝑛
𝑥1 + 𝑥2 + +3𝑥4 = 4
2𝑥1 + 𝑥2 − 𝑥3 + 𝑥4 = 1
3𝑥1 − 𝑥2 − 𝑥3 + 2𝑥4 = −3
−𝑥1 + 2𝑥2 + 3𝑥3 − 𝑥4 = 4
print("----------------------------------------------------------------")
print(" Metodo de Gaus-Jordan ")
print(" AX=B ")
print("----------------------------------------------------------------")
#Se ingresa la matriz A, la cual tendra como elementos los coeficientes que acompañan a cada
una de las incognitas en el sistema de ecuaciones lineal
print(" ")
print(" Matriz A ")
A = np.array([[ 1, 1, 0, 3],
[ 2, 1,-1, 1],
[ 3,-1,-1, 2],
[-1, 2, 3,-1]])
print(A)
print(" ")
#Se ingresa la matriz B, la cual tendra como elementos los valores a los que son igual cada
ecuación del sistema ")
print(" Matriz B ")
B = np.array([[ 4],
[ 1],
[-1],
[ 4]])
print(B)
print(" ")
print("----------------------------------------------------------------")
# eliminacion hacia adelante que nos permite reducir el conjunto de ecuaciones a un sistema
triangular superior
for i in range(0,n-1,1):
pivote = AB[i,i]
adelante = i + 1
for k in range(adelante,n,1):
factor = AB[k,i]/pivote
AB[k,:] = AB[k,:] - AB[i,:]*factor
AB2 = np.copy(AB)
rounded_array = np.round(np.copy(AB)) #Redonde los elementos de la matriz
print(rounded_array)
print(" ")
print("----------------------------------------------------------------")
# Eliminacion hacia atras de la matriz triangular
print(" Matriz diagonal unitaria aumentada ")
print(" ")
ultimafila = n-1
ultimacolumna = m-1
for i in range(ultimafila,0-1,-1):
pivote = AB[i,i]
atras = i-1
for k in range(atras,0-1,-1):
factor = AB[k,i]/pivote
AB[k,:] = AB[k,:] - AB[i,:]*factor
# diagonal a unos
AB[i,:] = AB[i,:]/AB[i,i]
print(AB)
print(" ")
#Mostramos la solución
X = np.copy(AB[:,ultimacolumna])
print("----------------------------------------------------------------")
print(' Solución de X')
print("----------------------------------------------------------------")
X = np.transpose([X])
print(X)
Referencias: