# Eliminación de Gauss-Jordan

En álgebra lineal, la eliminación de Gauss-Jordan, llamada así en honor de Carl Friedrich Gauss y Wilhelm Jordan, es un algoritmo que se usa para determinar la inversa de una matriz y las soluciones de un sistema de ecuaciones lineales. Un sistema de ecuaciones se resuelve por el método de Gauss cuando se obtienen sus soluciones mediante la reducción del sistema dado a otro equivalente en el que cada ecuación tiene una incógnita menos que la anterior. El método de Gauss transforma la matriz de coeficientes en una matriz triangular superior. El método de Gauss-Jordan continúa el proceso de transformación hasta obtener una matriz diagonal.
Para realizar la reducción de filas en una matriz, se utiliza una secuencia de operaciones elementales de fila para modificar la matriz hasta que la esquina inferior izquierda de la matriz se llene de ceros, tanto como sea posible. Hay tres tipos de operaciones elementales de fila:
* Intercambiar dos filas,
* Multiplicar una fila por un número distinto de cero,
* Sumar un múltiplo de una fila a otra fila. (La resta puede realizarse multiplicando una fila por -1 y sumando el resultado a otra fila).
Utilizando estas operaciones, una matriz siempre se puede transformar en una matriz triangular superior, y de hecho en una que esté en forma escalonada. Una vez que todos los coeficientes principales (la entrada más a la izquierda distinta de cero en cada fila) son 1, y cada columna que contiene un coeficiente principal tiene ceros en otros lugares, se dice que la matriz está en forma escalonada reducida. Esta forma final es única; en otras palabras, es independiente de la secuencia de operaciones de fila utilizadas. Por ejemplo, en la siguiente secuencia de operaciones de fila (donde dos operaciones elementales en filas diferentes se realizan en el primer y tercer paso), la tercera y cuarta matrices son las que están en forma escalonada, y la matriz final es la única forma escalonada reducida.
    ${\begin{bmatrix}1&3&1&9\\1&1&-1&1\\3&11&5&35\end{bmatrix}}\to {\begin{bmatrix}1&3&1&9\\0&-2&-2&-8\\0&2&2&8\end{bmatrix}}\to {\begin{bmatrix}1&3&1&9\\0&-2&-2&-8\\0&0&0&0\end{bmatrix}}\to {\begin{bmatrix}1&0&-2&-3\\0&1&1&4\\0&0&0&0\end{bmatrix}}$
El uso de operaciones de fila para convertir una matriz en forma escalonada reducida se denomina a veces eliminación de Gauss-Jordan. En este caso, el término eliminación de Gauss se refiere al proceso hasta que ha alcanzado su forma triangular superior, o forma escalonada (no reducida). Por razones computacionales, cuando se resuelven sistemas de ecuaciones lineales, a veces es preferible detener las operaciones de fila antes de que la matriz esté completamente reducida.

## Antecedentes

Algunos casos especiales del método -aunque presentados sin demostración- ya eran conocidos por los matemáticos chinos en torno al año 179 de nuestra era.
El método de eliminación de Gauss-Jordan aparece en el capítulo ocho del importante texto matemático chino Jiuzhang suanshu o Los nueve capítulos sobre el arte matemático. Su uso se ilustra en dieciocho problemas, de dos a cinco ecuaciones cada uno. La primera referencia al libro por este título data del 179 DC, pero algunas de sus partes fueron escritas tan pronto como alrededor del 150 a. C., en este año fue señalado por Liu Hui en el siglo III.

## Definiciones y ejemplo de algoritmo

El proceso de reducción de filas hace uso de operaciones elementales de filas, y se puede dividir en dos partes. La primera parte (a veces llamada eliminación hacia adelante) reduce un sistema dado a la forma escalonada de filas, a partir de la cual se puede decir si no hay soluciones, una solución única, o infinitas soluciones. La segunda parte (a veces llamada sustitución hacia atrás) continúa utilizando operaciones de fila hasta que se encuentra la solución; en otras palabras, pone la matriz en forma escalonada reducida.
Otro punto de vista, que resulta muy útil para analizar el algoritmo, es que la reducción de filas produce una descomposición matricial de la matriz original. Las operaciones elementales de fila pueden verse como la multiplicación a la izquierda de la matriz original por matrices elementales. Alternativamente, una secuencia de operaciones elementales que reduce una sola fila puede verse como la multiplicación por una matriz de Frobenius. Entonces, la primera parte del algoritmo calcula una descomposición LU, mientras que la segunda parte escribe la matriz original como el producto de una matriz invertible determinada de forma única y una matriz escalonada de filas reducida determinada de forma única.

### Operaciones de fila

Hay tres tipos de operaciones elementales de fila que se pueden realizar en las filas de una matriz ya indicados anteriormente:
* Intercambiar las posiciones de dos filas.
* Multiplicar una fila por un escalar distinto de cero.
* Añadir a una fila un múltiplo escalar de otra.
Si la matriz está asociada a un sistema de ecuaciones lineales, entonces estas operaciones no cambian el conjunto solución. Por lo tanto, si el objetivo es resolver un sistema de ecuaciones lineales, el uso de estas operaciones de fila podría facilitar el problema.

