Está en la página 1de 19

Eliminacion gaussiana y otros algoritmos

Departamento de Matematicas, CCIR/ITESM


26 de mayo de 2010

Indice
2.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.3. Forma escalonada por renglones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.4. Pivotes de una matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.5. Algoritmo de eliminacion gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.6. Eliminacion Gaussiana: ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.7. Analisis de los conjuntos solucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.8. Formula para todas las soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.9. Algoritmo de Gauss-Jordan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.10. Algoritmo de Gauss-Jordan: ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.11. Metodo Montante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.12. Metodo de Montante: ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.13. Diferencias operativas de los metodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.14. Complejidad de un algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.15. Complejidad del algoritmo de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.16. Complejidad del algoritmo de Gauss-Jordan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.17. Complejidad del algoritmo de Montante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.18. Comparativa de los algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.19. Algoritmos y computadoras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.20. Y los determinantes del Metodo de Montante? . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.21. Pero, que metodo me conviene seguir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1. Introducci on
En esta lectura veremos procedimientos sistematicos para resolver un sistema de ecuaciones lineales. Estos
algoritmos trabajan directamente sobre la matriz aumentada del sistema llevandola a la matriz de un sistema
triangular que es equivalente al sistema inicial. La equivalencia del sistema triangular nal con el inicial se
argumenta debido a que el algoritmo solo utiliza los tres tipos de operaciones vistos en la lectura anterior y cuya
aplicacion individual siempre preserva la equivalencia. Los procedimientos que revisaremos son: el algoritmo
de Eliminacion Gaussiana, el algoritmo de Gauss-Jordan y el metodo Montante. Finalmente, se realizara una
revision sobre el trabajo computacional realizado por estas estrategias.
2.2. Objetivos
Sera importante que Usted
Entienda los conceptos: matriz escalonada y escalonada reducida.
Entienda y mecanice los procedimientos de
Eliminacion gaussiana,
Eliminacion de Gauss-Jordan, y
El metodo de Montante.
Conozca las diferencias en el proceder entre los algoritmos vistos.
Comprenda las reglas para analizar las soluciones a un sistema de ecuaciones.
Comprenda el concepto de complejidad de un algoritmo.
Conozca las diferencias en los costos de computo de los algoritmos vistos.
2.3. Forma escalonada por renglones
Los algoritmos que veremos trabajan sobre la matriz aumentada y realizan sobre de ella operaciones elemen-
tales de renglon como fueron denidas en la lectura anterior. Esta matriz ira transformandose paulatinamente
a una matriz que posee ciertas propiedades. Lo que haremos primeramente es denir estas.
Denicion 2.1
Una matriz se dice matriz escalonada si cumple:
1. En caso de tener renglones de ceros, todos ellos estan en la parte inferior de la matriz.
2. El elemento delantero de cada renglon no cero (despues del primer renglon) se encuentra a la derecha
del elemento delantero del renglon anterior.
Y se llama matriz escalonada reducida si es escalonada y ademas cumple:
3. El elemento delantero de cualquier rengl on no cero es 1.
4. Todos los elementos arriba y abajo de un 1 delantero son cero.
Ejemplo 2.1
Indique porque las siguientes matrices no son escalonadas:

2 3 1
0 0 0
0 0 1

2 3 1
0 5 2
0 2 1

2 3 1
0 0 2
0 3 2
0 0 0

0 0 0
0 1 3
0 0 3

0 0 3
0 1 3
5 1 3

Solucion
En el primer ejemplo, tiene un renglon de ceros y no aparece hasta el nal; no se cumple la condicion 1. En
el segundo ejemplo, cuando comparamos la posicion del primer elemento no cero del segundo renglon (5) con
la posicion del primer elemento no cero del tercer renglon (2) vemos que el 2 no esta a la derecha del 5; no se
cumple la condicion 2. En el tercer ejemplo, el renglon de cero aparece hasta abajo, pero cuando se comparan
los elementos delanteros de los renglones 2 y 3 el inferior no esta a la derecha del elemento delantero superior:
se cumple la condicion 1 pero no la 2. En el cuarto ejemplo, falla de nuevo la condicion 1. En el ultimo ejemplo,
recuerde solo hay escalonada de derecha a izquierda; el elemento delantero del renglon 2 no esta a la derecha
de delantero del renglon 1
Ejemplo 2.2
Indique porque las siguientes matrices s son escalonadas:

2 3 1
0 5 2
0 0 1

2 3 1
0 1 2
0 0 0
0 0 0

0 2 3
0 0 3
0 0 0

1 2 0
0 0 0
0 0 0

0 0 0
0 0 0
0 0 0

2
Solucion
Observe que las matrices listadas cumplen las condiciones 1 y 2
Ejemplo 2.3
Indique porque las siguientes matrices son escalonadas pero no reducidas:

1 3 1
0 1 0
0 0 2

1 2 1
0 1 2
0 0 1

1 0 1
0 1 0
0 0 1
0 0 0

1 1 3
0 0 1
0 0 0

0 1 3
0 0 1
0 0 0

Solucion
En el primer ejemplo, esta fallando la condicion 3: el elemento delantero del renglon 3 debe ser 1. En el
segundo ejemplo, la condicion 3 se cumple pero la condicion 4 falla: arriba de los 1 delanteros debe haber solo
ceros. En los ejemplos 3, 4 y 5, note que la condicion 4 dice que todos los elementos superiores a los elementos
delanteros deben ser cero. En estos ejemplos no se cumple tan condicion
Ejemplo 2.4
Verique que las siguientes matrices s son escalonadas reducidas:

1 0 0
0 1 0
0 0 1

1 0 3
0 1 1
0 0 0
0 0 0

0 1 0
0 0 1
0 0 0

1 3 4
0 0 0
0 0 0

0 0 0
0 0 0
0 0 0

