Eliminación Gaussiana



-Fundamento Teórico-

  • Sistemas de ecuaciones lineales:
    La eliminación gaussiana se aplica a sistemas de ecuaciones lineales, que son sistemas de ecuaciones donde cada ecuación es de primer grado en las incógnitas. 
  • Matriz aumentada:
    El sistema de ecuaciones se representa en forma matricial como una matriz aumentada, que incluye tanto los coeficientes de las incógnitas como los términos independientes. 
  • Operaciones elementales de fila:
    La eliminación gaussiana se basa en la aplicación de operaciones elementales de fila a la matriz aumentada. Estas operaciones son:
    • Intercambiar dos filas. 
    • Multiplicar una fila por un escalar no nulo. 
    • Sumar a una fila un múltiplo de otra fila. 
  • Forma escalonada:
    El objetivo de la eliminación gaussiana es transformar la matriz aumentada en una forma escalonada, donde:
    • Todas las filas que no son todas ceros están por encima de las filas que son todas ceros. 
    • El primer elemento no nulo de cada fila (el "pivote" o "lider") está a la derecha del primer elemento no nulo de la fila anterior. 
  • Solución del sistema:
    Una vez que la matriz aumentada está en forma escalonada, la solución del sistema de ecuaciones se puede obtener fácilmente usando sustitución hacia atrás. 
Aplicaciones:
  • Resolución de sistemas de ecuaciones lineales: La eliminación gaussiana es un método fundamental para resolver sistemas de ecuaciones lineales. 
  • Cálculo de la inversa de una matriz: Se puede usar para calcular la inversa de una matriz cuadrada. 
  • Cálculo del determinante de una matriz: También puede usarse para calcular el determinante de una matriz. 
  • Simplificación de matrices: La eliminación gaussiana puede usarse para simplificar matrices en general

-Algoritmo del Método-

  1. 1. Formular el sistema en forma matricial:
    Convertir el sistema de ecuaciones en una matriz de coeficientes y una matriz de términos independientes. 
  2. 2. Aplicar operaciones elementales de fila:
    • Pivoteo (opcional): Si el elemento en la diagonal principal (pivote) es cero, se puede intercambiar la fila actual con otra que tenga un elemento no cero en esa columna. 
    • Eliminar elementos debajo del pivote: Se utilizan operaciones elementales de fila para hacer ceros debajo del pivote. Para lograr esto, se multiplica la fila del pivote por un escalar y se suma a las filas debajo de ella, de manera que se elimine el elemento debajo del pivote en esas filas. 
  3. 3. Repetir el proceso:
    Se repite el paso anterior con el siguiente pivote, avanzando hacia abajo en la matriz. 
  4. 4. Obtener la forma escalonada:
    Una vez que todos los elementos debajo de la diagonal principal son ceros, la matriz se encuentra en forma escalonada. 
  5. 5. Sustitución hacia atrás:
    Se resuelve el sistema de ecuaciones equivalente a la matriz escalonada, comenzando con la última ecuación (o última fila no cero) y sustituyendo los valores de las variables para resolver las ecuaciones anteriores. 
Ejemplo:
Considere el siguiente sistema de ecuaciones:
Código
2x + y = 5x - y = 1
  1. Forma matricial:
Código
[ 2  1 ] [ x ] = [ 5 ][ 1 -1 ] [ y ] = [ 1 ]
  1. Eliminación:
    • Paso 1:
      • Multiplicar la fila 2 por -2 y sumar a la fila 1:
Código
      [ 2  1 ] [ x ] = [ 5 ]      [ -2  2 ] [ y ] = [ -2 ]      + [ 1 -1 ] [ y ] = [ 1 ]
Código
      [ 2  1 ] [ x ] = [ 5 ]      [ -2  1 ] [ y ] = [ -2 ]
  • Paso 2: Dividir la fila 2 por 2
Código
      [ 2  1 ] [ x ] = [ 5 ]      [ 0 -2 ] [ y ] = [ 1 ]
  1. Forma escalonada:
Código
[ 2  1 ] [ x ] = [ 5 ][ 0 -2 ] [ y ] = [ 1 ]
  1. Sustitución hacia atrás:
    • La segunda ecuación es -2y = 1, por lo tanto, y = -1/2
    • La primera ecuación es 2x + (-1/2) = 5, por lo tanto, 2x = 11/2, x = 11/4
    • La solución es x = 11/4, y = -1/2

-Ejemplo Resuelto Paso a Paso-​

Ejemplo: Resolver el siguiente sistema de ecuaciones

2x+3yz=14x+y+z=22x+y+2z=3\begin{aligned} 2x + 3y - z &= 1 \\ 4x + y + z &= 2 \\ -2x + y + 2z &= 3 \end{aligned}

Este sistema de ecuaciones se puede escribir en forma matricial como:

(231411212)(xyz)=(123)\begin{pmatrix} 2 & 3 & -1 \\ 4 & 1 & 1 \\ -2 & 1 & 2 \end{pmatrix} \begin{pmatrix} x \\ y \\ z \end{pmatrix} = \begin{pmatrix} 1 \\ 2 \\ 3 \end{pmatrix}

El objetivo de la eliminación gaussiana es transformar la matriz de coeficientes en una matriz triangular superior, y luego resolver el sistema mediante sustitución hacia atrás.

Paso 1: Escribir el sistema en forma aumentada

La matriz aumentada del sistema es:

(231141122123)\begin{pmatrix} 2 & 3 & -1 & | & 1 \\ 4 & 1 & 1 & | & 2 \\ -2 & 1 & 2 & | & 3 \end{pmatrix}

Paso 2: Hacer cero los elementos debajo del pivote en la primera columna

El primer elemento (pivote) es 22 (en la posición (1,1)(1,1)).

