-Fundamento Teórico-
- Se representa el sistema de ecuaciones lineales como una matriz, donde los coeficientes de las incógnitas forman la matriz de coeficientes y los términos independientes forman una columna separada, creando la matriz aumentada.
- Se realizan operaciones sobre las filas de la matriz aumentada para transformar la matriz de coeficientes en una matriz identidad.
- Se utiliza una serie de operaciones para obtener ceros en todas las posiciones de la matriz de coeficientes, excepto en la diagonal principal, donde se obtienen unos.
- La columna de términos independientes de la matriz resultante contiene las soluciones del sistema de ecuaciones.
Las operaciones elementales de fila que se utilizan son:
- Intercambiar dos filas.
- Multiplicar una fila por un escalar no nulo.
- Sumar a una fila un múltiplo de otra fila.
-Algoritmo del Método-
- Primero, se representa el sistema de ecuaciones lineales en forma de matriz ampliada, donde la matriz de coeficientes está a la izquierda y la matriz de términos independientes a la derecha.
- Intercambio de Filas: Si es necesario, se intercambian filas para que el primer elemento no nulo (el pivote) de la primera columna sea el elemento de la diagonal principal.
- Pivote: Se divide la fila donde está el pivote por el valor del pivote para obtener un 1 en la posición del pivote.
- Eliminación: Se suman o restan múltiplos de la fila del pivote a las demás filas para obtener ceros debajo del pivote.
- Intercambio de Filas: Si es necesario, se intercambian filas para que el primer elemento no nulo (el pivote) de la primera columna sea el elemento de la diagonal principal.
- Ceros por Encima del Pivote: Se utiliza el pivote para eliminar los elementos por encima de él, sumando o restando múltiplos de la fila del pivote a las filas superiores.
- Ceros por Encima del Pivote: Se utiliza el pivote para eliminar los elementos por encima de él, sumando o restando múltiplos de la fila del pivote a las filas superiores.
- Una vez que la matriz está en forma escalonada reducida, se obtienen las soluciones del sistema de ecuaciones directamente de la matriz.
Ejemplo:
Considera el sistema de ecuaciones:
- Matriz Ampliada:
- Eliminación hacia Adelante:
- Intercambiar Filas: Intercambiamos las filas para que el elemento de la diagonal principal sea el pivote.
- Dividir R1 por 2:
- Eliminar el 1 en R2: R2 = R2 - R1:
- Eliminación hacia Atrás:
- Dividir R2 por 1.5:
- Eliminar el 0.5 en R1: R1 = R1 - 0.5*R2:
- Solución: x = 2, y = 1
-Ejemplo Resuelto Paso a Paso-
Ejemplo:
Resolver el siguiente sistema de ecuaciones utilizando el método de Gauss-Jordan:
Este sistema de ecuaciones lo podemos escribir en forma matricial:
Paso 1: Escribir la matriz aumentada
La matriz aumentada del sistema es:
Paso 2: Transformar la matriz en una forma escalonada
Queremos hacer que los elementos debajo de la diagonal principal sean 0.
Fila 2: Hacer 0 el elemento en la posición
Para esto, restamos 2 veces la fila 1 de la fila 2:
Fila 3: Hacer 0 el elemento en la posición
Restamos 3 veces la fila 1 de la fila 3:
Paso 3: Hacer 1 el pivote en la segunda fila, columna 2
Dividimos la fila 2 entre :
Paso 4: Hacer 0 los elementos en la columna 2 de la fila 1 y fila 3
Fila 1: Hacer 0 el elemento en
Restamos 2 veces la fila 2 de la fila 1:
Fila 3: Hacer 0 el elemento en
Sumamos 5 veces la fila 2 a la fila 3:
Paso 5: Hacer 1 el pivote en la tercera fila, columna 3
Dividimos la fila 3 entre 18:
Paso 6: Hacer 0 los elementos en la columna 3 de la fila 1 y fila 2
Fila 1: Hacer 0 el elemento en
Sumamos 7 veces la fila 3 a la fila 1:
Fila 2: Hacer 0 el elemento en
Restamos 5 veces la fila 3 de la fila 2:
Paso 7: Resultado final
La matriz ha quedado en su forma identidad en la parte izquierda, y las soluciones están en la columna derecha:
Por lo tanto, la solución del sistema es:
import numpy as np
import matplotlib.pyplot as plt
# Definir la matriz de coeficientes y el vector de constantes
A = np.array([[1, 2, 3], [2, 3, 1], [3, 1, 2]], dtype=float)
b = np.array([9, 8, 7], dtype=float)
# Método de Gauss-Jordan
def gauss_jordan(A, b):
n = len(b)
# Matriz aumentada
augmented_matrix = np.hstack([A, b.reshape(-1, 1)])
# Eliminación hacia adelante
for i in range(n):
# Pivote
pivot = augmented_matrix[i, i]
# Normalizamos la fila para que el pivote sea 1
augmented_matrix[i, :] = augmented_matrix[i, :] / pivot
# Hacer cero los elementos debajo y encima del pivote
for j in range(n):
if i != j:
factor = augmented_matrix[j, i]
augmented_matrix[j, :] -= factor * augmented_matrix[i, :]
return augmented_matrix[:, -1] # La solución está en la última columna
# Resolución del sistema
solution = gauss_jordan(A, b)
x, y, z = solution
# Imprimir la solución
print(f"Solución del sistema:")
print(f"x = {x:.4f}, y = {y:.4f}, z = {z:.4f}")
# Gráfica de las ecuaciones
x_vals = np.linspace(-3, 3, 400)
y_vals = np.linspace(-3, 3, 400)
X, Y = np.meshgrid(x_vals, y_vals)
# Ecuación 1: x + 2y + 3z = 9
Z1 = (9 - X - 2*Y) / 3
# Ecuación 2: 2x + 3y + z = 8
Z2 = (8 - 2*X - 3*Y)
# Ecuación 3: 3x + y + 2z = 7
Z3 = (7 - 3*X - Y) / 2
# Graficar las tres ecuaciones en 3D
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z1, alpha=0.5, rstride=100, cstride=100, color='blue', edgecolor='none')
ax.plot_surface(X, Y, Z2, alpha=0.5, rstride=100, cstride=100, color='green', edgecolor='none')
ax.plot_surface(X, Y, Z3, alpha=0.5, rstride=100, cstride=100, color='red', edgecolor='none')
# Marcar la solución en el gráfico
ax.scatter(x, y, z, color='black', s=100, label=f'Solución: ({x:.4f}, {y:.4f}, {z:.4f})')
# Títulos y etiquetas
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('Solución del sistema de ecuaciones')
# Leyenda
ax.legend()
# Mostrar gráfico
plt.show()
-Grafica-
-Video Explicativo-
-Conclusión-
El método de Gauss-Jordan es una técnica eficaz para resolver sistemas de ecuaciones lineales, transformando la matriz aumentada en una forma escalonada reducida. Permite encontrar soluciones únicas, infinitas o determinar si un sistema es inconsistente. En esencia, el método facilita la resolución de sistemas complejos y la determinación de la inversa de matrices.
Comentarios
Publicar un comentario