Solucion
Observe que en el ejemplo 2, el elemento (2,3) no es delantero por ello no se impone la condicion que el elemento
superior sea cero. La matriz es efectivamente escalonada reducida
2.4. Pivotes de una matriz
Cuando una matriz esta en su forma escalonada, los primeros elementos diferentes de cero de cada renglon
reciben el nombre de elementos pivote o simplemente pivotes. Note que por ser el pivote el primer elemento
no cero del renglon, no hay forma que un renglon tenga mas de un pivote: puede no tener pivote en caso de
que sea un renglon de ceros, pero no puede tener dos o mas. Note tambien que por estar escalonada la matriz,
no hay forma que dos pivotes queden en la misma columna: puede una columna no tener pivote, pero si tiene
pivote no puede tener dos o mas. De este hecho, concluimos que una matriz mn no puede tener mas de m
pivotes porque tiene a los mas uno por cada renglon. Y por otro lado, no puede tener mas de n pivotes pues a
lo mas tiene un pivote por cada columna. Es decir, el n umero de pivotes debe ser menor o igual que el mnimo
n umero entre m y n.
2.5. Algoritmo de eliminaci on gaussiana
El Algoritmo de Gauss o de Eliminacion gaussiana consta de los siguientes pasos:
1. Determine la primer columna (a la izquierda) no cero.
2. Si el primer elemento de la columna es cero, intercambielo por un renglon que no tenga cero.
3. Obtenga ceros abajo del elemento delantero sumando m ultiplos adecuados a los renglones debajo de el.
4. Cubra el renglon y la columna de trabajo y repita el proceso comenzando en el paso 1. Al termino del
ciclo entre el paso 1 al 4 (es decir cuando se han barrido todos los renglones), la matriz debera tener
forma de escalon.
5. Comenzando con el ultimo renglon no cero avance hacia arriba para que en cada renglon tenga un 1
delantero y arriba de el queden solo ceros. Para ello debera sumar m ultiplos adecuados del renglon a los
renglones correspondientes.
3
Es importante observar que en el metodo de eliminacion Gaussiana:
Los pasos del 1 a 4 aplicados repetidamente escalonan la matriz; el paso 5 aplicado repetidamente reduce
la matriz.
En el paso 2, si el elemento no es cero no se realiza intercambio.
En el paso 3, los elementos que se hacen cero son solo los inferiores al pivote.
2.6. Eliminaci on Gaussiana: ejemplo
Ejemplo 2.5
Aplique el algoritmo de Gauss a la matriz:
_
_
3 6 9 3
2 4 8 0
2 3 4 1
_
_
Solucion
En nuestro caso la primer columna tiene elementos diferentes de cero, continua entonces en el paso 2. Siendo el
elemento (1, 1) diferente de cero se continua con el paso 3. El elemento (1, 1) sera usado como pivote para hacer
ceros debajo de el; para ello debemos sumar m ultiplos adecuados del renglon pivote a los renglones inferiores:
_
_
3 6 9 3
2 4 8 0
2 3 4 1
_
_
R
2
R
2
(2/3) R
1

R
3
R
3
(2/3) R
1
_
_
3 6 9 3
0 0 2 2
0 1 2 1
_
_
(1)
El algoritmo procede tapando el renglon de trabajo, en este caso el primero. Al repetir el paso 1, el algoritmo
busca la primer columna diferente de cero; en este caso se mueve a la segunda columna y continua con el
paso 2. En vista que elemento (2, 2) es cero debemos buscar en la parte inferior de la columna 2 un elemento
diferente de cero y realizar un intercambio de renglones:
_
_
3 6 9 3
0 0 2 2
0 1 2 1
_
_
R
2
R
3

_
_
3 6 9 3
0 1 2 1
0 0 2 2
_
_
(2)
Continuamos ahora con el paso 3. En este caso los elementos por debajo del elemento (2, 2) son cero, y el
algoritmo procede a la siguiente columa. El algortimo termina en sus pasos 1 al 4. Procede al paso 5.
La matriz es ahora escalonada, el siguiente paso es hacer 1 cada pivote y posteriormente hacer cero arriba
de cada uno de ellos. Hagamos 1 el elemento (3, 3):
_
_
3 6 9 3
0 1 2 1
0 0 2 2
_
_
R
3
1/(2) R
3

_
_
3 6 9 3
0 1 2 1
0 0 1 1
_
_
(3)
Debemos hacer cero por arriba del elemento pivote (3, 3):
_
_
3 6 9 3
0 1 2 1
0 0 1 1
_
_
R
1
R
1
(9) R
3

R
2
R
2
(2) R
3
_
_
3 6 0 12
0 1 0 3
0 0 1 1
_
_
(4)
4
Procedamos con el siguiente elemento pivote (2, 2); el elemento ya es 1 y ahora debemos proceder a hacer
cero por arriba de el:
_
_
3 6 0 12
0 1 0 3
0 0 1 1
_
_
R
1
R
1
6 R
2

_
_
3 0 0 6
0 1 0 3
0 0 1 1
_
_
(5)
El algoritmo concluye haciendo 1 el pivote del primer renglon:
_
_
3 0 0 6
0 1 0 3
0 0 1 1
_
_
R
1
1/3 R
1

_
_
1 0 0 2
0 1 0 3
0 0 1 1
_
_
(6)
2.7. Analisis de los conjuntos soluci on
Una vez escalonando o reduciendo la matriz aumentada de un sistema, hay que saber con precision que se
puede decir sobre el conjunto de soluciones. S olo hay tres posibles resultados en el analisis:
El sistema no tiene solucion: sistema inconsistente.
El sistema tiene una unica solucion.
El sistema tiene innitas soluciones.
Regla de Inconsistencia
El sistema es inconsistente si aparece un pivote en la columna de terminos constantes.
Ejemplo 2.6
Son inconsistentes los sistemas cuya matriz aumentada se convierte mediante operaciones elementales en:
_

_
1 0 0 0
0 1 2 0
0 0 0 1
0 0 0 0
_

_
,
_

_
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
_

_
,
_
1 1 1 2
0 0 0 3
_

