SlideShare una empresa de Scribd logo
Eliminaci´on gaussiana y otros algoritmos
Departamento de Matem´aticas, CCIR/ITESM
10 de enero de 2011
´Indice
2.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.3. Forma escalonada por renglones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.4. Pivotes de una matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.5. Algoritmo de eliminaci´on gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.6. Eliminaci´on Gaussiana: ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.7. An´alisis de los conjuntos soluci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.8. F´ormula para todas las soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.9. Algoritmo de Gauss-Jordan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.10. Algoritmo de Gauss-Jordan: ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.11. M´etodo Montante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.12. M´etodo de Montante: ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.13. Diferencias operativas de los m´etodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 M´etodo de Montante? . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.21. Pero, qu´e m´etodo me conviene seguir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1. Introducci´on
En esta lectura veremos procedimientos sistem´aticos para resolver un sistema de ecuaciones lineales. Estos
algoritmos trabajan directamente sobre la matriz aumentada del sistema llev´andola a la matriz de un sistema
triangular que es equivalente al sistema inicial. La equivalencia del sistema triangular final con el inicial se
argumenta debido a que el algoritmo s´olo utiliza los tres tipos de operaciones vistos en la lectura anterior y cuya
aplicaci´on individual siempre preserva la equivalencia. Los procedimientos que revisaremos son: el algoritmo
de Eliminaci´on Gaussiana, el algoritmo de Gauss-Jordan y el m´etodo Montante. Finalmente, se realizar´a una
revisi´on sobre el trabajo computacional realizado por estas estrategias.
2.2. Objetivos
Ser´a importante que Usted
Entienda los conceptos: matriz escalonada y escalonada reducida.
Entienda y mecanice los procedimientos de
• Eliminaci´on gaussiana,
• Eliminaci´on de Gauss-Jordan, y
• El m´etodo 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 c´omputo 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 rengl´on como fueron definidas en la lectura anterior. Esta matriz ir´a transform´andose paulatinamente
a una matriz que posee ciertas propiedades. Lo que haremos primeramente es definir ´estas.
Definici´on 2.1
Una matriz se dice matriz escalonada si cumple:
1. En caso de tener renglones de ceros, todos ellos est´an en la parte inferior de la matriz.
2. El elemento delantero de cada rengl´on no cero (despu´es del primer rengl´on) se encuentra a la derecha
del elemento delantero del rengl´on anterior.
Y se llama matriz escalonada reducida si es escalonada y adem´as 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 porqu´e 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


Soluci´on
En el primer ejemplo, tiene un rengl´on de ceros y no aparece hasta el final; no se cumple la condici´on 1. En
el segundo ejemplo, cuando comparamos la posici´on del primer elemento no cero del segundo rengl´on (5) con
la posici´on del primer elemento no cero del tercer rengl´on (2) vemos que el 2 no est´a a la derecha del 5; no se
cumple la condici´on 2. En el tercer ejemplo, el rengl´on de cero aparece hasta abajo, pero cuando se comparan
los elementos delanteros de los renglones 2 y 3 el inferior no est´a a la derecha del elemento delantero superior:
se cumple la condici´on 1 pero no la 2. En el cuarto ejemplo, falla de nuevo la condici´on 1. En el ´ultimo ejemplo,
recuerde s´olo hay escalonada de derecha a izquierda; el elemento delantero del rengl´on 2 no est´a a la derecha
de delantero del rengl´on 1
Ejemplo 2.2
Indique porqu´e 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
Soluci´on
Observe que las matrices listadas cumplen las condiciones 1 y 2
Ejemplo 2.3
Indique porqu´e 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


Soluci´on
En el primer ejemplo, est´a fallando la condici´on 3: el elemento delantero del rengl´on 3 debe ser 1. En el
segundo ejemplo, la condici´on 3 se cumple pero la condici´on 4 falla: arriba de los 1 delanteros debe haber s´olo
ceros. En los ejemplos 3, 4 y 5, note que la condici´on 4 dice que todos los elementos superiores a los elementos
delanteros deben ser cero. En estos ejemplos no se cumple tan condici´on
Ejemplo 2.4
Verifique 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


Soluci´on
Observe que en el ejemplo 2, el elemento (2,3) no es delantero por ello no se impone la condici´on que el elemento
superior sea cero. La matriz es efectivamente escalonada reducida
2.4. Pivotes de una matriz
Cuando una matriz est´a en su forma escalonada, los primeros elementos diferentes de cero de cada rengl´on
reciben el nombre de elementos pivote o simplemente pivotes. Note que por ser el pivote el primer elemento
no cero del rengl´on, no hay forma que un rengl´on tenga m´as de un pivote: puede no tener pivote en caso de
que sea un rengl´on de ceros, pero no puede tener dos o m´as. Note tambi´en 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 m´as. De este hecho, concluimos que una matriz m × n no puede tener mas de m
pivotes porque tiene a los m´as uno por cada rengl´on. Y por otro lado, no puede tener m´as de n pivotes pues a
lo m´as tiene un pivote por cada columna. Es decir, el n´umero de pivotes debe ser menor o igual que el m´ınimo
n´umero entre m y n.
2.5. Algoritmo de eliminaci´on gaussiana
El Algoritmo de Gauss o de Eliminaci´on 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, interc´ambielo por un rengl´on que no tenga cero.
3. Obtenga ceros abajo del elemento delantero sumando m´ultiplos adecuados a los renglones debajo de ´el.
4. Cubra el rengl´on y la columna de trabajo y repita el proceso comenzando en el paso 1. Al t´ermino del
ciclo entre el paso 1 al 4 (es decir cuando se han barrido todos los renglones), la matriz deber´a tener
forma de escal´on.
5. Comenzando con el ´ultimo rengl´on no cero avance hacia arriba para que en cada rengl´on tenga un 1
delantero y arriba de ´el queden s´olo ceros. Para ello deber´a sumar m´ultiplos adecuados del rengl´on a los
renglones correspondientes.
3
Es importante observar que en el m´etodo de eliminaci´on 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 s´olo 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


Soluci´on
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) ser´a usado como pivote para hacer
ceros debajo de ´el; para ello debemos sumar m´ultiplos adecuados del rengl´on pivote a los renglones inferiores:


3 6 −9 3
2 4 −8 0
−2 −3 4 −1

 R2←R2 −(2/3) R1
−−−−−−−−−−−−→
R3←R3 −(−2/3) R1


3 6 −9 3
0 0 −2 −2
0 1 −2 1

 (1)
El algoritmo procede tapando el rengl´on 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

 R2↔R3
−−−−−→


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

 R3←1/(−2) R3
−−−−−−−−−→


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

 R1←R1 −(−9) R3
−−−−−−−−−−−→
R2←R2 −(−2) R3


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

 R1←R1 −6 R2
−−−−−−−−−→


3 0 0 −6
0 1 0 3
0 0 1 1

 (5)
El algoritmo concluye haciendo 1 el pivote del primer rengl´on:


3 0 0 −6
0 1 0 3
0 0 1 1

 R1←1/3 R1
−−−−−−−→


1 0 0 −2
0 1 0 3
0 0 1 1

 (6)