Primero, transformamos la fila 2 para hacer que el elemento en (2,1)(2,1) sea 0. Restamos 2 veces la fila 1 de la fila 2:

F2F22F1F_2 \leftarrow F_2 - 2F_1 (231141122123)(231105302123)\begin{pmatrix} 2 & 3 & -1 & | & 1 \\ 4 & 1 & 1 & | & 2 \\ -2 & 1 & 2 & | & 3 \end{pmatrix} \Rightarrow \begin{pmatrix} 2 & 3 & -1 & | & 1 \\ 0 & -5 & 3 & | & 0 \\ -2 & 1 & 2 & | & 3 \end{pmatrix}

Ahora, transformamos la fila 3 para hacer que el elemento en (3,1)(3,1) sea 0. Sumamos la fila 1 a la fila 3:

F3F3+F1F_3 \leftarrow F_3 + F_1 (231105302123)(231105300414)\begin{pmatrix} 2 & 3 & -1 & | & 1 \\ 0 & -5 & 3 & | & 0 \\ -2 & 1 & 2 & | & 3 \end{pmatrix} \Rightarrow \begin{pmatrix} 2 & 3 & -1 & | & 1 \\ 0 & -5 & 3 & | & 0 \\ 0 & 4 & 1 & | & 4 \end{pmatrix}

Paso 3: Hacer cero el elemento debajo del pivote en la segunda columna

El pivote en la segunda columna es 5-5 (en la posición (2,2)(2,2)).

Ahora, transformamos la fila 3 para hacer que el elemento en (3,2)(3,2) sea 0. Multiplicamos la fila 2 por 45\frac{4}{-5} y sumamos esta nueva fila a la fila 3:

F3F3+45F2F_3 \leftarrow F_3 + \frac{4}{-5}F_2 (231105300414)(23110530002.44)\begin{pmatrix} 2 & 3 & -1 & | & 1 \\ 0 & -5 & 3 & | & 0 \\ 0 & 4 & 1 & | & 4 \end{pmatrix} \Rightarrow \begin{pmatrix} 2 & 3 & -1 & | & 1 \\ 0 & -5 & 3 & | & 0 \\ 0 & 0 & 2.4 & | & 4 \end{pmatrix}

Paso 4: Triangular superior

La matriz ya es triangular superior:

(23110530002.44)\begin{pmatrix} 2 & 3 & -1 & | & 1 \\ 0 & -5 & 3 & | & 0 \\ 0 & 0 & 2.4 & | & 4 \end{pmatrix}

Paso 5: Sustitución hacia atrás

Ahora que tenemos la matriz triangular, podemos resolver el sistema mediante sustitución hacia atrás.

Resolviendo para zz:

De la última ecuación:

2.4z=4z=42.4=106=532.4z = 4 \quad \Rightarrow \quad z = \frac{4}{2.4} = \frac{10}{6} = \frac{5}{3}

Resolviendo para yy:

Sustituyendo z=53z = \frac{5}{3} en la segunda ecuación:

5y+3z=05y+3×53=05y+5=0y=1-5y + 3z = 0 \quad \Rightarrow \quad -5y + 3 \times \frac{5}{3} = 0 \quad \Rightarrow \quad -5y + 5 = 0 \quad \Rightarrow \quad y = 1

Resolviendo para xx:

Sustituyendo y=1y = 1 y z=53z = \frac{5}{3} en la primera ecuación:

2x+3yz=12x+3×153=12x + 3y - z = 1 \quad \Rightarrow \quad 2x + 3 \times 1 - \frac{5}{3} = 1 2x+353=12x+9353=12x+43=12x + 3 - \frac{5}{3} = 1 \quad \Rightarrow \quad 2x + \frac{9}{3} - \frac{5}{3} = 1 \quad \Rightarrow \quad 2x + \frac{4}{3} = 1

Multiplicamos por 3 para eliminar los denominadores:

6x+4=36x=1x=166x + 4 = 3 \quad \Rightarrow \quad 6x = -1 \quad \Rightarrow \quad x = -\frac{1}{6}

Resultado final

El sistema tiene la siguiente solución:

x=16,y=1,z=53x = -\frac{1}{6}, \quad y = 1, \quad z = \frac{5}{3}

-Código del Método-


import numpy as np
import matplotlib.pyplot as plt

# Definir la matriz de coeficientes y el vector de constantes
A = np.array([[2, 3, -1], [4, 1, 1], [-2, 1, 2]], dtype=float)
b = np.array([1, 2, 3], dtype=float)

# Método de eliminación gaussiana
def gauss_elimination(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]
       
        for j in range(i + 1, n):
            factor = augmented_matrix[j, i] / pivot
            augmented_matrix[j, i:] -= factor * augmented_matrix[i, i:]
   
    # Sustitución hacia atrás
    x = np.zeros(n)
    for i in range(n - 1, -1, -1):
        x[i] = (augmented_matrix[i, -1] - np.dot(augmented_matrix[i, i + 1:n], x[i + 1:])) / augmented_matrix[i, i]
   
    return x

# Resolución del sistema
solution = gauss_elimination(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: 2x + 3y - z = 1
Z1 = (1 - 2*X - 3*Y)

# Ecuación 2: 4x + y + z = 2
Z2 = (2 - 4*X - Y)

# Ecuación 3: -2x + y + 2z = 3
Z3 = (3 + 2*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-

La eliminación gaussiana es un método poderoso y ampliamente utilizado para resolver sistemas de ecuaciones lineales. Su principal objetivo es transformar la matriz aumentada del sistema en una forma escalonada o triangular superior, lo que facilita la determinación de las soluciones. Este proceso implica realizar operaciones elementales de fila para eliminar términos y obtener una forma más sencilla de la matriz. 

Comentarios