Regla de Consistencia
Es consistente cualquier sistema en cuya matriz escalonada no aparece ning un pivote en la columna
de terminos constantes.
Ejemplo 2.7
Son consistentes los sistemas cuya matriz aumentada se convierte mediante operaciones elementales en:
_
_
1 1 1 3
0 2 2 2
0 0 3 1
_
_
,
_

_
1 0 3 1
0 1 2 1
0 0 1 1
0 0 0 0
_

_
,
_
1 1 1 2
0 1 1 1
_

Regla de la Soluci on

Unica
Siendo un sistema consistente, el sistema tiene solucion unica si en la matriz escalonada la columna
de cada variable hay un pivote.
5
Ejemplo 2.8
Tienen solucion unica lo sistemas cuya matriz aumentada se convierte mediante operaciones elementales en:
_
_
1 1 1 3
0 2 2 2
0 0 3 1
_
_
,
_

_
1 0 3 1
0 1 2 1
0 0 1 1
0 0 0 0
_

_

Regla para Soluciones Innitas
Si un sistema es consistente, el sistema tiene soluciones innitas si en la matriz escalonada hay una
columna de una variable sin pivote.
Ejemplo 2.9
Tienen soluciones innitas lo sistemas cuya matriz aumentada se convierte mediante operaciones elementales
en:
_
1 1 1 3
0 2 2 2
_
,
_
_
1 1 1 3
0 2 2 2
0 0 0 0
_
_
,
_

_
1 0 3 1
0 1 2 1
0 0 0 0
0 0 0 0
_

_

Nota Importante
Observe que de los ejemplos anteriores que los renglones de ceros pueden ocurrir en cualquiera de
los casos: puede haber renglones de ceros en la matriz y el sistema ser inconsistente, consistente
con solucion unica o consistente con innitas soluciones. Es decir, los renglones de ceros no dan en
general informacion sobre como es el conjunto solucion.
Pueden ocurrir o no cuando el sistema sea inconsistente:
_

_
1 1 2 0
0 1 3 0
0 0 0 1
0 0 0 0
_

_
,
_
_
1 6 2 0
0 1 1 0
0 0 0 1
_
_
Pueden ocurrir o no cuando el sistema tenga solucion unica:
_

_
1 0 1 4
0 1 2 1
0 0 1 1
0 0 0 0
_

_
,
_
_
1 0 1 4
0 1 2 1
0 0 1 1
_
_
Pueden ocurrir o no cuando el sistema tenga innitas soluciones:
_
_
1 0 1 4
0 1 2 1
0 0 0 0
_
_
,
_
1 0 1 4
0 1 2 1
_

Ejemplo 2.10
Se tiene un sistema de ecuaciones que tiene una matriz aumentada 8 5 y al reducirla tiene un total de 5
pivotes, entonces ..
6
A es inconsistente.
B hay soluciones innitas.
C tiene solucion unica.
D si la ultima columna hay pivote, inconsistente. Si no, unica.
E si la ultima columna hay pivote, inconsistente. Si no, innitas.
Solucion
Puesto que la matriz escalonada de tiene 5 pivotes y la matriz tiene 5 columnas, entonces toda columna tiene
pivote. En particular, la ultima columna tendra pivote. Como la matriz es aumentada, entonces la columna
correspondiente a las constantes tendra pivote. Por lo tanto, el sistema original sera inconsistente. La opcion
que describe la situacion es A
Ejemplo 2.11
Se tiene un sistema de ecuaciones que tiene una matriz aumentada 5 5 y al reducirla tiene un total de 4
pivotes, entonces ..
A es inconsistente.
B tiene solucion unica.
C hay soluciones innitas.
D si en la ultima columna hay pivote, inconsistente. Si no, unica.
E si la ultima columna hay pivote, inconsistente. Si no, innitas.
Solucion
Puesto que la matriz reducida es 55 y tiene 4 pivotes, la ultima columna tiene la posibilidad de tener pivote.
En cuyo caso, el sistema sera inconsistente. Tambien se tiene la posibilidad de que la ultima columna no tenga
pivote. En cuyo caso, el sistema sera consistente y los cuatro pivotes estaran en las primeras columnas. Y por
tanto, en este caso la columna de cada variable tendra pivote y por consiguiente cada variable sera ja. Y por
lo tanto, en este caso habra solucion unica. La respuesta que describe mejor la situacion es la D
Ejemplo 2.12
Se tiene un sistema homogeneo de ecuaciones que tiene una matriz aumentada 5 6 y al reducirla tiene un
total de 5 pivotes, entonces ..
A tiene solucion unica.
B si la ultima columna hay pivote, inconsistente. Si no unica.
C es inconsistente.
D hay soluciones innitas.
E si la ultima columna hay pivote, inconsistente. Si no innitas.
7
Solucion
Puesto que el sistema es homogeneo, en la columna de las constantes habra solo ceros. Por la naturaleza de las
operaciones elementales, en la matriz reducida solo habra ceros en tal columna. Por tanto, no habra pivotes
en la columna de las constantes. Por tanto, el sistema sera consistente y los 5 pivotes estaran en las primeras
columnas y por tanto, en la columna de cada variable habra pivote. Por tanto, el sistema sera consistente con
solucion unica
2.8. F ormula para todas las soluciones
Veamos ahora una estrategia para obtener la formula de donde se obtienen todas las soluciones a un siste-
mas de ecuaciones lineales cuando el sistema tiene innitas soluciones. Ilustraremos esto mediante un par de
ejemplos.
Ejemplo 2.13
Manejando el orden x, y, z, w escriba en forma vectorial la solucion general al sistema:
4 w + 2 x + 6 y + 2 z = 2
w + 3 x + 9 y + 4 z = 14
4 w + 3 x + 9 y + 3 z = 3
3 w + 4 x + 12 y + 4 z = 11
Reporte las coordenadas del vector que multiplica a la variable libre en la solucion resultante.
Solucion (Y metodo general)
Paso 1: Apliquemos Gauss a la matriz aumentada
Formamos la matriz aumentada con el orden que sugiere el problema (x, y, z, w):
_

