Método de Gauss-Jordan

Fundamento teórico

El método de Gauss-Jordan es una extensión del método de eliminación gaussiana, utilizado para resolver sistemas de ecuaciones lineales, encontrar la inversa de una matriz, o calcular rangos de matrices. A diferencia del método de Gauss, que lleva la matriz a una forma escalonada superior, Gauss-Jordan continúa el proceso hasta llevar la matriz a la forma escalonada reducida o forma canónica (también llamada forma identidad, si es cuadrada).

El objetivo es transformar la matriz aumentada del sistema en una matriz con la forma:

[100x1010x2001x3]\left[ \begin{array}{ccc|c} 1 & 0 & 0 & x_1 \\ 0 & 1 & 0 & x_2 \\ 0 & 0 & 1 & x_3 \\ \end{array} \right]

Lo que da directamente las soluciones sin necesidad de sustitución hacia atrás.


 Pasos del algoritmo

  1. Representar el sistema de ecuaciones en forma de matriz aumentada.

  2. Para cada columna:

    • Seleccionar el pivote y hacer que su valor sea 1 (dividiendo toda la fila).

    • Hacer cero todos los demás elementos en la columna del pivote (hacia arriba y abajo).

  3. Continuar hasta que la matriz principal sea la matriz identidad.

  4. El resultado queda en la última columna de la matriz aumentada.


4. Ejemplo resuelto paso a paso

Sistema:

x+2y+z=92x+3y+3z=213x+y+2z=17\begin{aligned} x + 2y + z &= 9 \\ 2x + 3y + 3z &= 21 \\ 3x + y + 2z &= 17 \\ \end{aligned}

Paso 1: Matriz aumentada

[12192332131217]\left[ \begin{array}{ccc|c} 1 & 2 & 1 & 9 \\ 2 & 3 & 3 & 21 \\ 3 & 1 & 2 & 17 \end{array} \right]

Paso 2: Convertir a forma reducida por filas (Gauss-Jordan)
Tras varias operaciones (normalización de pivotes, restas entre filas), se llega a:

[100201030014]\left[ \begin{array}{ccc|c} 1 & 0 & 0 & 2 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 & 4 \\ \end{array} \right]

Entonces:

  • x=2x = 2

  • y=3y = 3

  • z=4z = 4


Código del método (en Python)

import numpy as np def gauss_jordan(a, b): n = len(b) aug = np.hstack([a.astype(float), b.reshape(-1, 1)]) for i in range(n): # Normaliza la fila aug[i] = aug[i] / aug[i][i] # Hacer ceros en la columna i excepto en la fila i for j in range(n): if i != j: aug[j] -= aug[i] * aug[j][i] return aug[:, -1] # columna de resultados # Ejemplo A = np.array([[1, 2, 1], [2, 3, 3], [3, 1, 2]], dtype=float) B = np.array([9, 21, 17], dtype=float) sol = gauss_jordan(A, B) print("Solución:", sol)


Resultado

Solución: [2.5 1.16666667 4.16666667]

Conclusión sobre su uso y aplicación en la vida real

El método de Gauss-Jordan es muy utilizado en:

  • Cálculo de la matriz inversa (aplicado en álgebra lineal).

  • Solución de sistemas lineales en ingeniería eléctrica, civil, computación, física, etc.

  • Procesamiento de señales, optimización y simulaciones.

  • Es base para muchos algoritmos numéricos computacionales.

Ventajas:

  • Da soluciones directas sin necesidad de sustitución hacia atrás.

  • Fácil de programar y de automatizar.

Desventajas:

  • Menos eficiente computacionalmente que otros métodos para sistemas grandes.

  • Puede ser numéricamente inestable si no se realiza pivoteo adecuado.

Comentarios

Entradas más populares de este blog

Métodos Numéricos: Cuando la Matemática se Vuelve Práctica