## Análisis de su complejidad

La complejidad computacional de la eliminación gaussiana es O(n³). Esto es, el máximo número de operaciones requeridas es del orden de n³ si el tamaño de la matriz es n × n.

## Algoritmo de eliminación de Gauss y de Gauss-Jordan

* Ir a la primera columna número cero de izquierda a derecha.
* Si la primera fila tiene un cero en esta columna, intercambiarlo con otra que no lo tenga.
* Luego, obtener ceros debajo de este elemento delantero, sumando múltiplos adecuados del renglón superior a los renglones debajo de él.
* Cubrir el renglón superior y repetir el proceso anterior con la submatriz restante. Repetir con el resto de los renglones (en este punto la matriz se encuentra en forma escalonada).
* Comenzando con el último renglón no cero, avanzar hacia arriba: para cada renglón obtener 1 delantero e introducir ceros arriba de este sumando múltiplos correspondientes a los renglones correspondientes.
Una variante interesante de la eliminación de Gauss es la que llamamos eliminación de Gauss-Jordan, (debido al mencionado Gauss y a Wilhelm Jordan), esta consiste en ir obteniendo los 1 delanteros durante los pasos uno al cuatro (llamados paso directo) así para cuando estos finalicen ya se obtendrá la matriz en forma escalonada reducida.

## Ejemplo