_
2 6 2 4 2
3 9 4 1 14
3 9 3 4 3
4 12 4 3 11
_

_
1 3 0 0 3
0 0 1 0 2
0 0 0 1 3
0 0 0 0 0
_

_
Al aplicar las reglas de analisis, observamos que el sistema es consistente (al no haber pivote en la columna
de las constantes) y con soluciones innitas (al ser y una variable libre, recuerde que las variables jas son
aquellas en cuya columna hay pivote)
Paso 2: Convierta cada renglon no cero en ecuacion
El renglon 1 de la reducida que:
x + 3 y = 3
El renglon 2 queda:
z = 2
y el renglon 3 queda:
w = 3
8
Paso 3: De cada ecuacion, despeje la variable delantera.
x + 3 y = 3 x = 3 3 y
z = 2 z = 2
w = 3 w = 3
Paso 4: Se complementan las ecuaciones introduciendo ecuaciones donde cada variable libre
es igual a s misma.
x = 3 3 y
y = y
z = 2
w = 3
Paso 5: Se reescribe en forma vectorial las soluciones
_
_
_
_
x
y
z
w
_
_
_
_
=
_
_
_
_
3 3 y
y
2
3
_
_
_
_
Paso 6: Se separa el segundo miembro de acuerdo a las constantes y a las variables libres
_
_
_
_
x
y
z
w
_
_
_
_
=
_
_
_
_
3
0
2
3
_
_
_
_
+ y
_
_
_
_
3
1
0
0
_
_
_
_
Lo anterior es la formula general para todas las soluciones del sistema original; el concepto de variable libre
indica que se puede tomar cualquier valor y que con el se produce una solucion. Tambien, aunque esto no es tan
evidente, que cualquier otra solucion puede obtenerse de esta formula para valores adecuados de las variables
libres
Ejemplo 2.14
Determine la solucion general en forma vectorial para el sistema:
6 w 2 x + 3 y + 3 z = 3
5 w + 2 x + y 2 z = 2
w 4 x + 2 y + 5 z = 1
13 w 8 x + 8 y + 11 z = 7
Solucion
Sigamos la metodologa descrita en el ejemplo anterior:
9
Aplicamos Gauss a la matriz aumentada (orden: x, y, z, w):
_

_
2 3 3 6 3
2 1 2 5 2
4 2 5 1 1
8 8 11 13 7
_

_
1 0 9/8 9/8 3/8
0 1 1/4 11/4 5/4
0 0 0 0 0
0 0 0 0 0
_

_
Convertimos cada renglon diferentes de cero de la matriz reducida a una ecuacion:
x 9/8 z + 9/8 w = 3/8
y + 1/4 z + 11/4 w = 5/4
Ahora, despejamos las variables jas (x y y):
x = 3/8 + 9/8 z 9/8 w
y = 5/4 1/4 z 11/4 w
Complementamos las ecuaciones con ecuaciones donde cada variable libre esta igualada a s misma:
x = 3/8 + 9/8 z 9/8 w
y = 5/4 1/4 z 11/4 w
z = z
w = w
Ahora, le damos a lo anterior la forma de una igualdad entre vectores:
_
_
_
_
x
y
z
w
_
_
_
_
=
_
_
_
_
3/8 + 9/8 z 9/8 w
5/4 1/4 z 11/4w
z
w
_
_
_
_
Finalmente, separamos el lado izquierdo de acuerdo a las variables libres:
_
_
_
_
x
y
z
w
_
_
_
_
=
_
_
_
_
3/8
5/4
0
0
_
_
_
_
+ z
_
_
_
_
9/8
1/4
1
0
_
_
_
_
+ w
_
_
_
_
9/8
11/4
0
1
_
_
_
_

2.9. Algoritmo de Gauss-Jordan
El Algoritmo de Gauss-Jordan consta de los siguientes pasos:
1. Determine la primer columna (a la izquierda) no cero.
2. Si el primer elemento de la columna es cero, intercambielo por un renglon que no tenga cero. Multiplicando
apropiadamente el renglon, hagalo 1. Este primer 1 sera llamado 1 pivote.
3. Obtenga ceros arriba y abajo del 1 pivote sumando m ultiplos adecuados a los renglones debajo de renglon
pivote en la matriz completa.
4. Cubra la columna y el renglon de trabajo y repita el proceso comenzando en el paso 1 con la columna
siguiente.
Es importante observar que en el metodo de Gauss-Jordan:
En la idea general, la matriz se va escalonando y reduciendo a la vez.
En el paso 2, si el elemento no es cero no se realiza intercambio.
En el paso 3, los elementos que se hacen cero no solo son los inferiores al pivote (Eliminacion Gaussiana)
sino tambien los superiores.
10
2.10. Algoritmo de Gauss-Jordan: ejemplo
Ejemplo 2.15
Aplique el algoritmo de Gauss-Jordan a la matriz:
_
_
3 6 9 3
2 4 8 0
2 3 4 1
_
_
Solucion
En el paso 1 se ubica la primer columna diferente de cero: es la primer columna. En el paso 2 se revisa si el
primer elemento es diferente de cero el cual es nuestro caso. Procedemos ahora con el paso 3. Contrario al
algoritmo de Gauss, el algoritmo de Gauss-Jordan primero crea los 1s pivote:
_
_
3 6 9 3
2 4 8 0
2 3 4 1
_
_
R
1
1/3 R
1

_
_
1 2 3 1
2 4 8 0
2 3 4 1
_
_
(7)
Posteriormente hace cero debajo de el:
_
_
1 2 3 1
2 4 8 0
2 3 4 1
_
_
R
2
R
2
2 R
1

R
3
R
3
(2) R
1
_
_
1 2 3 1
0 0 2 2
0 1 2 1
_
_
(8)
Cubrimos ahora la primer columna y el primer renglon y repetimos el procedimiento. En el paso 1 identicamos
la primer columna diferente de cero de la parte no cubierta. La primer columna cumple. Apliquemos el paso
2 ahora. En este caso el elemento (2, 2) es cero y se debera buscar un elemento inferior que sea diferente de
cero:
_
_
1 2 3 1
0 0 2 2
0 1 2 1
_
_
R
2
R
3