2.7. An´alisis de los conjuntos soluci´on
Una vez escalonando o reduciendo la matriz aumentada de un sistema, hay que saber con precisi´on qu´e se
puede decir sobre el conjunto de soluciones. S´olo hay tres posibles resultados en el an´alisis:
El sistema no tiene soluci´on: sistema inconsistente.
El sistema tiene una ´unica soluci´on.
El sistema tiene infinitas soluciones.
Regla de Inconsistencia
El sistema es inconsistente si aparece un pivote en la columna de t´erminos 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 t´erminos 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 soluci´on ´unica si en la matriz escalonada la columna
de cada variable hay un pivote.
5
Ejemplo 2.8
Tienen soluci´on ´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 Infinitas
Si un sistema es consistente, el sistema tiene soluciones infinitas si en la matriz escalonada hay una
columna de una variable sin pivote.
Ejemplo 2.9
Tienen soluciones infinitas 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 soluci´on ´unica o consistente con infinitas soluciones. Es decir, los renglones de ceros no dan en
general informaci´on sobre c´omo es el conjunto soluci´on.
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 soluci´on ´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 infinitas 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 infinitas.
C tiene soluci´on ´unica.
D si la ´ultima columna hay pivote, inconsistente. Si no, ´unica.
E si la ´ultima columna hay pivote, inconsistente. Si no, infinitas.
Soluci´on
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 tendr´a pivote. Como la matriz es aumentada, entonces la columna
correspondiente a las constantes tendr´a pivote. Por lo tanto, el sistema original ser´a inconsistente. La opci´on
que describe la situaci´on 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 soluci´on ´unica.
C hay soluciones infinitas.
D si en la ´ultima columna hay pivote, inconsistente. Si no, ´unica.
E si la ´ultima columna hay pivote, inconsistente. Si no, infinitas.
Soluci´on
Puesto que la matriz reducida es 5×5 y tiene 4 pivotes, la ´ultima columna tiene la posibilidad de tener pivote.
En cuyo caso, el sistema ser´a inconsistente. Tambi´en se tiene la posibilidad de que la ´ultima columna no tenga
pivote. En cuyo caso, el sistema ser´a consistente y los cuatro pivotes estar´an en las primeras columnas. Y por
tanto, en este caso la columna de cada variable tendr´a pivote y por consiguiente cada variable ser´a fija. Y por
lo tanto, en este caso habr´a soluci´on ´unica. La respuesta que describe mejor la situaci´on es la D
Ejemplo 2.12
Se tiene un sistema homog´eneo de ecuaciones que tiene una matriz aumentada 5 × 6 y al reducirla tiene un
total de 5 pivotes, entonces ..
A tiene soluci´on ´unica.
B si la ´ultima columna hay pivote, inconsistente. Si no ´unica.
C es inconsistente.
D hay soluciones infinitas.
E si la ´ultima columna hay pivote, inconsistente. Si no infinitas.
7
Soluci´on
Puesto que el sistema es homog´eneo, en la columna de las constantes habr´a s´olo ceros. Por la naturaleza de las
operaciones elementales, en la matriz reducida s´olo habr´a ceros en tal columna. Por tanto, no habr´a pivotes
en la columna de las constantes. Por tanto, el sistema ser´a consistente y los 5 pivotes estar´an en las primeras
columnas y por tanto, en la columna de cada variable habr´a pivote. Por tanto, el sistema ser´a consistente con
soluci´on ´unica
2.8. F´ormula para todas las soluciones
Veamos ahora una estrategia para obtener la f´ormula de donde se obtienen todas las soluciones a un siste-
mas de ecuaciones lineales cuando el sistema tiene infinitas soluciones. Ilustraremos esto mediante un par de
ejemplos.
Ejemplo 2.13
Manejando el orden x, y, z, w escriba en forma vectorial la soluci´on 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 soluci´on resultante.
Soluci´on (Y m´etodo 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 an´alisis, observamos que el sistema es consistente (al no haber pivote en la columna
de las constantes) y con soluciones infinitas (al ser y una variable libre, recuerde que las variables fijas son
aquellas en cuya columna hay pivote)
Paso 2: Convierta cada rengl´on no cero en ecuaci´on
El rengl´on 1 de la reducida que:
x + 3 y = −3
El rengl´on 2 queda:
z = −2
y el rengl´on 3 queda:
w = 3
8
Paso 3: De cada ecuaci´on, 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 f´ormula 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 soluci´on. Tambi´en, aunque esto no es tan
evidente, que cualquier otra soluci´on puede obtenerse de esta f´ormula para valores adecuados de las variables
libres
Ejemplo 2.14
Determine la soluci´on 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
Soluci´on
Sigamos la metodolog´ıa 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 rengl´on diferentes de cero de la matriz reducida a una ecuaci´on:
x − 9/8 z + 9/8 w = 3/8
y + 1/4 z + 11/4 w = 5/4
Ahora, despejamos las variables fijas (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 est´a 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, interc´ambielo por un rengl´on que no tenga cero. Multiplicando
apropiadamente el rengl´on, h´agalo 1. Este primer 1 ser´a llamado 1 pivote.
3. Obtenga ceros arriba y abajo del 1 pivote sumando m´ultiplos adecuados a los renglones debajo de rengl´on
pivote en la matriz completa.
4. Cubra la columna y el rengl´on de trabajo y repita el proceso comenzando en el paso 1 con la columna
siguiente.
Es importante observar que en el m´etodo 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 (Eliminaci´on Gaussiana)
sino tambi´en 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


Soluci´on
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 1’s pivote:


3 6 −9 3
2 4 −8 0
−2 −3 4 −1

 R1←1/3 R1
−−−−−−−→


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

 R2←R2 −2 R1
−−−−−−−−−−−→
R3←R3 −(−2) R1


1 2 −3 1
0 0 −2 −2
0 1 −2 1

 (8)
Cubrimos ahora la primer columna y el primer rengl´on y repetimos el procedimiento. En el paso 1 identificamos
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 deber´a buscar un elemento inferior que sea diferente de
cero: 

1 2 −3 1
0 0 −2 −2
0 1 −2 1

 R2↔R3
−−−−−→


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

 R1←R1 −2 R2
−−−−−−−−−→


1 0 1 −1
0 1 −2 1
0 0 −2 −2

 (10)
Cubrimos ahora la segunda columna y el segundo rengl´on de la matriz. Y procedemos de nuevo con el paso 1.
La columna de la matriz descubierta se reduce a un s´olo 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

 R3←1/(−2) R3
−−−−−−−−−→


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

 R1←R1 −1 R3
−−−−−−−−−−−→
R2←R2 −(−2) R3


1 0 0 −2
0 1 0 3
0 0 1 1

 (12)
11
2.11. M´etodo Montante
El Algoritmo Montante es una estrategia desarrollada en los 70s por el profesor Mario Ren´e Montante en
aquel entonces profesor de FIME de la UANL, M´exico. El m´etodo trabaja bajo el supuesto principal que la
matriz es s´olo de n´umeros enteros y que no se realizar´ıa ninguna divisi´on entre enteros salvo al final. Esto
minimiza el total de errores por redondeo. El m´etodo procede de una forma semejante al de Gauss-Jordan sin
hacer uno los pivotes y forzando a que los elementos que se har´an cero sean m´ultiplos del pivote. El m´etodo
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, interc´ambielo por un rengl´on que no tenga cero. Este se
llamar´a elemento pivote x.
3. Obtenga ceros arriba y abajo del pivote x primeramente multiplicando cada rengl´on por x y posterior-
mente sumando m´ultiplos del rengl´on pivote. En t´erminos de operaciones elementales lo que se realiza
es que para cada rengl´on i diferente del rengl´on pivote hacer
Ri ← xRi
Ri ← Ri − ai,mRm
4. Repita el proceso comenzando en el paso 1 para el rengl´on siguiente.
El principal comentario es que en el paso 3 la instrucci´on Ri ← xRi tiene la intenci´on de hacer que el elemento
a hacer 0 se haga un m´ultiplo del elemento pivote de forma tal que no se requiere ninguna divisi´on en la
instrucci´on de eliminaci´on.
2.12. M´etodo 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


Soluci´on
Debemos multiplicar el rengl´on 2 y 3 por el elemento (1, 1):


3 6 −9 3
2 4 −8 0
−2 −3 4 −1

 R2←3 R2
−−−−−−→
R3←3 R3


3 6 −9 3
6 12 −24 0
−6 −9 12 −3

 (13)
Ahora la cancelaci´on procede utilizando el rengl´on 1 con los elementos (2, 1) y (3, 1) anteriores a la multipli-
caci´on: 

3 6 −9 3
6 12 −24 0
−6 −9 12 −3

 R2←R2 −(2) R1
−−−−−−−−−−−→
R3←R3 −(−2) R1


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

 R2↔R3
−−−−−→


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 rengl´on 1 por el pivote
(2, 2): 

3 6 −9 3
0 3 −6 3
0 0 −6 −6

 R1←3 R1
−−−−−−→


9 18 −27 9
0 3 −6 3
0 0 −6 −6

 (16)
La cancelaci´on arriba del pivote (2, 2) procede restando al rengl´on 1 el rengl´on pivote por el contenido previo
del elemento (1, 2): 

9 18 −27 9
0 3 −6 3
0 0 −6 −6

 R1←R1 −(6) R2
−−−−−−−−−−→


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 rengl´ones donde se har´a la cancelaci´on por el elemento pivote:


9 0 9 −9
0 3 −6 3
0 0 −6 −6

 R1←−6 R1
−−−−−−−→
R2←−6 R2


−54 0 −54 54
0 −18 36 −18
0 0 −6 −6

 (18)
La cancelaci´on procede restando los m´ultiplos del rengl´on 3 usando los elementos anteriores a la multiplicaci´on:


−54 0 −54 54
0 −18 36 −18
0 0 −6 −6

 R1←R1 −(9) R3
−−−−−−−−−−−→
R2←R2 −(−6) R3


−54 0 0 108
0 −18 0 −54
0 0 −6 −6

 (19)
Las ´unicas divisiones proceden al final:


−54 0 0 108
0 −18 0 −54
0 0 −6 −6


R1 ← 1/(−54) R1
R2 ← 1/(−18) R2
−−−−−−−−−−−−−−−→
R3←1/(−6) R3


1 0 0 −2
0 1 0 3
0 0 1 1

 (20)
2.13. Diferencias operativas de los m´etodos
Veamos ahora un ejemplo donde se manifiesta las diferencias de operaci´on entre los m´etodos
Ejemplo 2.17
Para la matriz:
23 13 1
0 11 −3
indique cu´al ser´ıa el siguiente paso de acuerdo a:
a) Eliminaci´on Gaussiana
b) M´etodo de Gauss-Jordan
c) M´etodo de Montante
entre las opciones:
1) R1 ← 11 R1
2) R1 ← 1
23 R1
3) R1 ← R1 − 13
11 R2
13
4) R2 ← 1
11 R2
Respuesta:
Recuerde que el algoritmo de eliminaci´on gaussiana primeramente escalona la matriz y luego reduce. En este
caso la matriz ya est´a escalonada: por tanto, eliminaci´on gaussiana prepara la reducci´on haciendo 1 el ele-
mento pivote inferior. Por tanto, eliminaci´on gaussiana debe hacer 1 el elemento (2, 2), lo cual coincide con la
opci´on 4. En el caso del Gauss-Jordan, se realiza la reducci´on preparando el pivote de arriba para abajo. Por
tanto, Gauss-Jordan debe hacer uno el elemento (1, 1), lo que coincide con la opci´on 2. El m´etodo Montante
va escalonando y reduciendo la matriz de arriba hacia abajo evitanto las divisiones. Estando escalonada la
matriz, Montante trabajar´ıa con el elemento (2, 2) para hacer cero en la parte superior. En este caso particular,
Montante har´ıa que el elemento (1, 2) fuera m´ultiplo del pivote (2, 2). As´ı Montante, debe multiplicar el rengl´on
1 por el elemento pivote (2, 2). Esto corresponde a la opci´on 1. Resumiendo: Eliminaci´on Gaussiana → 4,
Gauss-Jordan → 2, Montante → 1
2.14. Complejidad de un algoritmo
Existen dos medidas importantes de una estrategia de soluci´on o algoritmo en la resoluci´on de un problema.
El concepto de algoritmo es el de un procedimento sistem´atico y muy bien espec´ıficado para realizar una tarea
determinada. La primer medida de un algoritmo es su certeza, es decir, la total confianza de que cuando el
algoritmo es aplicado en un cierto problema, encontrar´a la soluci´on correcta o bien indicar´a que el problema no
tiene soluci´on. La otra medida es la complejidad de un algoritmo, es decir, la cantidad de trabajo involucrado
por aquella persona o sistema de c´omputo que lleva a cabo cada uno de los pasos. En los algoritmos donde se
buscan soluciones num´ericas el principal indicador de la medida de trabajo o complejidad es el conteo total
de las operaciones aritm´eticas realizadas desde el inicio del programa hasta la obtenci´on de la soluci´on. Las
operaciones que se contabilizan son las operaciones de suma, multiplicaci´on, sustracci´on, y divisi´on. Puesto
que para las computadoras recientes el tiempo invertido por su procesador en una suma es el mismo que el
realizado por una multiplicaci´on, resta, o divisi´on, en el conteo de operaciones no se especifica si fueron unas u
otras. La palabra FLOP (FLoating point OPeration) refiere a una operaci´on entre n´umeros reales y abarca
suma, resta, multiplicaci´on, o divisi´on. Actualmente, en computaci´on la palabra FLOPS es utilizada como
acr´onimo de FLoating point Operations Per Second, pero en el ´area de an´alisis de algoritmos y para nosotros
tiene el significado que ya explicamos y FLOPs ser´a el plural de FLOP.
El an´alisis que realizaremos de la complejidad de los algoritmos vistos ser´a contando el n´umero total
de FLOPs que se invierte cuando se aplica a un sistema lineal de n ecuaciones con n inc´ognitas general.
Despreciaremos en nuestro an´alisis el esfuerzo 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 mayor´ıa de las implementaciones computacionales de los algoritmos poseen trucos de programaci´on 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 reducir´ıa 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 an´alisis del peor de los casos. En
los siguientes an´alisis, haremos el truco de introducir la variable m que ir´a bajando sobre los renglones de la
matriz.
2.15. Complejidad del algoritmo de Gauss
Supongamos que estamos aplicamos el algoritmo de eliminaci´on gaussiana a un sistema n por n y que
estamos trabajando ya con el rengl´on 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:












a1,1 a1,2 · · · a1,m−1 a1,m · · ·
0 a2,2 · · · a2,m−1 a2,m · · ·
...
...
...
...
...
...
0 0 · · · am−1,m−1 am−1,m · · ·
0 0 · · · 0 am,m · · ·
...
...
...
...
...
...
0 0 · · · 0 an,m · · ·












1 Ciclo del paso 1 al 4
Al asumir que am,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 m − n renglones inferiores Ri; para ello habr´a que
calcular el factor f = ai,m/am,m por el cual debe multiplicarse el rengl´on Rm, lo cual implica
realizar una divisi´on, y posteriormente
realizar la operaci´on:
Ri ← Ri − f Rm.
En este caso, en el rengl´on i hay ceros hasta antes de la columna m, en el elemento (i, m) quedar´a un
cero (el factor f fue calculado para ello), as´ı que los ´unicos elementos que deber´an calcularse son los
elementos del rengl´on 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 = n−m+1 elementos, y para cada uno de ellos habr´a que
hacer am+1,j ← am+1,j − f × am,j, es decir para cada uno de ellos habr´a que hacer 2 FLOPs, siendo
un total de n − m + 1 elementos, el n´umero total de FLOPs que habr´a que realizar para hacer la
operaci´on Ri ← Ri −f Rm es, incluyendo la divisi´on para calcular f, 2(n−m+1)+1 = 2n−2m+3.
Como esto habr´a que aplicarlo a todos los renglones por debajo del rengl´on 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 repetici´on ir´a avanzando m desde 1 hasta n − 1. Por consiguiente el total
de FLOPs ser´a:
n−1
m=1
(n − m) (2 n − 2 m + 3) =
2
3
n3
+
1
2
n2
−
7
6
n.
El ciclo en el paso 5 inicia en el ´ultimo rengl´on, hace 1 el elemento pivote y luego a cada rengl´on superior el
resta el rengl´on inferior multiplicado por la constante adecuada. As´ı, si asumimos que se est´a trabajando en el
rengl´on m la matriz se ver´ıa:












a1,1 a1,2 · · · a1,m 0 · · · 0 a1,n+1
0 a2,2 · · · a2,m 0 · · · 0 a2,n+1
...
...
...
...
...
...
...
...
0 0 · · · am,m 0 · · · 0 am,n+1
0 0 · · · 0 1 · · · 0 am+1,n+1
...
...
...
...
...
...
...
...
0 0 · · · 0 0 · · · 1 an,n+1












Es decir, que
en el rengl´on m s´olo existir´an 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 ser´an
Rm ← 1
am,m
Rm
Por la observaci´on anterior, para esto se requiere s´olo una divisi´on; la del t´ermino constante entre
el elemento pivote, la del pivote entre s´ı mismo ya sabemos que dar´a 1 y no se realizar´a, simplemente
en la posici´on (m, m) pondremos un 1
Rj ← Rj − aj,mRm
Por la misma observaci´on anterior, esta operaci´on s´olo requiere una multiplicaci´on y una resta, estas
operaciones s´olo tienen que ver con los t´erminos constantes. Los nuevos elementos aj,m ser´an cero.
Como hay m − 1 renglones superiores, el total de operaciones en un ciclo del paso 5 ser´a:
2 (m − 1) + 1 = 2 m − 1
Por consiguiente el total de FLOPs en el paso 5 ser´a:
1
m=n
(2 m − 1) = n2
Por consiguiente, en general cuando se aplica en algoritmo de eliminaci´on gaussiana a un sistema n × n el
n´umero de FLOPs es:
2
3
n3
+
3
2
n2
−
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 rengl´on m. El algoritmo avanza del primer rengl´on hasta el ´ultimo. Es importante notar que
el proceso de Gauss-Jordan avanza dejando la matriz reducida hasta el rengl´on de trabajo Rm:












1 0 · · · 0 a1,m · · ·
0 1 · · · 0 a2,m · · ·
...
...
...
...
...
...
0 0 · · · 1 am−1,m · · ·
0 0 · · · 0 am,m · · ·
...
...
...
...
...
...
0 0 · · · 0 an,m · · ·












Supongamos que estamos ubicados en el rengl´on m, lo que debemos hacer es hacer un uno pivote en la posici´on
(m, m) y posteriormente hacer ceros por arriba y por debajo de ´el.
1. Paso 2.
Lo que debe hacerse es dividir el rengl´on entre el elemento pivote: en dicho rengl´on, antes de la columna
m hay ceros, en el elemento (m, m) quedar´a un 1, as´ı que los ´unicos elementos a calcular en el rengl´on
m son apartir de la columna m + 1 y hasta la columna n + 1. As´ı deber´an hacerse
(n + 1) − (m + 1) + 1 = n − m + 1
divisiones.
16
2. Paso 3.
Para cada rengl´on i diferente de m debemos realizar
Ri ← Ri − ai,mRm.
C´omo el rengl´on m tiene ceros antes de la columna m y en ai,m quedar´a un cero, los ´unicos elementos
que se calcular´an son ai,j ← ai,j − ai,mam,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 rengl´on 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 ser´a: (n − 1) 2 (n − m + 1) Por
consiguiente, en una iteraci´on del paso 2 seguido del paso 3 se har´an 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 ser´a:
n
m=1
(n − m + 1 + (n − 1) 2 (n − m + 1)) = n3
+
1
2
n2
−
1
2
n
As´ı, la complejidad del algoritmo de Gauss-Jordan es:
n3
+
1
2
n2
−
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 rengl´on hasta el ´ultimo. Es importante notar que el proceso de Montante avanza dejando la matriz de
la siguiente forma hasta la columna de trabajo:












a1,1 0 · · · 0 a1,m · · ·
0 a2,2 · · · 0 a2,m · · ·
...
...
...
...
...
...
0 0 · · · am−1,m−1 am−1,m · · ·
0 0 · · · 0 am,m · · ·
...
...
...
...
...
...
0 0 · · · 0 an,m · · ·












