Eliminaci´on gaussiana y otros algoritmos

Texto completo

(1)

Eliminaci´on gaussiana y otros algoritmos

Departamento de Matem´aticas, CCIR/ITESM 26 de mayo de 2010

´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 escalonadasi 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 llamamatriz 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

(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 Gausso deEliminaci´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.

(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)

(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←R16R2

 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/3R1

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.

(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 ..

(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.

(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

(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:

(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-Jordanconsta 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.

(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/3R1

 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←R22R1

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−2R2

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←R11R3

R2←R2−(−2) R3

 1 0 0 −2

0 1 0 3

0 0 1 1

� (12)

(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←3R2

R33R3

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)

(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

−−−−−−→R13R1

 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←−6R1

R2←−6R2

 −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) R1231 R1

3) R1 ← R11311R2

(14)

4) R2111 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 dealgoritmoes 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 lacomplejidad 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.

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 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 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

(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 Rmes, 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 3n3+ 1

2n2−7 6n.

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).

(16)

2 Ciclo del paso 5.

Las operaciones implicadas en el paso 5 ser´an Rmam,m1 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 si 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 3n3+3

2n2−7

6n (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.

(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 2n2− 1

2n As´ı, la complejidad del algoritmo de Gauss-Jordan es:

n3+ 1 2n2−1

2n (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)

(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 2n3+1

2n2− 2 n

Posteriormente habr´a que hacer 1 cada elemento pivote realizando n divisiones adicionales. As´ı, la complejidad del algoritmo de Montante es:

3 2n3+1

2n2− 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.

(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 · · ·

−−−−−−−→R2a11R2

R3←a11R3

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←R2a21R1

R3←R3a31R3

 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.

Figure

Actualización...

Referencias

Actualización...

Related subjects :