_
_
1 2 3 1
0 1 2 1
0 0 2 2
_
_
(9)
El elemento pivote (2, 2) ya es 1; el algoritmo procede ahora a hacer ceros arriba y debajo de el:
_
_
1 2 3 1
0 1 2 1
0 0 2 2
_
_
R
1
R
1
2 R
2

_
_
1 0 1 1
0 1 2 1
0 0 2 2
_
_
(10)
Cubrimos ahora la segunda columna y el segundo renglon de la matriz. Y procedemos de nuevo con el paso 1.
La columna de la matriz descubierta se reduce a un solo elemento y que no es cero. Procedemos con el paso 2.
El pivote es ahora el elemento (3, 3); primero se crea el 1 pivote:
_
_
1 0 1 1
0 1 2 1
0 0 2 2
_
_
R
3
1/(2) R
3

_
_
1 0 1 1
0 1 2 1
0 0 1 1
_
_
(11)
Posteriormente, se hacen ceros arriba y debajo de el:
_
_
1 0 1 1
0 1 2 1
0 0 1 1
_
_
R
1
R
1
1 R
3

R
2
R
2
(2) R
3
_
_
1 0 0 2
0 1 0 3
0 0 1 1
_
_
(12)
11
2.11. Metodo Montante
El Algoritmo Montante es una estrategia desarrollada en los 70s por el profesor Mario Rene Montante en
aquel entonces profesor de FIME de la UANL, Mexico. El metodo trabaja bajo el supuesto principal que la
matriz es solo de n umeros enteros y que no se realizara ninguna division entre enteros salvo al nal. Esto
minimiza el total de errores por redondeo. El metodo procede de una forma semejante al de Gauss-Jordan sin
hacer uno los pivotes y forzando a que los elementos que se haran cero sean m ultiplos del pivote. El metodo
consta de los siguientes pasos:
1. Determine la primer columna (a la izquierda) no cero.
2. Si el primer elemento de la columna es cero, intercambielo por un renglon que no tenga cero. Este se
llamara elemento pivote x.
3. Obtenga ceros arriba y abajo del pivote x primeramente multiplicando cada renglon por x y posterior-
mente sumando m ultiplos del renglon pivote. En terminos de operaciones elementales lo que se realiza
es que para cada renglon i diferente del renglon pivote hacer
R
i
xR
i
R
i
R
i
a
i,m
R
m
4. Repita el proceso comenzando en el paso 1 para el renglon siguiente.
El principal comentario es que en el paso 3 la instruccion R
i
xR
i
tiene la intencion de hacer que el elemento
a hacer 0 se haga un m ultiplo del elemento pivote de forma tal que no se requiere ninguna division en la
instruccion de eliminacion.
2.12. Metodo de Montante: ejemplo
Ejemplo 2.16
Aplique el algoritmo de Montante a la matriz:
_
_
3 6 9 3
2 4 8 0
2 3 4 1
_
_
Solucion
Debemos multiplicar el renglon 2 y 3 por el elemento (1, 1):
_
_
3 6 9 3
2 4 8 0
2 3 4 1
_
_
R
2
3 R
2

R
3
3 R
3
_
_
3 6 9 3
6 12 24 0
6 9 12 3
_
_
(13)
Ahora la cancelacion procede utilizando el renglon 1 con los elementos (2, 1) y (3, 1) anteriores a la multipli-
cacion:
_
_
3 6 9 3
6 12 24 0
6 9 12 3
_
_
R
2
R
2
(2) R
1

R
3
R
3
(2) R
1
_
_
3 6 9 3
0 0 6 6
0 3 6 3
_
_
(14)
Ahora deberemos intercambiar los renglones 2 y 3 para tener un pivote en (2, 2):
_
_
3 6 9 3
0 0 6 6
0 3 6 3
_
_
R
2
R
3

_
_
3 6 9 3
0 3 6 3
0 0 6 6
_
_
(15)
12
Para eliminar el elemento arriba del pivote (2, 2) el algoritmo procede multiplicando el renglon 1 por el pivote
(2, 2):
_
_
3 6 9 3
0 3 6 3
0 0 6 6
_
_
R
1
3 R
1

_
_
9 18 27 9
0 3 6 3
0 0 6 6
_
_
(16)
La cancelacion arriba del pivote (2, 2) procede restando al renglon 1 el renglon pivote por el contenido previo
del elemento (1, 2):
_
_
9 18 27 9
0 3 6 3
0 0 6 6
_
_
R
1
R
1
(6) R
2

_
_
9 0 9 9
0 3 6 3
0 0 6 6
_
_
(17)
Ahora el pivote es el elemento (3, 3) y debemos hacer cero arriba de el. Para ello el algoritmo procede multi-
plicando los renglones donde se hara la cancelacion por el elemento pivote:
_
_
9 0 9 9
0 3 6 3
0 0 6 6
_
_
R
1
6 R
1

R
2
6 R
2
_
_
54 0 54 54
0 18 36 18
0 0 6 6
_
_
(18)
La cancelacion procede restando los m ultiplos del renglon 3 usando los elementos anteriores a la multiplicacion:
_
_
54 0 54 54
0 18 36 18
0 0 6 6
_
_
R
1
R
1
(9) R
3

R
2
R
2
(6) R
3
_
_
54 0 0 108
0 18 0 54
0 0 6 6
_
_
(19)
Las unicas divisiones proceden al nal:
_
_
54 0 0 108
0 18 0 54
0 0 6 6
_
_
R
1
1/(54) R
1
R
2
1/(18) R
2