Supongamos que es necesario encontrar los números "x", "y", "z", que satisfacen simultáneamente estas ecuaciones:
    $\left\{{\begin{array}{rrrcr}2x&+y&-z&=&8\\-3x&-y&+2z&=&-11\\-2x&+y&+2z&=&-3\\\end{array}}\right.$
Esto es llamado un sistema lineal de ecuaciones. El objetivo es reducir el sistema a otro equivalente, que tenga las mismas soluciones. Las operaciones (llamadas elementales) son estas:
* Multiplicar una ecuación por un escalar no nulo.
* Intercambiar de posición dos ecuaciones
* Sumar a una ecuación un múltiplo de otra.
Estas operaciones pueden representarse con matrices elementales que se usan también en otros procedimientos como la factorización LU o la diagonalización por congruencia de una matriz simétrica.
En nuestro ejemplo, eliminamos x de la segunda ecuación sumando 3/2 veces la primera ecuación a la segunda y después sumamos la primera ecuación a la tercera. El resultado es:
    $\left\{{\begin{array}{rrrcr}2x&+y&-z&=&8\\&{\frac {1}{2}}y&+{\frac {1}{2}}z&=&1\\&2y&+z&=&5\end{array}}\right.$
Ahora eliminamos y de la primera ecuación sumando -2 veces la segunda ecuación a la primera, y sumamos -4 veces la segunda ecuación a la tercera para eliminar y.
    $\left\{{\begin{array}{rrrcr}2x&&-2z&=&6\\&{\frac {1}{2}}y&+{\frac {1}{2}}z&=&1\\&&-z&=&1\end{array}}\right.$
Entonces podemos resolver por Gauss al sustituir en el sistema de ecuaciones el valor de $z$ continuando con las incógnitas anteriores de abajo hacia arriba y de derecha a izquierda obteniendo el valor de todas las incógnitas. Si continuamos con la variante de Gauss-Jordan eliminamos z de la primera ecuación sumando -2 veces la tercera ecuación a la primera, y sumando 1/2 veces la tercera ecuación a la segunda para eliminar z.
    $\left\{{\begin{array}{rrrcr}2x&&&=&4\\&{\frac {1}{2}}y&&=&{\frac {3}{2}}\\&&-z&=&1\end{array}}\right.$
Despejando, podemos ver las soluciones:
    $\left\{{\begin{array}{rrrcr}x&&&=&2\\&y&&=&3\\&&z&=&-1\end{array}}\right.$
Para clarificar los pasos, se trabaja con la matriz aumentada. Podemos ver los 3 pasos en su notación matricial:
Primero:
    $\left[{\begin{array}{rrrr}2&1&-1&8\\-3&-1&2&-11\\-2&1&2&-3\end{array}}\right]$
Después,
    $\left[{\begin{array}{rrrr}2&0&0&4\\0&1/2&0&3/2\\0&0&-1&1\end{array}}\right]$
Por último.
    $\left[{\begin{array}{rrrr}1&0&0&2\\0&1&0&3\\0&0&1&-1\end{array}}\right]$
Si el sistema fuera incompatible, entonces nos encontraríamos con una fila como esta:
    $\left[{\begin{array}{cccc}0&0&0&a\\\end{array}}\right]$
Que representa la ecuación: $0x+0y+0z=a$, donde a ≠ 0. Es decir, $0=a$, lo que supone una contradicción y, por tanto, no tiene solución. En el caso de que a=0 el sistema tiene varias soluciones.

## Forma escalonada y escalonada reducida

Dos formas especiales de matrices son la escalonada y la escalonada reducida. Una matriz puede tener las siguientes propiedades:
* Todas las filas 0 están en la de la parte inferior de la matriz.
* El primer elemento diferente de cero de cada fila, este es llamado "pivote"; está a la derecha del pivote de la fila anterior (esto supone que todos los elementos debajo de un pivote son cero).
Si una matriz A cumple con esas propiedades, se dice escalonada. Además, cumpliendo estas otras condiciones que detallaremos a continuación, decimos que la matriz se encuentra en la forma escalonada reducida por filas, o simplemente en forma escalonada reducida.
* Todos los elementos delanteros ("pivotes") son iguales a 1
* Todos los elementos por encima de los pivotes son nulos.
Cuando una matriz representa a un sistema de ecuaciones situaciones como tener una columna de ceros parece imposible ya que correspondería a una variable que nunca habría aparecido. Sin embargo esta situación puede presentarse (imaginemos la ecuación de un plano en el espacio en la que no aparece alguna de las componentes, por ejemplo y+z=5). Así la matriz
    $\left[{\begin{array}{rrrrr}1&4&0&0&0\\0&0&1&0&0\\0&0&0&1&-1\\\end{array}}\right]$
también es una matriz escalonada.
Una vez que la matriz del sistema se ha transformado hasta obtener una matriz escalonada reducida es muy fácil discutirlo (es decir, determinar cuántas soluciones tiene):
* Cuando aparece un pivote en la columna de los términos independientes el sistema es incompatible (no tiene ninguna solución).
* En otro caso el sistema es compatible. Si además el número de pivotes coincide con el número de incógnitas el sistema es compatible determinado (tiene una única solución). Cuando el número de pivotes es menor que el número de incógnitas el sistema es indeterminado (tiene infinitas soluciones que dependen de tantos parámetros como indique la diferencia entre el número de incógnitas y el número de pivotes).

## Otras aplicaciones
### Encontrar la inversa de una matriz

Es posible usar la eliminación gaussiana para encontrar inversas de matrices n × n. Para ello se aumenta la matriz dada, digamos A con una matriz identidad, simplemente escribiendo las filas de la identidad a continuación de las de nuestra matriz A, por ejemplo dada:
    $A=\left[{\begin{array}{rrr}2&1&-1\\-3&-1&2\\-2&1&2\end{array}}\right]$
se construiría
    $\left[{\begin{array}{rrr|rrr}2&1&-1&1&0&0\\-3&-1&2&0&1&0\\-2&1&2&0&0&1\end{array}}\right]$
y ahora se realizan las operaciones elementales sobre las filas de la matriz aumentada que sean necesarias para obtener la forma escalonada reducida de la matriz A; sumando tanto a la segunda como a la tercera fila la primera obtenemos
    $\left[{\begin{array}{ccc|ccc}\,\,\,\,2&1&-1&1&0&0\\-1&0&\,\,\,\,1&1&1&0\\\,\,\,\,0&2&\,\,\,\,1&1&0&1\end{array}}\right]$
multiplicamos a la segunda fila por -1 y la intercambiamos con la primera
    $\left[{\begin{array}{ccc|ccc}1&0&-1&-1&-1&0\\2&1&-1&\,\,\,\,1&\,\,\,\,0&0\\0&2&\,\,\,\,1&\,\,\,\,1&\,\,\,\,0&1\end{array}}\right]$
ya tenemos el pivote de la primera fila que usamos para hacer ceros debajo
    $\left[{\begin{array}{ccc|ccc}1&0&-1&-1&-1&0\\0&1&\,\,\,\,1&\,\,\,\,3&\,\,\,\,2&0\\0&2&\,\,\,\,1&\,\,\,\,1&\,\,\,\,0&1\end{array}}\right]$
ahora usamos el pivote de la segunda fila
    $\left[{\begin{array}{ccc|ccc}1&0&-1&-1&-1&0\\0&1&\,\,\,\,1&\,\,\,\,3&\,\,\,\,2&0\\0&0&-1&-5&-4&1\end{array}}\right]$
y por último cambiamos de signo la tercera fila y usamos el pivote correspondiente
    $\left[{\begin{array}{ccc|ccc}1&0&0&\,\,\,\,4&\,\,\,\,3&-1\\0&1&0&-2&-2&\,\,\,\,1\\0&0&1&\,\,\,\,5&\,\,\,\,4&-1\end{array}}\right]$
El proceso ha finalizado porque en la parte izquierda tenemos la forma escalonada reducida de A y puesto que ésta es la matriz identidad, entonces A tiene inversa y su inversa es la matriz que aparece a la derecha, en el lugar que al principio ocupaba la identidad. Cuando la forma escalonada reducida que aparece no es la identidad es que la matriz de partida no tiene inversa.