Supongamos que estamos ubicados en el rengl´on m, lo que debemos hacer es hacer ceros por arriba y por
debajo de ´el.
Multiplicaci´on de los renglones superiores por am,m.
Esto implica realizar multiplicaciones por un total de:
(m − 1) (n − m + 1) + m − 1
Multiplicaci´on de los renglones inferiores por am,m.
Esto implica realizar multiplicaciones por un total de:
(n − m) (n − m + 1)
A cada rengl´on diferente de m aplicarle Ri ← Ri − ai,mRm
Esto da un total de:
(n − 1) 2 (n − m + 1)
17
Sumando los t´erminos anteriores, el total de FLOPs para el trabajo con el rengl´on m es:
3 n2
− 3 m n + 4 m − 4
Por consiguiente, al repetir estos pasos desde el primer rengl´on hasta el ´ultimo dar´an un total de FLOPs:
n
m=1
3 n2
− 3 m n + 4 m − 4 =
3
2
n3
+
1
2
n2
− 2 n
Posteriormente habr´a que hacer 1 cada elemento pivote realizando n divisiones adicionales. As´ı, la complejidad
del algoritmo de Montante es:
3
2
n3
+
1
2
n2
− n (23)
2.18. Comparativa de los algoritmos
A pesar que la complejidad de los algoritmos indica que el algoritmo de eliminaci´on gaussiana es mejor
por tener la menor complejidad, la versi´on en computadora paralela (muchos procesadores) del algoritmo de
Gauss-Jordan tiene una menor complejidad que la versi´on paralela del algoritmo de Eliminaci´on Gaussiana. Al
asignarle a cada procesador la instrucci´on Ri ← Ri −f ·Rj, eliminaci´on gaussiana los ejecuta de i = j +1, . . . , n
mientras que Gauss-Jordan los ejecuta para i = j, aprovechando los procesadores m´as eficientemente. El
algoritmo de Montante tiene la ventaja que si se utiliza para matrices con coeficientes enteros las ´unicas
divisiones realizadas ser´an las ´ultimas, lo cual reduce sustancialmente el error num´erico. Una desventaja
importante del algoritmo de Montante es que los coeficientes en la matriz pueden crecer considerablemente.
En resumen, aunque el mejor algoritmo general para resolver un sistema de ecuaciones lineales es el algoritmo
de eliminaci´on 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 b´asicas paso a paso. Dichas instrucciones son ejecutadas
en forma s´ıncrona con un reloj interno. En nuestros d´ıas (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 ejecutar´a 1.3 × 109 ciclos en un segundo. Lo cual equivale a decir que
aproximadamente dicha computadora ejecutar´a 1.3 × 109 instrucciones b´asicas en un segundo.
El tiempo de ejecuci´on de un FLOP en las computadoras puede variar; en algunas computadoras toma el
tiempo de 1, 2 o en algunos casos 3, instrucciones b´asicas para completar un FLOP. Si seguimos el ejemplo
de la computadora de 1.3 Ghz y suponemos que nuestra hipot´etica computadora tome 2 instrucciones b´asicas
para completar un FLOP, podr´ıamos decir que cada FLOP tomar´ıa 1/(1.3 × 109)/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 realizar´a 681550 FLOPs, por consiguiente el tiempo que tomar´a s´olo
en operaciones de punto flotante ser´a 681550/(1.3 × 109)/2 ≈ 0.000262 segundos. Mientras que para un
sistema 1000 × 1000 ser´a de .256986 segundos y para uno de 10000 × 10000 ser´a de 256.467 segundos. En
ambientes de manufactura donde se utiliza el m´etodo del elemento finito para hacer simulaciones, es com´un
trabajar con matrices de m´as de 106 × 106. Resolver un sistema 106 × 106 en tal computadora se requerir´ıa,
contando s´olo tiempo por operaciones de punto flotante, un poco m´as de 8 a˜nos en ser resuelto. Adem´as,
requerir´ıa m´as 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 M´etodo de Montante?
En la definici´on original del m´etodo de Montante como fue propuesto por su creador, se hac´ıa referencia
a determinantes de 2 por 2. En la presentaci´on dada en esta lectura hemos omitido tal referencia y hemos
preferido reducir el m´etodo a operaciones elementales de rengl´on las cuales creemos que hacen el m´etodo m´as
claro y que no requieren ning´un otro concepto. Para corroborar la equivalencia, vea los siguientes c´alculos al
aplicar el m´etodo Montante en la matriz dada y compare los contenidos de la matriz intermedia en la posici´on
(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): 

a11 a12 · · ·
a21 a22 · · ·
a31 a32 · · ·

 R2←a11 R2
−−−−−−−→
R3←a11 R3


a11 a12 · · ·
a11a21 a11a22 · · ·
a11a31 a11a32 · · ·

 (24)
Posteriormente, se procede a hacerlos cero utilizando el elemento pivote (1, 1):


a11 a12 · · ·
a11a21 a11a22 · · ·
a11a31 a11a32 · · ·

 R2←R2−a21 R1
−−−−−−−−−−→
R3←R3−a31 R3


a11 a12 · · ·
0 a11a22 − a21a12 · · ·
0 a11a32 − a31a12 · · ·


(25)
Viendo los contenidos finales de (2, 2) o de (3, 2) la referencia a los determinantes 2 por 2 en la matriz inicial
es obvia, aunque consideramos que tambi´en innecesaria.
2.21. Pero, qu´e m´etodo me conviene seguir?
Como se ver´a m´as adelante en el curso, debido al significado de cada n´umero en la reducida, la matriz redu-
cida obtenida de una matriz dada es ´unica. Esto significa que cualquier procedimiento basado en operaciones
elementales de rengl´on debe llevar al mismo resultado. Por tanto, esto nos da la posibilidad de seguir cualquier
estrategia basada en operaciones elementales de rengl´on para reducir una matriz. Lo que normalmente se hace
es revisar a simple vista en cada momento aqu´el 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 ir´a construyendo la intuici´on del camino personal de reducci´on de una matriz.
19

Más contenido relacionado

La actualidad más candente

Metodo de simpsons y de los trapecios
Metodo de simpsons y de los trapeciosMetodo de simpsons y de los trapecios
Metodo de simpsons y de los trapecios
Franklin Gualán
 
5. TRIPLE PRODUCTO ESCALAR
5. TRIPLE PRODUCTO ESCALAR5. TRIPLE PRODUCTO ESCALAR
5. TRIPLE PRODUCTO ESCALAR
edvinogo
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
Joseph Bros
 
MéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto FijoMéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto Fijo
lisset neyra
 

La actualidad más candente (20)

Grafo bipartito
Grafo bipartitoGrafo bipartito
Grafo bipartito
 
[Maths] 6.3.1 algebras de boole
[Maths] 6.3.1 algebras de boole[Maths] 6.3.1 algebras de boole
[Maths] 6.3.1 algebras de boole
 
Metodo de euler
Metodo de eulerMetodo de euler
Metodo de euler
 
Ejercicios resueltos- de metodos
Ejercicios resueltos- de metodosEjercicios resueltos- de metodos
Ejercicios resueltos- de metodos
 
Candados bd
Candados bdCandados bd
Candados bd
 
Metodo de Runge Kutta en Matlab
Metodo de Runge Kutta en Matlab Metodo de Runge Kutta en Matlab
Metodo de Runge Kutta en Matlab
 
Matlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecioMatlab integración numérica, método del trapecio
Matlab integración numérica, método del trapecio
 
Regresion lineal
Regresion linealRegresion lineal
Regresion lineal
 
Metodo de simpsons y de los trapecios
Metodo de simpsons y de los trapeciosMetodo de simpsons y de los trapecios
Metodo de simpsons y de los trapecios
 
Definiciones generales termodinámica
Definiciones generales termodinámicaDefiniciones generales termodinámica
Definiciones generales termodinámica
 
5. TRIPLE PRODUCTO ESCALAR
5. TRIPLE PRODUCTO ESCALAR5. TRIPLE PRODUCTO ESCALAR
5. TRIPLE PRODUCTO ESCALAR
 
Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)Teoría de complejidad computacional (tcc)
Teoría de complejidad computacional (tcc)
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
 
Diferenciación e integración numérica
Diferenciación e integración numéricaDiferenciación e integración numérica
Diferenciación e integración numérica
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
ventajas y desventajas de los metodos secante,biseccion, newton-raphson
ventajas y desventajas de los metodos secante,biseccion, newton-raphsonventajas y desventajas de los metodos secante,biseccion, newton-raphson
ventajas y desventajas de los metodos secante,biseccion, newton-raphson
 
Integración Romberg
Integración RombergIntegración Romberg
Integración Romberg
 
Longitud de curva
Longitud  de curvaLongitud  de curva
Longitud de curva
 
Sistemas de ecuaciones homogéneas por el método de Gauss Jordan
Sistemas de ecuaciones homogéneas por el método de Gauss JordanSistemas de ecuaciones homogéneas por el método de Gauss Jordan
Sistemas de ecuaciones homogéneas por el método de Gauss Jordan
 
MéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto FijoMéTodo De IteracióN De Punto Fijo
MéTodo De IteracióN De Punto Fijo
 

Similar a Metodo de gauss

110038266 matrices-y-determinantes
110038266 matrices-y-determinantes110038266 matrices-y-determinantes
110038266 matrices-y-determinantes
cristina1895
 
Matrices y sistemas lineales
Matrices y sistemas linealesMatrices y sistemas lineales
Matrices y sistemas lineales
Pablo Perez
 
Alg lin itig_ap
Alg lin itig_apAlg lin itig_ap
Alg lin itig_ap
Anggi Pc
 

Similar a Metodo de gauss (20)

Soluciòn de sistemas de ecuaciones lineales con excel
Soluciòn de sistemas de ecuaciones lineales con excelSoluciòn de sistemas de ecuaciones lineales con excel
Soluciòn de sistemas de ecuaciones lineales con excel
 
110038266 matrices-y-determinantes
110038266 matrices-y-determinantes110038266 matrices-y-determinantes
110038266 matrices-y-determinantes
 
Algebra
AlgebraAlgebra
Algebra
 
Teoría de matrices
Teoría de matricesTeoría de matrices
Teoría de matrices
 
Matrices y sistemas lineales
Matrices y sistemas linealesMatrices y sistemas lineales
Matrices y sistemas lineales
 
Matrices y sistemas lineales
Matrices y sistemas linealesMatrices y sistemas lineales
Matrices y sistemas lineales
 
Manual matlab 2009
Manual matlab 2009Manual matlab 2009
Manual matlab 2009
 
guia algebra de lineal Msc.Jorge Campos
 guia algebra de lineal Msc.Jorge Campos guia algebra de lineal Msc.Jorge Campos
guia algebra de lineal Msc.Jorge Campos
 
Matematica apuntes
Matematica apuntesMatematica apuntes
Matematica apuntes
 
Guia matlab
Guia matlabGuia matlab
Guia matlab
 
Libro cs2
Libro cs2Libro cs2
Libro cs2
 
Libro ecuaciones diferenciales ordinarias
Libro ecuaciones diferenciales ordinariasLibro ecuaciones diferenciales ordinarias
Libro ecuaciones diferenciales ordinarias
 
Algebra lineal 08_09
Algebra lineal 08_09Algebra lineal 08_09
Algebra lineal 08_09
 
Algebra lineal
Algebra linealAlgebra lineal
Algebra lineal
 
Matriz escalonada
Matriz escalonadaMatriz escalonada
Matriz escalonada
 
284023562-metodos-numericos-scilab.pdf
284023562-metodos-numericos-scilab.pdf284023562-metodos-numericos-scilab.pdf
284023562-metodos-numericos-scilab.pdf
 
Alg lin itig_ap
Alg lin itig_apAlg lin itig_ap
Alg lin itig_ap
 
Alg lin itig_ap
Alg lin itig_apAlg lin itig_ap
Alg lin itig_ap
 
Metodo de gauss jordan
Metodo de gauss jordanMetodo de gauss jordan
Metodo de gauss jordan
 
Clase 11 MGJP
Clase 11 MGJPClase 11 MGJP
Clase 11 MGJP
 