R
3
1/(6) R
3
_
_
1 0 0 2
0 1 0 3
0 0 1 1
_
_
(20)
2.13. Diferencias operativas de los metodos
Veamos ahora un ejemplo donde se maniesta las diferencias de operacion entre los metodos
Ejemplo 2.17
Para la matriz:
_
23 13 1
0 11 3
_
indique cual sera el siguiente paso de acuerdo a:
a) Eliminacion Gaussiana
b) Metodo de Gauss-Jordan
c) Metodo de Montante
entre las opciones:
1) R
1
11 R
1
2) R
1

1
23
R
1
3) R
1
R
1

13
11
R
2
13
4) R
2

1
11
R
2
Respuesta:
Recuerde que el algoritmo de eliminacion gaussiana primeramente escalona la matriz y luego reduce. En este
caso la matriz ya esta escalonada: por tanto, eliminacion gaussiana prepara la reduccion haciendo 1 el ele-
mento pivote inferior. Por tanto, eliminacion gaussiana debe hacer 1 el elemento (2, 2), lo cual coincide con la
opcion 4. En el caso del Gauss-Jordan, se realiza la reduccion preparando el pivote de arriba para abajo. Por
tanto, Gauss-Jordan debe hacer uno el elemento (1, 1), lo que coincide con la opcion 2. El metodo Montante
va escalonando y reduciendo la matriz de arriba hacia abajo evitanto las divisiones. Estando escalonada la
matriz, Montante trabajara con el elemento (2, 2) para hacer cero en la parte superior. En este caso particular,
Montante hara que el elemento (1, 2) fuera m ultiplo del pivote (2, 2). As Montante, debe multiplicar el renglon
1 por el elemento pivote (2, 2). Esto corresponde a la opcion 1. Resumiendo: Eliminacion Gaussiana 4,
Gauss-Jordan 2, Montante 1
2.14. Complejidad de un algoritmo
Existen dos medidas importantes de una estrategia de solucion o algoritmo en la resolucion de un problema.
El concepto de algoritmo es el de un procedimento sistematico y muy bien especcado para realizar una tarea
determinada. La primer medida de un algoritmo es su certeza, es decir, la total conanza de que cuando el
algoritmo es aplicado en un cierto problema, encontrara la solucion correcta o bien indicara que el problema no
tiene solucion. La otra medida es la complejidad de un algoritmo, es decir, la cantidad de trabajo involucrado
por aquella persona o sistema de computo que lleva a cabo cada uno de los pasos. En los algoritmos donde se
buscan soluciones numericas el principal indicador de la medida de trabajo o complejidad es el conteo total
de las operaciones aritmeticas realizadas desde el inicio del programa hasta la obtencion de la solucion. Las
operaciones que se contabilizan son las operaciones de suma, multiplicacion, sustraccion, y division. Puesto
que para las computadoras recientes el tiempo invertido por su procesador en una suma es el mismo que el
realizado por una multiplicacion, resta, o division, en el conteo de operaciones no se especica si fueron unas u
otras. La palabra FLOP (FLoating point OPeration) reere a una operacion entre n umeros reales y abarca
suma, resta, multiplicacion, o division.
El analisis que realizaremos de la complejidad de los algoritmos vistos sera contando el n umero total
de FLOPs que se invierte cuando se aplica a un sistema lineal de n ecuaciones con n incognitas general.
Despreciaremos en nuestro analisis el esfuezo computacional de preguntar si un n umero es diferente de cero,
as como los posibles intercambios entre los renglones para darle la forma escalonada. Sobre este ultimo punto,
la mayora de las implementaciones computacionales de los algoritmos poseen trucos de programacion para
evitar el movimiento de n umeros en la memoria de la computadora utilizando apuntadores y vectores de
ndices. Un hecho que asumiremos es que nunca nos encontraremos con una columna de ceros. De encontrarse
tal columna el trabajo computacional se reducira porque la matriz con la cual se opera tiene menos n umeros,
y esto no es un caso general. Este tipo de suposiciones se conoce como el analisis del peor de los casos. En
los siguientes analisis, haremos el truco de introducir la variable m que ira bajando sobre los renglones de la
matriz.
2.15. Complejidad del algoritmo de Gauss
Supongamos que estamos aplicamos el algoritmo de eliminacion gaussiana a un sistema n por n y que
estamos trabajando ya con el renglon m. Consideraremos primero el trabajo realizado por los pasos 1 al 4 y
posteriormente el trabajo realizado en el paso 5. Es importante notar que el proceso de Gauss avanza dejando
14
la matriz escalonada hasta la columna de trabajo:
_

_
a
1,1
a
1,2
a
1,m1
a
1,m

0 a
2,2
a
2,m1
a
2,m

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 a
m1,m1
a
m1,m

0 0 0 a
m,m

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 a
n,m

_

_
1 Ciclo del paso 1 al 4
Al asumir que a
m,m
es diferente de cero, pasamos al paso 3. En el paso 3 hay que hacer cero debajo del
elemento (m, m), para cada uno de los mn renglones inferiores R
i
; para ello habra que
calcular el factor f = a
i,m
/a
m,m
por el cual debe multiplicarse el renglon R
m
, lo cual implica
realizar una division, y posteriormente
realizar la operacion:
R
i
R
i
f R
m
.
En este caso, en el renglon i hay ceros hasta antes de la columna m, en el elemento (i, m) quedara un
cero (el factor f fue calculado para ello), as que los unicos elementos que deberan calcularse son los
elementos del renglon i desde la columna (m+1) y hasta terminar, es decir, hasta la columna n+1,
es decir, un total de (n+1) (m+1) +1 = nm+1 elementos, y para cada uno de ellos habra que
hacer a
m+1,j
a
m+1,j
f a
m,j
, es decir para cada uno de ellos habra que hacer 2 FLOPs, siendo
un total de n m + 1 elementos, el n umero total de FLOPs que habra que realizar para hacer la
operacion R
i
R
i
f R
m
es, incluyendo la division para calcular f, 2(nm+1)+1 = 2n2m+3.
Como esto habra que aplicarlo a todos los renglones por debajo del renglon m y hasta el n, entonces
para realizar un ciclo desde el paso 1 hasta el paso 4 deben hacerse (n m) (2 n 2m + 3) FLOPS. El
ciclo del paso 1 al paso 4 y su repeticion ira avanzando m desde 1 hasta n 1. Por consiguiente el total
de FLOPs sera:
n1

m=1
(n m) (2 n 2 m + 3) =
2
3
n
3
+
1
2
n
2

7
6
n.
El ciclo en el paso 5 inicia en el ultimo rengl on, hace 1 el elemento pivote y luego a cada renglon superior el
resta el renglon inferior multiplicado por la constante adecuada. As, si asumimos que se esta trabajando en el
renglon m la matriz se vera:
_

_
a
1,1
a
1,2
a
1,m
0 0 a
1,n+1
0 a
2,2
a
2,m
0 0 a
2,n+1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 a
m,m
0 0 a
m,n+1
0 0 0 1 0 a
m+1,n+1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 0 1 a
n,n+1
_

_
Es decir, que
en el renglon m solo existiran dos elementos diferentes de cero; el elemento (m, m) y el elemento
(m, n + 1).
15
2 Ciclo del paso 5.
Las operaciones implicadas en el paso 5 seran
R
m

1
am,m
R
m
Por la observacion anterior, para esto se requiere solo una division; la del termino constante entre el
elemento pivote, la del pivote entre si mismo ya sabemos que dara 1 y no se realizara, simplemente
en la posicion (m, m) pondremos un 1
R
j
R
j
a
j,m
R
m
Por la misma observacion anterior, esta operacion solo requiere una multiplicacion y una resta, estas
operaciones solo tienen que ver con los terminos constantes. Los nuevos elementos a
j,m
seran cero.
Como hay m1 renglones superiores, el total de operaciones en un ciclo del paso 5 sera:
2 (m1) + 1 = 2 m1
Por consiguiente el total de FLOPs en el paso 5 sera:
1

m=n
(2 m1) = n
2
Por consiguiente, en general cuando se aplica en algoritmo de eliminacion gaussiana a un sistema n n el
n umero de FLOPs es:
2
3
n
3
+
3
2
n
2

7
6
n (21)
2.16. Complejidad del algoritmo de Gauss-Jordan
Supongamos que estamos aplicando el algoritmo a una matriz aumentada n por n + 1 y que estamos
trabajando con el renglon m. El algoritmo avanza del primer renglon hasta el ultimo. Es importante notar que
el proceso de Gauss-Jordan avanza dejando la matriz reducida hasta el renglon de trabajo R
m
:
_

_
1 0 0 a
1,m

0 1 0 a
2,m

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 1 a
m1,m

0 0 0 a
m,m

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 a
n,m

_

_
Supongamos que estamos ubicados en el renglon m, lo que debemos hacer es hacer un uno pivote en la posicion
(m, m) y posteriormente hacer ceros por arriba y por debajo de el.
1. Paso 2.
Lo que debe hacerse es dividir el renglon entre el elemento pivote: en dicho renglon, antes de la columna
m hay ceros, en el elemento (m, m) quedara un 1, as que los unicos elementos a calcular en el renglon
m son apartir de la columna m + 1 y hasta la columna n + 1. As deberan hacerse
(n + 1) (m + 1) + 1 = n m + 1
divisiones.
16
2. Paso 3.
Para cada renglon i diferente de m debemos realizar
R
i
R
i
a
i,m
R
m
.
Como el renglon m tiene ceros antes de la columna m y en a
i,m
quedara un cero, los unicos elementos
que se calcularan son a
i,j
a
i,j
a
i,m
a
m,j
, desde j = m + 1 y hasta j = n + 1, es decir un total de
(n + 1) (m + 1) + 1 = n m + 1. Como para cada uno de ellos se realizan dos operaciones entonces el
total de FLOPs para hacer un cero en un renglon arriba o abajo de (m, m) se requieren 2 (n m + 1)
Como hay en total n renglones , el n umero total de FLOPs en el paso 3 sera: (n 1) 2 (n m + 1) Por
consiguiente, en una iteracion del paso 2 seguido del paso 3 se haran n m + 1 + (n 1) 2 (n m + 1)
Como el algoritmo de Gauss-Jordan itera los pasos 2 y 3 recorriendo todos los renglones, el n umero total de
FLOPs sera:
n

m=1
(n m + 1 + (n 1) 2 (n m + 1)) = n
3
+
1
2
n
2

1
2
n
As, la complejidad del algoritmo de Gauss-Jordan es:
n
3
+
1
2
n
2

1
2
n (22)
2.17. Complejidad del algoritmo de Montante
Supongamos que aplicamos el algoritmo a una matriz aumentada n por n + 1. El algoritmo avanza del
primer renglon hasta el ultimo. Es importante notar que el proceso de Montante avanza dejando la matriz de
la siguiente forma hasta la columna de trabajo:
_

_
a
1,1
0 0 a
1,m

0 a
2,2
0 a
2,m

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 a
m1,m1
a
m1,m

0 0 0 a
m,m

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 a
n,m

_

_
Supongamos que estamos ubicados en el renglon m, lo que debemos hacer es hacer ceros por arriba y por
debajo de el.
Multiplicacion de los renglones superiores por a
m,m
.
Esto implica realizar multiplicaciones por un total de:
(m1) (n m + 1) + m1
Multiplicacion de los renglones inferiores por a
m,m
.
Esto implica realizar multiplicaciones por un total de:
(n m) (n m + 1)
A cada renglon diferente de m aplicarle R
i
R
i
a
i,m
R
m
Esto da un total de:
(n 1) 2 (n m + 1)
17
Sumando los terminos anteriores, el total de FLOPs para el trabajo con el renglon m es:
3 n
2
3 mn + 4 m4
Por consiguiente, al repetir estos pasos desde el primer renglon hasta el ultimo daran un total de FLOPs:
n