Metodo de gauss

  • 1. Eliminaci´on gaussiana y otros algoritmos Departamento de Matem´aticas, CCIR/ITESM 10 de enero de 2011 ´Indice 2.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2.3. Forma escalonada por renglones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.4. Pivotes de una matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.5. Algoritmo de eliminaci´on gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.6. Eliminaci´on Gaussiana: ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.7. An´alisis de los conjuntos soluci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.8. F´ormula para todas las soluciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.9. Algoritmo de Gauss-Jordan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.10. Algoritmo de Gauss-Jordan: ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.11. M´etodo Montante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.12. M´etodo de Montante: ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.13. Diferencias operativas de los m´etodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 M´etodo de Montante? . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.21. Pero, qu´e m´etodo me conviene seguir? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1. Introducci´on En esta lectura veremos procedimientos sistem´aticos para resolver un sistema de ecuaciones lineales. Estos algoritmos trabajan directamente sobre la matriz aumentada del sistema llev´andola a la matriz de un sistema triangular que es equivalente al sistema inicial. La equivalencia del sistema triangular final con el inicial se argumenta debido a que el algoritmo s´olo utiliza los tres tipos de operaciones vistos en la lectura anterior y cuya aplicaci´on individual siempre preserva la equivalencia. Los procedimientos que revisaremos son: el algoritmo de Eliminaci´on Gaussiana, el algoritmo de Gauss-Jordan y el m´etodo Montante. Finalmente, se realizar´a una revisi´on sobre el trabajo computacional realizado por estas estrategias. 2.2. Objetivos Ser´a importante que Usted Entienda los conceptos: matriz escalonada y escalonada reducida.
  • 2. Entienda y mecanice los procedimientos de • Eliminaci´on gaussiana, • Eliminaci´on de Gauss-Jordan, y • El m´etodo 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 c´omputo 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 rengl´on como fueron definidas en la lectura anterior. Esta matriz ir´a transform´andose paulatinamente a una matriz que posee ciertas propiedades. Lo que haremos primeramente es definir ´estas. Definici´on 2.1 Una matriz se dice matriz escalonada si cumple: 1. En caso de tener renglones de ceros, todos ellos est´an en la parte inferior de la matriz. 2. El elemento delantero de cada rengl´on no cero (despu´es del primer rengl´on) se encuentra a la derecha del elemento delantero del rengl´on anterior. Y se llama matriz escalonada reducida si es escalonada y adem´as 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 porqu´e 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   Soluci´on En el primer ejemplo, tiene un rengl´on de ceros y no aparece hasta el final; no se cumple la condici´on 1. En el segundo ejemplo, cuando comparamos la posici´on del primer elemento no cero del segundo rengl´on (5) con la posici´on del primer elemento no cero del tercer rengl´on (2) vemos que el 2 no est´a a la derecha del 5; no se cumple la condici´on 2. En el tercer ejemplo, el rengl´on de cero aparece hasta abajo, pero cuando se comparan los elementos delanteros de los renglones 2 y 3 el inferior no est´a a la derecha del elemento delantero superior: se cumple la condici´on 1 pero no la 2. En el cuarto ejemplo, falla de nuevo la condici´on 1. En el ´ultimo ejemplo, recuerde s´olo hay escalonada de derecha a izquierda; el elemento delantero del rengl´on 2 no est´a a la derecha de delantero del rengl´on 1 Ejemplo 2.2 Indique porqu´e 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
  • 3. Soluci´on Observe que las matrices listadas cumplen las condiciones 1 y 2 Ejemplo 2.3 Indique porqu´e 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   Soluci´on En el primer ejemplo, est´a fallando la condici´on 3: el elemento delantero del rengl´on 3 debe ser 1. En el segundo ejemplo, la condici´on 3 se cumple pero la condici´on 4 falla: arriba de los 1 delanteros debe haber s´olo ceros. En los ejemplos 3, 4 y 5, note que la condici´on 4 dice que todos los elementos superiores a los elementos delanteros deben ser cero. En estos ejemplos no se cumple tan condici´on Ejemplo 2.4 Verifique 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   Soluci´on Observe que en el ejemplo 2, el elemento (2,3) no es delantero por ello no se impone la condici´on que el elemento superior sea cero. La matriz es efectivamente escalonada reducida 2.4. Pivotes de una matriz Cuando una matriz est´a en su forma escalonada, los primeros elementos diferentes de cero de cada rengl´on reciben el nombre de elementos pivote o simplemente pivotes. Note que por ser el pivote el primer elemento no cero del rengl´on, no hay forma que un rengl´on tenga m´as de un pivote: puede no tener pivote en caso de que sea un rengl´on de ceros, pero no puede tener dos o m´as. Note tambi´en 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 m´as. De este hecho, concluimos que una matriz m × n no puede tener mas de m pivotes porque tiene a los m´as uno por cada rengl´on. Y por otro lado, no puede tener m´as de n pivotes pues a lo m´as tiene un pivote por cada columna. Es decir, el n´umero de pivotes debe ser menor o igual que el m´ınimo n´umero entre m y n. 2.5. Algoritmo de eliminaci´on gaussiana El Algoritmo de Gauss o de Eliminaci´on 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, interc´ambielo por un rengl´on que no tenga cero. 3. Obtenga ceros abajo del elemento delantero sumando m´ultiplos adecuados a los renglones debajo de ´el. 4. Cubra el rengl´on y la columna de trabajo y repita el proceso comenzando en el paso 1. Al t´ermino del ciclo entre el paso 1 al 4 (es decir cuando se han barrido todos los renglones), la matriz deber´a tener forma de escal´on. 5. Comenzando con el ´ultimo rengl´on no cero avance hacia arriba para que en cada rengl´on tenga un 1 delantero y arriba de ´el queden s´olo ceros. Para ello deber´a sumar m´ultiplos adecuados del rengl´on a los renglones correspondientes. 3
  • 4. Es importante observar que en el m´etodo de eliminaci´on 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 s´olo 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   Soluci´on 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) ser´a usado como pivote para hacer ceros debajo de ´el; para ello debemos sumar m´ultiplos adecuados del rengl´on pivote a los renglones inferiores:   3 6 −9 3 2 4 −8 0 −2 −3 4 −1   R2←R2 −(2/3) R1 −−−−−−−−−−−−→ R3←R3 −(−2/3) R1   3 6 −9 3 0 0 −2 −2 0 1 −2 1   (1) El algoritmo procede tapando el rengl´on 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   R2↔R3 −−−−−→   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   R3←1/(−2) R3 −−−−−−−−−→   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   R1←R1 −(−9) R3 −−−−−−−−−−−→ R2←R2 −(−2) R3   3 6 0 12 0 1 0 3 0 0 1 1   (4) 4
  • 5. 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   R1←R1 −6 R2 −−−−−−−−−→   3 0 0 −6 0 1 0 3 0 0 1 1   (5) El algoritmo concluye haciendo 1 el pivote del primer rengl´on:   3 0 0 −6 0 1 0 3 0 0 1 1   R1←1/3 R1 −−−−−−−→   1 0 0 −2 0 1 0 3 0 0 1 1   (6) 2.7. An´alisis de los conjuntos soluci´on Una vez escalonando o reduciendo la matriz aumentada de un sistema, hay que saber con precisi´on qu´e se puede decir sobre el conjunto de soluciones. S´olo hay tres posibles resultados en el an´alisis: El sistema no tiene soluci´on: sistema inconsistente. El sistema tiene una ´unica soluci´on. El sistema tiene infinitas soluciones. Regla de Inconsistencia El sistema es inconsistente si aparece un pivote en la columna de t´erminos 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 t´erminos 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 soluci´on ´unica si en la matriz escalonada la columna de cada variable hay un pivote. 5
  • 6. Ejemplo 2.8 Tienen soluci´on ´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 Infinitas Si un sistema es consistente, el sistema tiene soluciones infinitas si en la matriz escalonada hay una columna de una variable sin pivote. Ejemplo 2.9 Tienen soluciones infinitas 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 soluci´on ´unica o consistente con infinitas soluciones. Es decir, los renglones de ceros no dan en general informaci´on sobre c´omo es el conjunto soluci´on. 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 soluci´on ´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 infinitas 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
  • 7. A es inconsistente. B hay soluciones infinitas. C tiene soluci´on ´unica. D si la ´ultima columna hay pivote, inconsistente. Si no, ´unica. E si la ´ultima columna hay pivote, inconsistente. Si no, infinitas. Soluci´on 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 tendr´a pivote. Como la matriz es aumentada, entonces la columna correspondiente a las constantes tendr´a pivote. Por lo tanto, el sistema original ser´a inconsistente. La opci´on que describe la situaci´on 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 soluci´on ´unica. C hay soluciones infinitas. D si en la ´ultima columna hay pivote, inconsistente. Si no, ´unica. E si la ´ultima columna hay pivote, inconsistente. Si no, infinitas. Soluci´on Puesto que la matriz reducida es 5×5 y tiene 4 pivotes, la ´ultima columna tiene la posibilidad de tener pivote. En cuyo caso, el sistema ser´a inconsistente. Tambi´en se tiene la posibilidad de que la ´ultima columna no tenga pivote. En cuyo caso, el sistema ser´a consistente y los cuatro pivotes estar´an en las primeras columnas. Y por tanto, en este caso la columna de cada variable tendr´a pivote y por consiguiente cada variable ser´a fija. Y por lo tanto, en este caso habr´a soluci´on ´unica. La respuesta que describe mejor la situaci´on es la D Ejemplo 2.12 Se tiene un sistema homog´eneo de ecuaciones que tiene una matriz aumentada 5 × 6 y al reducirla tiene un total de 5 pivotes, entonces .. A tiene soluci´on ´unica. B si la ´ultima columna hay pivote, inconsistente. Si no ´unica. C es inconsistente. D hay soluciones infinitas. E si la ´ultima columna hay pivote, inconsistente. Si no infinitas. 7
  • 8. Soluci´on Puesto que el sistema es homog´eneo, en la columna de las constantes habr´a s´olo ceros. Por la naturaleza de las operaciones elementales, en la matriz reducida s´olo habr´a ceros en tal columna. Por tanto, no habr´a pivotes en la columna de las constantes. Por tanto, el sistema ser´a consistente y los 5 pivotes estar´an en las primeras columnas y por tanto, en la columna de cada variable habr´a pivote. Por tanto, el sistema ser´a consistente con soluci´on ´unica 2.8. F´ormula para todas las soluciones Veamos ahora una estrategia para obtener la f´ormula de donde se obtienen todas las soluciones a un siste- mas de ecuaciones lineales cuando el sistema tiene infinitas soluciones. Ilustraremos esto mediante un par de ejemplos. Ejemplo 2.13 Manejando el orden x, y, z, w escriba en forma vectorial la soluci´on 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 soluci´on resultante. Soluci´on (Y m´etodo 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 an´alisis, observamos que el sistema es consistente (al no haber pivote en la columna de las constantes) y con soluciones infinitas (al ser y una variable libre, recuerde que las variables fijas son aquellas en cuya columna hay pivote) Paso 2: Convierta cada rengl´on no cero en ecuaci´on El rengl´on 1 de la reducida que: x + 3 y = −3 El rengl´on 2 queda: z = −2 y el rengl´on 3 queda: w = 3 8
  • 9. Paso 3: De cada ecuaci´on, 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 f´ormula 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 soluci´on. Tambi´en, aunque esto no es tan evidente, que cualquier otra soluci´on puede obtenerse de esta f´ormula para valores adecuados de las variables libres Ejemplo 2.14 Determine la soluci´on 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 Soluci´on Sigamos la metodolog´ıa descrita en el ejemplo anterior: 9
  • 10. 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 rengl´on diferentes de cero de la matriz reducida a una ecuaci´on: x − 9/8 z + 9/8 w = 3/8 y + 1/4 z + 11/4 w = 5/4 Ahora, despejamos las variables fijas (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 est´a 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, interc´ambielo por un rengl´on que no tenga cero. Multiplicando apropiadamente el rengl´on, h´agalo 1. Este primer 1 ser´a llamado 1 pivote. 3. Obtenga ceros arriba y abajo del 1 pivote sumando m´ultiplos adecuados a los renglones debajo de rengl´on pivote en la matriz completa. 4. Cubra la columna y el rengl´on de trabajo y repita el proceso comenzando en el paso 1 con la columna siguiente. Es importante observar que en el m´etodo 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 (Eliminaci´on Gaussiana) sino tambi´en los superiores. 10
  • 11. 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   Soluci´on 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 1’s pivote:   3 6 −9 3 2 4 −8 0 −2 −3 4 −1   R1←1/3 R1 −−−−−−−→   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   R2←R2 −2 R1 −−−−−−−−−−−→ R3←R3 −(−2) R1   1 2 −3 1 0 0 −2 −2 0 1 −2 1   (8) Cubrimos ahora la primer columna y el primer rengl´on y repetimos el procedimiento. En el paso 1 identificamos 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 deber´a buscar un elemento inferior que sea diferente de cero:   1 2 −3 1 0 0 −2 −2 0 1 −2 1   R2↔R3 −−−−−→   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   R1←R1 −2 R2 −−−−−−−−−→   1 0 1 −1 0 1 −2 1 0 0 −2 −2   (10) Cubrimos ahora la segunda columna y el segundo rengl´on de la matriz. Y procedemos de nuevo con el paso 1. La columna de la matriz descubierta se reduce a un s´olo 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   R3←1/(−2) R3 −−−−−−−−−→   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   R1←R1 −1 R3 −−−−−−−−−−−→ R2←R2 −(−2) R3   1 0 0 −2 0 1 0 3 0 0 1 1   (12) 11
  • 12. 2.11. M´etodo Montante El Algoritmo Montante es una estrategia desarrollada en los 70s por el profesor Mario Ren´e Montante en aquel entonces profesor de FIME de la UANL, M´exico. El m´etodo trabaja bajo el supuesto principal que la matriz es s´olo de n´umeros enteros y que no se realizar´ıa ninguna divisi´on entre enteros salvo al final. Esto minimiza el total de errores por redondeo. El m´etodo procede de una forma semejante al de Gauss-Jordan sin hacer uno los pivotes y forzando a que los elementos que se har´an cero sean m´ultiplos del pivote. El m´etodo 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, interc´ambielo por un rengl´on que no tenga cero. Este se llamar´a elemento pivote x. 3. Obtenga ceros arriba y abajo del pivote x primeramente multiplicando cada rengl´on por x y posterior- mente sumando m´ultiplos del rengl´on pivote. En t´erminos de operaciones elementales lo que se realiza es que para cada rengl´on i diferente del rengl´on pivote hacer Ri ← xRi Ri ← Ri − ai,mRm 4. Repita el proceso comenzando en el paso 1 para el rengl´on siguiente. El principal comentario es que en el paso 3 la instrucci´on Ri ← xRi tiene la intenci´on de hacer que el elemento a hacer 0 se haga un m´ultiplo del elemento pivote de forma tal que no se requiere ninguna divisi´on en la instrucci´on de eliminaci´on. 2.12. M´etodo 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   Soluci´on Debemos multiplicar el rengl´on 2 y 3 por el elemento (1, 1):   3 6 −9 3 2 4 −8 0 −2 −3 4 −1   R2←3 R2 −−−−−−→ R3←3 R3   3 6 −9 3 6 12 −24 0 −6 −9 12 −3   (13) Ahora la cancelaci´on procede utilizando el rengl´on 1 con los elementos (2, 1) y (3, 1) anteriores a la multipli- caci´on:   3 6 −9 3 6 12 −24 0 −6 −9 12 −3   R2←R2 −(2) R1 −−−−−−−−−−−→ R3←R3 −(−2) R1   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   R2↔R3 −−−−−→   3 6 −9 3 0 3 −6 3 0 0 −6 −6   (15) 12
  • 13. Para eliminar el elemento arriba del pivote (2, 2) el algoritmo procede multiplicando el rengl´on 1 por el pivote (2, 2):   3 6 −9 3 0 3 −6 3 0 0 −6 −6   R1←3 R1 −−−−−−→   9 18 −27 9 0 3 −6 3 0 0 −6 −6   (16) La cancelaci´on arriba del pivote (2, 2) procede restando al rengl´on 1 el rengl´on pivote por el contenido previo del elemento (1, 2):   9 18 −27 9 0 3 −6 3 0 0 −6 −6   R1←R1 −(6) R2 −−−−−−−−−−→   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 rengl´ones donde se har´a la cancelaci´on por el elemento pivote:   9 0 9 −9 0 3 −6 3 0 0 −6 −6   R1←−6 R1 −−−−−−−→ R2←−6 R2   −54 0 −54 54 0 −18 36 −18 0 0 −6 −6   (18) La cancelaci´on procede restando los m´ultiplos del rengl´on 3 usando los elementos anteriores a la multiplicaci´on:   −54 0 −54 54 0 −18 36 −18 0 0 −6 −6   R1←R1 −(9) R3 −−−−−−−−−−−→ R2←R2 −(−6) R3   −54 0 0 108 0 −18 0 −54 0 0 −6 −6   (19) Las ´unicas divisiones proceden al final:   −54 0 0 108 0 −18 0 −54 0 0 −6 −6   R1 ← 1/(−54) R1 R2 ← 1/(−18) R2 −−−−−−−−−−−−−−−→ R3←1/(−6) R3   1 0 0 −2 0 1 0 3 0 0 1 1   (20) 2.13. Diferencias operativas de los m´etodos Veamos ahora un ejemplo donde se manifiesta las diferencias de operaci´on entre los m´etodos Ejemplo 2.17 Para la matriz: 23 13 1 0 11 −3 indique cu´al ser´ıa el siguiente paso de acuerdo a: a) Eliminaci´on Gaussiana b) M´etodo de Gauss-Jordan c) M´etodo de Montante entre las opciones: 1) R1 ← 11 R1 2) R1 ← 1 23 R1 3) R1 ← R1 − 13 11 R2 13
  • 14. 4) R2 ← 1 11 R2 Respuesta: Recuerde que el algoritmo de eliminaci´on gaussiana primeramente escalona la matriz y luego reduce. En este caso la matriz ya est´a escalonada: por tanto, eliminaci´on gaussiana prepara la reducci´on haciendo 1 el ele- mento pivote inferior. Por tanto, eliminaci´on gaussiana debe hacer 1 el elemento (2, 2), lo cual coincide con la opci´on 4. En el caso del Gauss-Jordan, se realiza la reducci´on preparando el pivote de arriba para abajo. Por tanto, Gauss-Jordan debe hacer uno el elemento (1, 1), lo que coincide con la opci´on 2. El m´etodo Montante va escalonando y reduciendo la matriz de arriba hacia abajo evitanto las divisiones. Estando escalonada la matriz, Montante trabajar´ıa con el elemento (2, 2) para hacer cero en la parte superior. En este caso particular, Montante har´ıa que el elemento (1, 2) fuera m´ultiplo del pivote (2, 2). As´ı Montante, debe multiplicar el rengl´on 1 por el elemento pivote (2, 2). Esto corresponde a la opci´on 1. Resumiendo: Eliminaci´on Gaussiana → 4, Gauss-Jordan → 2, Montante → 1 2.14. Complejidad de un algoritmo Existen dos medidas importantes de una estrategia de soluci´on o algoritmo en la resoluci´on de un problema. El concepto de algoritmo es el de un procedimento sistem´atico y muy bien espec´ıficado para realizar una tarea determinada. La primer medida de un algoritmo es su certeza, es decir, la total confianza de que cuando el algoritmo es aplicado en un cierto problema, encontrar´a la soluci´on correcta o bien indicar´a que el problema no tiene soluci´on. La otra medida es la complejidad de un algoritmo, es decir, la cantidad de trabajo involucrado por aquella persona o sistema de c´omputo que lleva a cabo cada uno de los pasos. En los algoritmos donde se buscan soluciones num´ericas el principal indicador de la medida de trabajo o complejidad es el conteo total de las operaciones aritm´eticas realizadas desde el inicio del programa hasta la obtenci´on de la soluci´on. Las operaciones que se contabilizan son las operaciones de suma, multiplicaci´on, sustracci´on, y divisi´on. Puesto que para las computadoras recientes el tiempo invertido por su procesador en una suma es el mismo que el realizado por una multiplicaci´on, resta, o divisi´on, en el conteo de operaciones no se especifica si fueron unas u otras. La palabra FLOP (FLoating point OPeration) refiere a una operaci´on entre n´umeros reales y abarca suma, resta, multiplicaci´on, o divisi´on. Actualmente, en computaci´on la palabra FLOPS es utilizada como acr´onimo de FLoating point Operations Per Second, pero en el ´area de an´alisis de algoritmos y para nosotros tiene el significado que ya explicamos y FLOPs ser´a el plural de FLOP. El an´alisis que realizaremos de la complejidad de los algoritmos vistos ser´a contando el n´umero total de FLOPs que se invierte cuando se aplica a un sistema lineal de n ecuaciones con n inc´ognitas general. Despreciaremos en nuestro an´alisis el esfuerzo 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 mayor´ıa de las implementaciones computacionales de los algoritmos poseen trucos de programaci´on 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 reducir´ıa 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 an´alisis del peor de los casos. En los siguientes an´alisis, haremos el truco de introducir la variable m que ir´a bajando sobre los renglones de la matriz. 2.15. Complejidad del algoritmo de Gauss Supongamos que estamos aplicamos el algoritmo de eliminaci´on gaussiana a un sistema n por n y que estamos trabajando ya con el rengl´on 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
  • 15. la matriz escalonada hasta la columna de trabajo:             a1,1 a1,2 · · · a1,m−1 a1,m · · · 0 a2,2 · · · a2,m−1 a2,m · · · ... ... ... ... ... ... 0 0 · · · am−1,m−1 am−1,m · · · 0 0 · · · 0 am,m · · · ... ... ... ... ... ... 0 0 · · · 0 an,m · · ·             1 Ciclo del paso 1 al 4 Al asumir que am,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 m − n renglones inferiores Ri; para ello habr´a que calcular el factor f = ai,m/am,m por el cual debe multiplicarse el rengl´on Rm, lo cual implica realizar una divisi´on, y posteriormente realizar la operaci´on: Ri ← Ri − f Rm. En este caso, en el rengl´on i hay ceros hasta antes de la columna m, en el elemento (i, m) quedar´a un cero (el factor f fue calculado para ello), as´ı que los ´unicos elementos que deber´an calcularse son los elementos del rengl´on 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 = n−m+1 elementos, y para cada uno de ellos habr´a que hacer am+1,j ← am+1,j − f × am,j, es decir para cada uno de ellos habr´a que hacer 2 FLOPs, siendo un total de n − m + 1 elementos, el n´umero total de FLOPs que habr´a que realizar para hacer la operaci´on Ri ← Ri −f Rm es, incluyendo la divisi´on para calcular f, 2(n−m+1)+1 = 2n−2m+3. Como esto habr´a que aplicarlo a todos los renglones por debajo del rengl´on 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 repetici´on ir´a avanzando m desde 1 hasta n − 1. Por consiguiente el total de FLOPs ser´a: n−1 m=1 (n − m) (2 n − 2 m + 3) = 2 3 n3 + 1 2 n2 − 7 6 n. El ciclo en el paso 5 inicia en el ´ultimo rengl´on, hace 1 el elemento pivote y luego a cada rengl´on superior el resta el rengl´on inferior multiplicado por la constante adecuada. As´ı, si asumimos que se est´a trabajando en el rengl´on m la matriz se ver´ıa:             a1,1 a1,2 · · · a1,m 0 · · · 0 a1,n+1 0 a2,2 · · · a2,m 0 · · · 0 a2,n+1 ... ... ... ... ... ... ... ... 0 0 · · · am,m 0 · · · 0 am,n+1 0 0 · · · 0 1 · · · 0 am+1,n+1 ... ... ... ... ... ... ... ... 0 0 · · · 0 0 · · · 1 an,n+1             Es decir, que en el rengl´on m s´olo existir´an dos elementos diferentes de cero; el elemento (m, m) y el elemento (m, n + 1). 15
  • 16. 2 Ciclo del paso 5. Las operaciones implicadas en el paso 5 ser´an Rm ← 1 am,m Rm Por la observaci´on anterior, para esto se requiere s´olo una divisi´on; la del t´ermino constante entre el elemento pivote, la del pivote entre s´ı mismo ya sabemos que dar´a 1 y no se realizar´a, simplemente en la posici´on (m, m) pondremos un 1 Rj ← Rj − aj,mRm Por la misma observaci´on anterior, esta operaci´on s´olo requiere una multiplicaci´on y una resta, estas operaciones s´olo tienen que ver con los t´erminos constantes. Los nuevos elementos aj,m ser´an cero. Como hay m − 1 renglones superiores, el total de operaciones en un ciclo del paso 5 ser´a: 2 (m − 1) + 1 = 2 m − 1 Por consiguiente el total de FLOPs en el paso 5 ser´a: 1 m=n (2 m − 1) = n2 Por consiguiente, en general cuando se aplica en algoritmo de eliminaci´on gaussiana a un sistema n × n el n´umero de FLOPs es: 2 3 n3 + 3 2 n2 − 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 rengl´on m. El algoritmo avanza del primer rengl´on hasta el ´ultimo. Es importante notar que el proceso de Gauss-Jordan avanza dejando la matriz reducida hasta el rengl´on de trabajo Rm:             1 0 · · · 0 a1,m · · · 0 1 · · · 0 a2,m · · · ... ... ... ... ... ... 0 0 · · · 1 am−1,m · · · 0 0 · · · 0 am,m · · · ... ... ... ... ... ... 0 0 · · · 0 an,m · · ·             Supongamos que estamos ubicados en el rengl´on m, lo que debemos hacer es hacer un uno pivote en la posici´on (m, m) y posteriormente hacer ceros por arriba y por debajo de ´el. 1. Paso 2. Lo que debe hacerse es dividir el rengl´on entre el elemento pivote: en dicho rengl´on, antes de la columna m hay ceros, en el elemento (m, m) quedar´a un 1, as´ı que los ´unicos elementos a calcular en el rengl´on m son apartir de la columna m + 1 y hasta la columna n + 1. As´ı deber´an hacerse (n + 1) − (m + 1) + 1 = n − m + 1 divisiones. 16
  • 17. 2. Paso 3. Para cada rengl´on i diferente de m debemos realizar Ri ← Ri − ai,mRm. C´omo el rengl´on m tiene ceros antes de la columna m y en ai,m quedar´a un cero, los ´unicos elementos que se calcular´an son ai,j ← ai,j − ai,mam,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 rengl´on 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 ser´a: (n − 1) 2 (n − m + 1) Por consiguiente, en una iteraci´on del paso 2 seguido del paso 3 se har´an 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 ser´a: n m=1 (n − m + 1 + (n − 1) 2 (n − m + 1)) = n3 + 1 2 n2 − 1 2 n As´ı, la complejidad del algoritmo de Gauss-Jordan es: n3 + 1 2 n2 − 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 rengl´on hasta el ´ultimo. Es importante notar que el proceso de Montante avanza dejando la matriz de la siguiente forma hasta la columna de trabajo:             a1,1 0 · · · 0 a1,m · · · 0 a2,2 · · · 0 a2,m · · · ... ... ... ... ... ... 0 0 · · · am−1,m−1 am−1,m · · · 0 0 · · · 0 am,m · · · ... ... ... ... ... ... 0 0 · · · 0 an,m · · ·             Supongamos que estamos ubicados en el rengl´on m, lo que debemos hacer es hacer ceros por arriba y por debajo de ´el. Multiplicaci´on de los renglones superiores por am,m. Esto implica realizar multiplicaciones por un total de: (m − 1) (n − m + 1) + m − 1 Multiplicaci´on de los renglones inferiores por am,m. Esto implica realizar multiplicaciones por un total de: (n − m) (n − m + 1) A cada rengl´on diferente de m aplicarle Ri ← Ri − ai,mRm Esto da un total de: (n − 1) 2 (n − m + 1) 17
  • 18. Sumando los t´erminos anteriores, el total de FLOPs para el trabajo con el rengl´on m es: 3 n2 − 3 m n + 4 m − 4 Por consiguiente, al repetir estos pasos desde el primer rengl´on hasta el ´ultimo dar´an un total de FLOPs: n m=1 3 n2 − 3 m n + 4 m − 4 = 3 2 n3 + 1 2 n2 − 2 n Posteriormente habr´a que hacer 1 cada elemento pivote realizando n divisiones adicionales. As´ı, la complejidad del algoritmo de Montante es: 3 2 n3 + 1 2 n2 − n (23) 2.18. Comparativa de los algoritmos A pesar que la complejidad de los algoritmos indica que el algoritmo de eliminaci´on gaussiana es mejor por tener la menor complejidad, la versi´on en computadora paralela (muchos procesadores) del algoritmo de Gauss-Jordan tiene una menor complejidad que la versi´on paralela del algoritmo de Eliminaci´on Gaussiana. Al asignarle a cada procesador la instrucci´on Ri ← Ri −f ·Rj, eliminaci´on gaussiana los ejecuta de i = j +1, . . . , n mientras que Gauss-Jordan los ejecuta para i = j, aprovechando los procesadores m´as eficientemente. El algoritmo de Montante tiene la ventaja que si se utiliza para matrices con coeficientes enteros las ´unicas divisiones realizadas ser´an las ´ultimas, lo cual reduce sustancialmente el error num´erico. Una desventaja importante del algoritmo de Montante es que los coeficientes en la matriz pueden crecer considerablemente. En resumen, aunque el mejor algoritmo general para resolver un sistema de ecuaciones lineales es el algoritmo de eliminaci´on 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 b´asicas paso a paso. Dichas instrucciones son ejecutadas en forma s´ıncrona con un reloj interno. En nuestros d´ıas (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 ejecutar´a 1.3 × 109 ciclos en un segundo. Lo cual equivale a decir que aproximadamente dicha computadora ejecutar´a 1.3 × 109 instrucciones b´asicas en un segundo. El tiempo de ejecuci´on de un FLOP en las computadoras puede variar; en algunas computadoras toma el tiempo de 1, 2 o en algunos casos 3, instrucciones b´asicas para completar un FLOP. Si seguimos el ejemplo de la computadora de 1.3 Ghz y suponemos que nuestra hipot´etica computadora tome 2 instrucciones b´asicas para completar un FLOP, podr´ıamos decir que cada FLOP tomar´ıa 1/(1.3 × 109)/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 realizar´a 681550 FLOPs, por consiguiente el tiempo que tomar´a s´olo en operaciones de punto flotante ser´a 681550/(1.3 × 109)/2 ≈ 0.000262 segundos. Mientras que para un sistema 1000 × 1000 ser´a de .256986 segundos y para uno de 10000 × 10000 ser´a de 256.467 segundos. En ambientes de manufactura donde se utiliza el m´etodo del elemento finito para hacer simulaciones, es com´un trabajar con matrices de m´as de 106 × 106. Resolver un sistema 106 × 106 en tal computadora se requerir´ıa, contando s´olo tiempo por operaciones de punto flotante, un poco m´as de 8 a˜nos en ser resuelto. Adem´as, requerir´ıa m´as 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
  • 19. 2.20. Y los determinantes del M´etodo de Montante? En la definici´on original del m´etodo de Montante como fue propuesto por su creador, se hac´ıa referencia a determinantes de 2 por 2. En la presentaci´on dada en esta lectura hemos omitido tal referencia y hemos preferido reducir el m´etodo a operaciones elementales de rengl´on las cuales creemos que hacen el m´etodo m´as claro y que no requieren ning´un otro concepto. Para corroborar la equivalencia, vea los siguientes c´alculos al aplicar el m´etodo Montante en la matriz dada y compare los contenidos de la matriz intermedia en la posici´on (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):   a11 a12 · · · a21 a22 · · · a31 a32 · · ·   R2←a11 R2 −−−−−−−→ R3←a11 R3   a11 a12 · · · a11a21 a11a22 · · · a11a31 a11a32 · · ·   (24) Posteriormente, se procede a hacerlos cero utilizando el elemento pivote (1, 1):   a11 a12 · · · a11a21 a11a22 · · · a11a31 a11a32 · · ·   R2←R2−a21 R1 −−−−−−−−−−→ R3←R3−a31 R3   a11 a12 · · · 0 a11a22 − a21a12 · · · 0 a11a32 − a31a12 · · ·   (25) Viendo los contenidos finales de (2, 2) o de (3, 2) la referencia a los determinantes 2 por 2 en la matriz inicial es obvia, aunque consideramos que tambi´en innecesaria. 2.21. Pero, qu´e m´etodo me conviene seguir? Como se ver´a m´as adelante en el curso, debido al significado de cada n´umero en la reducida, la matriz redu- cida obtenida de una matriz dada es ´unica. Esto significa que cualquier procedimiento basado en operaciones elementales de rengl´on debe llevar al mismo resultado. Por tanto, esto nos da la posibilidad de seguir cualquier estrategia basada en operaciones elementales de rengl´on para reducir una matriz. Lo que normalmente se hace es revisar a simple vista en cada momento aqu´el 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 ir´a construyendo la intuici´on del camino personal de reducci´on de una matriz. 19