m=1
_
3 n
2
3 mn + 4 m4
_
=
3
2
n
3
+
1
2
n
2
2 n
Posteriormente habra que hacer 1 cada elemento pivote realizando n divisiones adicionales. As, la complejidad
del algoritmo de Montante es:
3
2
n
3
+
1
2
n
2
n (23)
2.18. Comparativa de los algoritmos
A pesar que la complejidad de los algoritmos indica que el algoritmo de eliminacion gaussiana es mejor
por tener la menor complejidad, la version en computadora paralela (muchos procesadores) del algoritmo de
Gauss-Jordan tiene una menor complejidad que la version paralela del algoritmo de Eliminacion Gaussiana. Al
asignarle a cada procesador la instruccion R
i
R
i
f R
j
, eliminacion gaussiana los ejecuta de i = j +1, . . . , n
mientras que Gauss-Jordan los ejecuta para i = j, aprovechando los procesadores mas ecientemente. El
algoritmo de Montante tiene la ventaja que si se utiliza para matrices con coecientes enteros las unicas
divisiones realizadas seran las ultimas, lo cual reduce sustancialmente el error numerico. Una desventaja
importante del algoritmo de Montante es que los coecientes en la matriz pueden crecer considerablemente.
En resumen, aunque el mejor algoritmo general para resolver un sistema de ecuaciones lineales es el algoritmo
de eliminacion gaussiana, puede haber situaciones particulares al problema o al ambiente de computo que
haga que otro algoritmo tenga ventajas sobre el. Por ello es que es conveniente conocer otras alternativas para
resolver problemas y conocer sus ventajas o desventajas.
2.19. Algoritmos y computadoras
Las computadoras operan realizando instrucciones basicas paso a paso. Dichas instrucciones son ejecutadas
en forma sncrona con un reloj interno. En nuestros das (a no de 2005), es com un escuchar que la velocidad de
una computadora se mida en algunos pocos gigahertz, digamos por ejemplo 1.3 Gigahertz. Ello quiere decir
que el reloj interno de una computadora ejecutara 1.3 10
9
ciclos en un segundo. Lo cual equivale a decir que
aproximadamente dicha computadora ejecutara 1.3 10
9
instrucciones basicas en un segundo.
El tiempo de ejecucion de un FLOP en las computadoras puede variar; en algunas computadoras toma el
tiempo de 1, 2 o en algunos casos 3, instrucciones basicas para completar un FLOP. Si seguimos el ejemplo
de la computadora de 1.3 Ghz y suponemos que nuestra hipotetica computadora tome 2 instrucciones basicas
para completar un FLOP, podramos decir que cada FLOP tomara 1/(1.3 10
9
)/2 segundos. Para tener
una idea del uso de la complejidad del algoritmo para determinar tiempos de computo, digamos que se desea
utilizar un programa que realiza el algoritmo de Gauss en dicha computadora para resolver un sistema de
100 100. Entonces, dicho programa realizara 681550 FLOPs, por consiguiente el tiempo que tomara solo
en operaciones de punto otante sera 681550/(1.3 10
9
)/2 0.000262 segundos. Mientras que para un
sistema 1000 1000 sera de .256986 segundos y para uno de 10000 10000 sera de 256.467 segundos. En
ambientes de manufactura donde se utiliza el metodo del elemento nito para hacer simulaciones, es com un
trabajar con matrices de mas de 10
6
10
6
. Resolver un sistema 10
6
10
6
en tal computadora se requerira,
contando solo tiempo por operaciones de punto otante, un poco mas de 8 a nos en ser resuelto. Ademas,
requerira mas de 900 terabytes para ser almacenado. Por ello, es que existen algoritmos especializados que
aprovechan el hecho de que la matriz tiene una forma particular para economizar operaciones y espacio.
18
2.20. Y los determinantes del Metodo de Montante?
En la denicion original del metodo de Montante como fue propuesto por su creador, se haca referencia
a determinantes de 2 por 2. En la presentacion dada en esta lectura hemos omitido tal referencia y hemos
preferido reducir el metodo a operaciones elementales de renglon las cuales creemos que hacen el metodo mas
claro y que no requieren ning un otro concepto. Para corroborar la equivalencia, vea los siguientes calculos al
aplicar el metodo Montante en la matriz dada y compare los contenidos de la matriz intermedia en la posicion
(2, 2) o (3, 2) con la matriz inicial. Primeramente obligamos a que sean m ultiplos de (1, 1) los contenidos de
(2, 1) y (3, 1):
_
_
a
11
a
12

a
21
a
22

a
31
a
32

_
_
R
2
a
11
R
2

R
3
a
11
R
3
_
_
a
11
a
12

a
11
a
21
a
11
a
22

a
11
a
31
a
11
a
32

_
_
(24)
Posteriormente, se procede a hacerlos cero utilizando el elemento pivote (1, 1):
_
_
a
11
a
12

a
11
a
21
a
11
a
22

a
11
a
31
a
11
a
32

_
_
R
2
R
2
a
21
R
1

R
3
R
3
a
31
R
3
_
_
a
11
a
12

0 a
11
a
22
a
21
a
12

0 a
11
a
32
a
31
a
12

_
_
(25)
Viendo los contenidos nales de (2, 2) o de (3, 2) la referencia a los determinantes 2 por 2 en la matriz inicial
es obvia, aunque consideramos que tambien innecesaria.
2.21. Pero, que metodo me conviene seguir?
Como se vera mas adelante en el curso, debido al signicado de cada n umero en la reducida, la matriz redu-
cida obtenida de una matriz dada es unica. Esto signica que cualquier procedimiento basado en operaciones
elementales de renglon debe llevar al mismo resultado. Por tanto, esto nos da la posibilidad de seguir cualquier
estrategia basada en operaciones elementales de renglon para reducir una matriz. Lo que normalmente se hace
es revisar a simple vista en cada momento aquel elemento que conviene que sea pivote de manera que involucre
o menor n umero de operaciones o bien operaciones menos complejas. Sin duda, el hacer un n umero razonable
de ejemplos le ira construyendo la intuicion del camino personal de reduccion de una matriz.
19

También podría gustarte