Eliminación gaussiana y otros algoritmos

Documentos relacionados
Álgebra Lineal Ma1010

Algebra Lineal Tarea No 2: Eliminación gaussiana y otros algoritmos para SEL Solución a algunos problemas de la tarea (al 29 de junio de 2014)

Combinación Lineal. Departamento de Matemáticas, CCIR/ITESM. 10 de enero de 2011

Matrices Invertibles y Elementos de Álgebra Matricial

SISTEMAS DE ECUACIONES LINEALES

Matrices escalonadas y escalonadas reducidas

Mat r i z in v e r s a

Sistemas de Ecuaciones Lineales

Sistemas de Ecuaciones Lineales. Solución de Sistemas de Ecuaciones Lineales. José de Jesús Angel Angel.

MENORES, COFACTORES Y DETERMINANTES

Valores y Vectores Propios

2.- Sistemas de ecuaciones Lineales

Lección 5.1: Matrices y determinantes. Primeros conceptos. Objetivos de esta lección

Tema 1. Álgebra lineal. Matrices

1.4 SISTEMAS HOMOGÉNEOS DE ECUACIONES. 36 CAPÍTULO 1 Sistemas de ecuaciones lineales y matrices

Sistemas de ecuaciones lineales

Sistemas de ecuaciones

Curso de Matemática. Unidad 2. Operaciones Elementales II: Potenciación. Profesora: Sofía Fuhrman. Definición

ALGEBRA Y GEOMETRÍA II 2º semestre Año: Guía de Estudio y Ejercitación propuesta

Expresiones algebraicas

Los números naturales

Una matriz es una tabla ordenada (por filas y columnas) de escalares a i j de la forma: a

Solución de sistemas de ecuaciones lineales: Introducción y conceptos generales

Ecuaciones de primer grado

Un sistema formado por dos ecuaciones y dos incógnitas, se puede escribir como sigue:

UNIDAD DE APRENDIZAJE II UNIDAD DE APRENDIZAJE 2 ( 12 HORAS)

SISTEMAS DE ECUACIONES LINEALES Y MATRICES Dos ecuaciones lineales con dos

Sistemas de Ecuaciones Lineales

Departamento de Matemáticas, CCIR/ITESM. 9 de febrero de 2011

UNIDAD UNO PROGRAMACIÓN LÍNEAL Parte 3

Ing. Ramón Morales Higuera

Ejemplo 1. Ejemplo introductorio

Matriz sobre K = R o C de dimensión m n

Inversas Generalizadas

Lección 13: Resolución algebraica de sistemas de ecuaciones

Tema 2. Sistemas de ecuaciones lineales

Tema 1: Matrices y Determinantes

DESCOMPOSICIÓN FACTORIAL

Determinantes. Primera definición. Consecuencias inmediatas de la definición

I N S T I T U T O T E C N O L O G I C O D E O A X A C A M E T O D O S N U M E R I C O S

Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023

Matrices y sistemas de ecuaciones lineales

Líneas y Planos en el Espacio

Matemáticas Financieras

Ejercicio 1: Realiza las siguientes divisiones por el método tradicional y por Ruffini: a)

Ecuaciones matriciales AX = B y XA = B. Cálculo de la matriz inversa

Profr. Efraín Soto Apolinar. Productos notables

Álgebra Lineal Ma1010

Método de fórmula general

MATEMÁTICAS APLICADAS A LAS C.C. SOCIALES

1. El sistema de los números reales

La Lección de hoy es sobre las Matrices: Suma, Resta, y Multiplicación Escalar.

Tema 5: Sistemas de Ecuaciones Lineales

Espacios Generados en R n

Sistemas lineales y matrices

MATERIALES DIDÁCTICOS

Valores y vectores propios

Una matriz es una arreglo rectangular ordenado de elementos, comúnmente llamados escalares, dispuestos en m renglones y n columnas.

Método de Igualación

UNIVERSIDAD CARLOS III DE MADRID

Definición de la matriz inversa

INSTITUCION EDUCATIVA LA PRESENTACION

El Método de Gauss. Hallar el conjunto solución del siguiente sistema de ecuaciones. (1.1)

Lección 1. Algoritmos y conceptos básicos.

POTENCIAS. MÚLTIPLOS Y DIVISORES. MÁXIMO COMÚN DIVISOR Y MÍNIMO COMÚN MÚLTIPLO.

DETERMINANTES página 251 DETERMINANTES. Por ejemplo: es un determinante de tres filas y tres columnas.

Expresiones algebraicas


CAPÍTULO 3: DETERMINANTES Y SISTEMAS DE ECUACIONES

Introducción al análisis numérico

IV NÚMEROS FRACCIONARIOS.

La lección de hoy es sobre como encontrar la pendiente. El cuál es la expectativa para el aprendizaje del estudiante LF.3.A1.6

TEMA 11. Autovalores y autovectores. Diagonalización y formas canónicas.

, y efectuar la multiplicación 10000

Álgebra Lineal Ma1010

Unidad 1 Números. Los números naturales son aquellos que se utilizan para contar los elementos de un conjunto.

Sistemas de ecuaciones lineales

Tema # 7. método simplex matricial o revisado

Se dice que una ecuación es entera cuando las incógnitas esta sometidas únicamente a las operaciones de suma, resta y multiplicación.

Sistemas de ecuaciones lineales 4

Polinomios. 1.- Funciones cuadráticas

Matrices Invertibles y Elementos de Álgebra Matricial

operaciones inversas Para unificar ambas operaciones, se define la potencia de exponente fraccionario:

Objetivos: Al inalizar la unidad, el alumno:

Ámbito Científico y Tecnológico. Repaso de números enteros y racionales

SESIÓN 1 PRE-ALGEBRA, CONCEPTOS Y OPERACIONES ARITMÉTICAS BÁSICAS

LA DIVISIBILIDAD. Luego, 24 es divisible entre 3. CÓMO SABER SI UN NÚMERO ES DIVISIBLE ENTRE OTRO, SIN HACER LA DIVISIÓN?

UNA ECUACIÓN, SU GRADO Y SU SOLUCIÓN

Matrices y determinantes

VALOR ABSOLUTO. Definición.- El valor absoluto de un número real, x, se define como:

3.2 DIVIDIR UN POLINOMIO POR x a. REGLA DE RUFFINI

Sabes cómo simplificar una expresión con fracciones utilizando propiedades? Echa un vistazo a este dilema.

SISTEMAS DE ECUACIONES LINEALES

2. SISTEMAS DE ECUACIONES LINEALES. Introducción

Polinomios Primero que todo vamos a definirlos como aquella expresión algebraica de la forma: P(x) = a n x n + a n - 1 x n a n - 2 x n

TEMA 6 ECUACIONES DE PRIMER GRADO

Algebra Lineal Tarea No 8: Propiedades de los determinantes Solución a algunos problemas de la tarea (al 29 de junio de 2014)

C U R S O : MATEMÁTICA

Guía Psu Matemáticas Aplicación de definiciones y propiedades básicas de Ángulos

1 Números racionales

Transcripción:

Eliminación gaussiana y otros algoritmos Departamento de Matemáticas, CCIR/ITESM 10 de enero de 2011 Índice 2.1. Introducción............................................... 1 2.2. Objetivos................................................ 1 2.3. Forma escalonada por renglones.................................... 2 2.4. Pivotes de una matriz......................................... 3 2.5. Algoritmo de eliminación gaussiana.................................. 3 2.6. Eliminación Gaussiana: ejemplo.................................... 4 2.7. Análisis de los conjuntos solución................................... 5 2.8. Fórmula para todas las soluciones................................... 8 2.9. Algoritmo de Gauss-Jordan...................................... 10 2.10. Algoritmo de Gauss-Jordan: ejemplo................................. 11 2.11. Método Montante............................................ 12 2.12. Método de Montante: ejemplo..................................... 12 2.13. Diferencias operativas de los métodos................................. 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étodo de Montante?........................... 19 2.21. Pero, qué método me conviene seguir?................................ 19 2.1. Introducción En esta lectura veremos procedimientos sistemáticos para resolver un sistema de ecuaciones lineales. Estos algoritmos trabajan directamente sobre la matriz aumentada del sistema llevándola 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ólo utiliza los tres tipos de operaciones vistos en la lectura anterior y cuya aplicación individual siempre preserva la equivalencia. Los procedimientos que revisaremos son: el algoritmo de Eliminación Gaussiana, el algoritmo de Gauss-Jordan y el método Montante. Finalmente, se realizará una revisión sobre el trabajo computacional realizado por estas estrategias. 2.2. Objetivos Será importante que Usted Entienda los conceptos: matriz escalonada y escalonada reducida.

Entienda y mecanice los procedimientos de Eliminación gaussiana, Eliminación de Gauss-Jordan, y El método 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ómputo 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 elementales de renglón como fueron definidas en la lectura anterior. Esta matriz irá transformándose paulatinamente a una matriz que posee ciertas propiedades. Lo que haremos primeramente es definir éstas. Definición 2.1 Una matriz se dice matriz escalonada si cumple: 1. En caso de tener renglones de ceros, todos ellos están en la parte inferior de la matriz. 2. El elemento delantero de cada renglón no cero (después del primer renglón) se encuentra a la derecha del elemento delantero del renglón anterior. Y se llama matriz escalonada reducida si es escalonada y además cumple: 3. El elemento delantero de cualquier renglón no cero es 1. 4. Todos los elementos arriba y abajo de un 1 delantero son cero. Ejemplo 2.1 Indique porqué las siguientes matrices no son escalonadas: 2 3 1 0 0 1 0 5 2 2 3 1 0 2 1 2 3 1 0 0 2 0 3 2 0 1 3 0 0 3 0 1 3 0 0 3 5 1 3 Solución En el primer ejemplo, tiene un renglón de ceros y no aparece hasta el final; no se cumple la condición 1. En el segundo ejemplo, cuando comparamos la posición del primer elemento no cero del segundo renglón (5) con la posición del primer elemento no cero del tercer renglón (2) vemos que el 2 no está a la derecha del 5; no se cumple la condición 2. En el tercer ejemplo, el renglón de cero aparece hasta abajo, pero cuando se comparan los elementos delanteros de los renglones 2 y 3 el inferior no está a la derecha del elemento delantero superior: se cumple la condición 1 pero no la 2. En el cuarto ejemplo, falla de nuevo la condición 1. En el último ejemplo, recuerde sólo hay escalonada de derecha a izquierda; el elemento delantero del renglón 2 no está a la derecha de delantero del renglón 1 Ejemplo 2.2 Indique porqué las siguientes matrices sí son escalonadas: 0 5 2 2 3 1 0 0 1 2 3 1 0 1 2 0 0 3 0 2 3 1 2 0 2

Solución Observe que las matrices listadas cumplen las condiciones 1 y 2 Ejemplo 2.3 Indique porqué las siguientes matrices son escalonadas pero no reducidas: 0 1 0 1 3 1 0 0 2 0 1 2 1 2 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 3 0 0 1 0 1 3 Solución En el primer ejemplo, está fallando la condición 3: el elemento delantero del renglón 3 debe ser 1. En el segundo ejemplo, la condición 3 se cumple pero la condición 4 falla: arriba de los 1 delanteros debe haber sólo ceros. En los ejemplos 3, 4 y 5, note que la condición 4 dice que todos los elementos superiores a los elementos delanteros deben ser cero. En estos ejemplos no se cumple tan condición Ejemplo 2.4 Verifique que las siguientes matrices sí son escalonadas reducidas: 0 1 0 1 0 0 0 0 1 1 0 3 0 1 1 0 0 1 0 1 0 1 3 4 Solución Observe que en el ejemplo 2, el elemento (2,3) no es delantero por ello no se impone la condición que el elemento superior sea cero. La matriz es efectivamente escalonada reducida 2.4. Pivotes de una matriz Cuando una matriz está en su forma escalonada, los primeros elementos diferentes de cero de cada renglón reciben el nombre de elementos pivote o simplemente pivotes. Note que por ser el pivote el primer elemento no cero del renglón, no hay forma que un renglón tenga más de un pivote: puede no tener pivote en caso de que sea un renglón de ceros, pero no puede tener dos o más. Note también 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ás. De este hecho, concluimos que una matriz m n no puede tener mas de m pivotes porque tiene a los más uno por cada renglón. Y por otro lado, no puede tener más de n pivotes pues a lo más tiene un pivote por cada columna. Es decir, el número de pivotes debe ser menor o igual que el mínimo número entre m y n. 2.5. Algoritmo de eliminación gaussiana El Algoritmo de Gauss o de Eliminación 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ámbielo por un renglón que no tenga cero. 3. Obtenga ceros abajo del elemento delantero sumando múltiplos adecuados a los renglones debajo de él. 4. Cubra el renglón y la columna de trabajo y repita el proceso comenzando en el paso 1. Al término del ciclo entre el paso 1 al 4 (es decir cuando se han barrido todos los renglones), la matriz deberá tener forma de escalón. 5. Comenzando con el último renglón no cero avance hacia arriba para que en cada renglón tenga un 1 delantero y arriba de él queden sólo ceros. Para ello deberá sumar múltiplos adecuados del renglón a los renglones correspondientes. 3

Es importante observar que en el método de eliminación 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ólo los inferiores al pivote. 2.6. Eliminación Gaussiana: ejemplo Ejemplo 2.5 Aplique el algoritmo de Gauss a la matriz: 2 4 8 0 2 3 4 1 Solución 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á usado como pivote para hacer ceros debajo de él; para ello debemos sumar múltiplos adecuados del renglón pivote a los renglones inferiores: 2 4 8 0 2 3 4 1 R 2 R 2 (2/3) R 1 R 3 R 3 ( 2/3) R 1 (1) El algoritmo procede tapando el renglón 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: R 2 R 3 (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): R 3 1/( 2) R 3 Debemos hacer cero por arriba del elemento pivote (3, 3): R 1 R 1 ( 9) R 3 R 2 R 2 ( 2) R 3 3 6 0 12 0 1 0 3 (3) (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 él: 3 6 0 12 3 0 0 6 0 1 0 3 R 1 R 1 6 R 2 0 1 0 3 (5) El algoritmo concluye haciendo 1 el pivote del primer renglón: 3 0 0 6 1 0 0 2 0 1 0 3 R 1 1/3 R 1 0 1 0 3 2.7. Análisis de los conjuntos solución (6) Una vez escalonando o reduciendo la matriz aumentada de un sistema, hay que saber con precisión qué se puede decir sobre el conjunto de soluciones. Sólo hay tres posibles resultados en el análisis: El sistema no tiene solución: sistema inconsistente. El sistema tiene una única solución. El sistema tiene infinitas soluciones. Regla de Inconsistencia El sistema es inconsistente si aparece un pivote en la columna de términos constantes. Ejemplo 2.6 Son inconsistentes los sistemas cuya matriz aumentada se convierte mediante operaciones elementales en: Regla de Consistencia 1 0 1 2 0 1 0 1 0 1 0 0 0 0 1 0 1 [ 1 1 1 2 3 Es consistente cualquier sistema en cuya matriz escalonada no aparece ningún pivote en la columna de términos constantes. ] Ejemplo 2.7 Son consistentes los sistemas cuya matriz aumentada se convierte mediante operaciones elementales en: Regla de la Solución Única 1 1 1 3 0 2 2 2 0 0 3 1 1 0 3 1 0 1 2 1 0 [ 1 1 1 2 0 1 1 1 Siendo un sistema consistente, el sistema tiene solución única si en la matriz escalonada la columna de cada variable hay un pivote. ] 5

Ejemplo 2.8 Tienen solución única lo sistemas cuya matriz aumentada se convierte mediante operaciones elementales en: Regla para Soluciones Infinitas 1 1 1 3 0 2 2 2 0 0 3 1 1 0 3 1 0 1 2 1 0 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: Nota Importante [ 1 1 1 3 0 2 2 2 ], 1 1 1 3 0 2 2 2 0 1 0 3 1 0 1 2 1 0 0 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ón única o consistente con infinitas soluciones. Es decir, los renglones de ceros no dan en general información sobre cómo es el conjunto solución. Pueden ocurrir o no cuando el sistema sea inconsistente: 1 1 2 0 0 1 3 0 1 0 Pueden ocurrir o no cuando el sistema tenga solución única: 1 0 1 4 0 1 2 1 0 1 6 2 0 0 1 1 0 1 1 0 1 4 0 1 2 1 Pueden ocurrir o no cuando el sistema tenga infinitas soluciones: 1 0 1 4 [ 0 1 2 1 1 0 1 4, 0 1 2 1 0 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 B C D E es inconsistente. hay soluciones infinitas. tiene solución única. si la última columna hay pivote, inconsistente. Si no, única. si la última columna hay pivote, inconsistente. Si no, infinitas. Solución Puesto que la matriz escalonada de tiene 5 pivotes y la matriz tiene 5 columnas, entonces toda columna tiene pivote. En particular, la última columna tendrá pivote. Como la matriz es aumentada, entonces la columna correspondiente a las constantes tendrá pivote. Por lo tanto, el sistema original será inconsistente. La opción que describe la situación 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 B C D E es inconsistente. tiene solución única. hay soluciones infinitas. si en la última columna hay pivote, inconsistente. Si no, única. si la última columna hay pivote, inconsistente. Si no, infinitas. Solución Puesto que la matriz reducida es 5 5 y tiene 4 pivotes, la última columna tiene la posibilidad de tener pivote. En cuyo caso, el sistema será inconsistente. También se tiene la posibilidad de que la última columna no tenga pivote. En cuyo caso, el sistema será consistente y los cuatro pivotes estarán en las primeras columnas. Y por tanto, en este caso la columna de cada variable tendrá pivote y por consiguiente cada variable será fija. Y por lo tanto, en este caso habrá solución única. La respuesta que describe mejor la situación es la D Ejemplo 2.12 Se tiene un sistema homogéneo de ecuaciones que tiene una matriz aumentada 5 6 y al reducirla tiene un total de 5 pivotes, entonces.. A B C D E tiene solución única. si la última columna hay pivote, inconsistente. Si no única. es inconsistente. hay soluciones infinitas. si la última columna hay pivote, inconsistente. Si no infinitas. 7

Solución Puesto que el sistema es homogéneo, en la columna de las constantes habrá sólo ceros. Por la naturaleza de las operaciones elementales, en la matriz reducida sólo habrá ceros en tal columna. Por tanto, no habrá pivotes en la columna de las constantes. Por tanto, el sistema será consistente y los 5 pivotes estarán en las primeras columnas y por tanto, en la columna de cada variable habrá pivote. Por tanto, el sistema será consistente con solución única 2.8. Fórmula para todas las soluciones Veamos ahora una estrategia para obtener la fórmula de donde se obtienen todas las soluciones a un sistemas 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ón 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ón resultante. Solución (Y método 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 1 3 0 0 Al aplicar las reglas de análisis, 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ón no cero en ecuación El renglón 1 de la reducida que: x + 3 y = 3 El renglón 2 queda: y el renglón 3 queda: z = 2 w = 3 8

Paso 3: De cada ecuación, 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 Lo anterior es la fórmula general para todas las soluciones del sistema original; el concepto de variable libre indica que se puede tomar cualquier valor y que con él se produce una solución. También, aunque esto no es tan evidente, que cualquier otra solución puede obtenerse de esta fórmula para valores adecuados de las variables libres 3 1 0 0 Ejemplo 2.14 Determine la solución 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ón 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 Convertimos cada renglón diferentes de cero de la matriz reducida a una ecuación: Ahora, despejamos las variables fijas (x y y): x 9/8 z + 9/8 w = 3/8 y + 1/4 z + 11/4 w = 5/4 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á 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 3/8 + 9/8 z 9/8 w y z = 5/4 1/4 z 11/4w z w w Finalmente, separamos el lado izquierdo de acuerdo a las variables libres: x 3/8 9/8 y z = 5/4 0 + z 1/4 1 + w w 0 0 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. 9/8 11/4 0 1 2. Si el primer elemento de la columna es cero, intercámbielo por un renglón que no tenga cero. Multiplicando apropiadamente el renglón, hágalo 1. Este primer 1 será llamado 1 pivote. 3. Obtenga ceros arriba y abajo del 1 pivote sumando múltiplos adecuados a los renglones debajo de renglón pivote en la matriz completa. 4. Cubra la columna y el renglón de trabajo y repita el proceso comenzando en el paso 1 con la columna siguiente. Es importante observar que en el método 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ón Gaussiana) sino también los superiores. 10

2.10. Algoritmo de Gauss-Jordan: ejemplo Ejemplo 2.15 Aplique el algoritmo de Gauss-Jordan a la matriz: 2 4 8 0 2 3 4 1 Solución 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: 2 4 8 0 2 3 4 1 R 1 1/3 R 1 Posteriormente hace cero debajo de él: 1 2 3 1 2 4 8 0 R 2 R 2 2 R 1 R 2 3 4 1 3 R 3 ( 2) R 1 1 2 3 1 2 4 8 0 2 3 4 1 1 2 3 1 (7) (8) Cubrimos ahora la primer columna y el primer renglón 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á buscar un elemento inferior que sea diferente de cero: 1 2 3 1 R 2 R 3 1 2 3 1 (9) El elemento pivote (2, 2) ya es 1; el algoritmo procede ahora a hacer ceros arriba y debajo de él: 1 2 3 1 R 1 R 1 2 R 2 1 0 1 1 (10) Cubrimos ahora la segunda columna y el segundo renglón de la matriz. Y procedemos de nuevo con el paso 1. La columna de la matriz descubierta se reduce a un sólo 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 R 3 1/( 2) R 3 Posteriormente, se hacen ceros arriba y debajo de él: 1 0 1 1 R 1 R 1 1 R 3 R 2 R 2 ( 2) R 3 1 0 1 1 1 0 0 2 0 1 0 3 (11) (12) 11

2.11. Método Montante El Algoritmo Montante es una estrategia desarrollada en los 70s por el profesor Mario René Montante en aquel entonces profesor de FIME de la UANL, México. El método trabaja bajo el supuesto principal que la matriz es sólo de números enteros y que no se realizaría ninguna división entre enteros salvo al final. Esto minimiza el total de errores por redondeo. El método procede de una forma semejante al de Gauss-Jordan sin hacer uno los pivotes y forzando a que los elementos que se harán cero sean múltiplos del pivote. El método 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ámbielo por un renglón que no tenga cero. Este se llamará elemento pivote x. 3. Obtenga ceros arriba y abajo del pivote x primeramente multiplicando cada renglón por x y posteriormente sumando múltiplos del renglón pivote. En términos de operaciones elementales lo que se realiza es que para cada renglón i diferente del renglón pivote hacer R i xr i R i R i a i,m R m 4. Repita el proceso comenzando en el paso 1 para el renglón siguiente. El principal comentario es que en el paso 3 la instrucción R i xr i tiene la intención de hacer que el elemento a hacer 0 se haga un múltiplo del elemento pivote de forma tal que no se requiere ninguna división en la instrucción de eliminación. 2.12. Método de Montante: ejemplo Ejemplo 2.16 Aplique el algoritmo de Montante a la matriz: 2 4 8 0 2 3 4 1 Solución Debemos multiplicar el renglón 2 y 3 por el elemento (1, 1): 2 4 8 0 R 2 3 R 2 6 12 24 0 R 2 3 4 1 3 3 R 3 6 9 12 3 (13) Ahora la cancelación procede utilizando el renglón 1 con los elementos (2, 1) y (3, 1) anteriores a la multiplicación: 6 12 24 0 R 2 R 2 (2) R 1 0 0 6 6 (14) R 6 9 12 3 3 R 3 ( 2) R 1 0 3 6 3 Ahora deberemos intercambiar los renglones 2 y 3 para tener un pivote en (2, 2): 0 0 6 6 R 2 R 3 0 3 6 3 (15) 0 3 6 3 0 0 6 6 12

Para eliminar el elemento arriba del pivote (2, 2) el algoritmo procede multiplicando el renglón 1 por el pivote (2, 2): 9 18 27 9 0 3 6 3 R 1 3 R 1 0 3 6 3 (16) 0 0 6 6 0 0 6 6 La cancelación arriba del pivote (2, 2) procede restando al renglón 1 el renglón pivote por el contenido previo del elemento (1, 2): 9 18 27 9 9 0 9 9 0 3 6 3 R 1 R 1 (6) R 2 0 3 6 3 (17) 0 0 6 6 0 0 6 6 Ahora el pivote es el elemento (3, 3) y debemos hacer cero arriba de él. Para ello el algoritmo procede multiplicando los renglónes donde se hará la cancelación por el elemento pivote: 9 0 9 9 54 0 54 54 0 3 6 3 R 1 6 R 1 0 18 36 18 (18) R 0 0 6 6 2 6 R 2 0 0 6 6 La cancelación procede restando los múltiplos del renglón 3 usando los elementos anteriores a la multiplicación: 54 0 54 54 54 0 0 108 0 18 36 18 R 1 R 1 (9) R 3 0 18 0 54 (19) R 0 0 6 6 2 R 2 ( 6) R 3 0 0 6 6 Las únicas divisiones proceden al final: 54 0 0 108 0 18 0 54 0 0 6 6 R 1 1/( 54) R 1 R 2 1/( 18) R 2 R 3 1/( 6) R 3 1 0 0 2 0 1 0 3 (20) 2.13. Diferencias operativas de los métodos Veamos ahora un ejemplo donde se manifiesta las diferencias de operación entre los métodos Ejemplo 2.17 Para la matriz: [ 23 13 1 0 11 3 indique cuál sería el siguiente paso de acuerdo a: a) Eliminación Gaussiana b) Método de Gauss-Jordan c) Método de Montante entre las opciones: 1) R 1 11 R 1 2) R 1 1 23 R 1 3) R 1 R 1 13 11 R 2 13 ]

4) R 2 1 11 R 2 Respuesta: Recuerde que el algoritmo de eliminación gaussiana primeramente escalona la matriz y luego reduce. En este caso la matriz ya está escalonada: por tanto, eliminación gaussiana prepara la reducción haciendo 1 el elemento pivote inferior. Por tanto, eliminación gaussiana debe hacer 1 el elemento (2, 2), lo cual coincide con la opción 4. En el caso del Gauss-Jordan, se realiza la reducción preparando el pivote de arriba para abajo. Por tanto, Gauss-Jordan debe hacer uno el elemento (1, 1), lo que coincide con la opción 2. El método 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últiplo del pivote (2, 2). Así Montante, debe multiplicar el renglón 1 por el elemento pivote (2, 2). Esto corresponde a la opción 1. Resumiendo: Eliminación Gaussiana 4, Gauss-Jordan 2, Montante 1 2.14. Complejidad de un algoritmo Existen dos medidas importantes de una estrategia de solución o algoritmo en la resolución de un problema. El concepto de algoritmo es el de un procedimento sistemático 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á la solución correcta o bien indicará que el problema no tiene solución. La otra medida es la complejidad de un algoritmo, es decir, la cantidad de trabajo involucrado por aquella persona o sistema de cómputo que lleva a cabo cada uno de los pasos. En los algoritmos donde se buscan soluciones numéricas el principal indicador de la medida de trabajo o complejidad es el conteo total de las operaciones aritméticas realizadas desde el inicio del programa hasta la obtención de la solución. Las operaciones que se contabilizan son las operaciones de suma, multiplicación, sustracción, y división. Puesto que para las computadoras recientes el tiempo invertido por su procesador en una suma es el mismo que el realizado por una multiplicación, resta, o división, en el conteo de operaciones no se especifica si fueron unas u otras. La palabra FLOP (FLoating point OPeration) refiere a una operación entre números reales y abarca suma, resta, multiplicación, o división. Actualmente, en computación la palabra FLOPS es utilizada como acrónimo de FLoating point Operations Per Second, pero en el área de análisis de algoritmos y para nosotros tiene el significado que ya explicamos y FLOPs será el plural de FLOP. El análisis que realizaremos de la complejidad de los algoritmos vistos será contando el número total de FLOPs que se invierte cuando se aplica a un sistema lineal de n ecuaciones con n incógnitas general. Despreciaremos en nuestro análisis el esfuerzo computacional de preguntar si un número es diferente de cero, así como los posibles intercambios entre los renglones para darle la forma escalonada. Sobre este último punto, la mayoría de las implementaciones computacionales de los algoritmos poseen trucos de programación para evitar el movimiento de números 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úmeros, y esto no es un caso general. Este tipo de suposiciones se conoce como el análisis del peor de los casos. En los siguientes análisis, haremos el truco de introducir la variable m que irá bajando sobre los renglones de la matriz. 2.15. Complejidad del algoritmo de Gauss Supongamos que estamos aplicamos el algoritmo de eliminación gaussiana a un sistema n por n y que estamos trabajando ya con el renglón m. Consideraremos primero el trabajo realizado por los pasos 1 al 4 y posteriormente el trabajo realizado en el paso 5. Es importante notar que el proceso de Gauss avanza dejando 14

la matriz escalonada hasta la columna de trabajo: a 1,1 a 1,2 a 1,m 1 a 1,m 0 a 2,2 a 2,m 1 a 2,m........ 0 0 a m 1,m 1 a m 1,m 0 0 0 a m,m........ 0 0 0 a n,m 1 Ciclo del paso 1 al 4 Al asumir que a m,m es diferente de cero, pasamos al paso 3. En el paso 3 hay que hacer cero debajo del elemento (m, m), para cada uno de los m n renglones inferiores R i ; para ello habrá que calcular el factor f = a i,m /a m,m por el cual debe multiplicarse el renglón R m, lo cual implica realizar una división, y posteriormente realizar la operación: R i R i f R m. En este caso, en el renglón i hay ceros hasta antes de la columna m, en el elemento (i, m) quedará un cero (el factor f fue calculado para ello), así que los únicos elementos que deberán calcularse son los elementos del renglón 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á que hacer a m+1,j a m+1,j f a m,j, es decir para cada uno de ellos habrá que hacer 2 FLOPs, siendo un total de n m + 1 elementos, el número total de FLOPs que habrá que realizar para hacer la operación R i R i f R m es, incluyendo la división para calcular f, 2(n m+1)+1 = 2n 2m+3. Como esto habrá que aplicarlo a todos los renglones por debajo del renglón 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ón irá avanzando m desde 1 hasta n 1. Por consiguiente el total de FLOPs será: n 1 (n m) (2 n 2 m + 3) = 2 3 n3 + 1 2 n2 7 6 n. m=1 El ciclo en el paso 5 inicia en el último renglón, hace 1 el elemento pivote y luego a cada renglón superior el resta el renglón inferior multiplicado por la constante adecuada. Así, si asumimos que se está trabajando en el renglón m la matriz se vería: a 1,1 a 1,2 a 1,m 0 0 a 1,n+1 0 a 2,2 a 2,m 0 0 a 2,n+1.......... 0 0 a m,m 0 0 a m,n+1 0 0 0 1 0 a m+1,n+1............ 0 0 0 0 1 a n,n+1 Es decir, que en el renglón m sólo existirán 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án R m 1 a m,m R m Por la observación anterior, para esto se requiere sólo una división; la del término constante entre el elemento pivote, la del pivote entre sí mismo ya sabemos que dará 1 y no se realizará, simplemente en la posición (m, m) pondremos un 1 R j R j a j,m R m Por la misma observación anterior, esta operación sólo requiere una multiplicación y una resta, estas operaciones sólo tienen que ver con los términos constantes. Los nuevos elementos a j,m serán cero. Como hay m 1 renglones superiores, el total de operaciones en un ciclo del paso 5 será: Por consiguiente el total de FLOPs en el paso 5 será: 2 (m 1) + 1 = 2 m 1 1 (2 m 1) = n 2 m=n Por consiguiente, en general cuando se aplica en algoritmo de eliminación gaussiana a un sistema n n el número 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ón m. El algoritmo avanza del primer renglón hasta el último. Es importante notar que el proceso de Gauss-Jordan avanza dejando la matriz reducida hasta el renglón de trabajo R m : 1 0 0 a 1,m 0 1 0 a 2,m........ 0 0 1 a m 1,m 0 0 0 a m,m........ 0 0 0 a n,m Supongamos que estamos ubicados en el renglón m, lo que debemos hacer es hacer un uno pivote en la posición (m, m) y posteriormente hacer ceros por arriba y por debajo de él. 1. Paso 2. Lo que debe hacerse es dividir el renglón entre el elemento pivote: en dicho renglón, antes de la columna m hay ceros, en el elemento (m, m) quedará un 1, así que los únicos elementos a calcular en el renglón m son apartir de la columna m + 1 y hasta la columna n + 1. Así deberán hacerse divisiones. (n + 1) (m + 1) + 1 = n m + 1 16

2. Paso 3. Para cada renglón i diferente de m debemos realizar R i R i a i,m R m. Cómo el renglón m tiene ceros antes de la columna m y en a i,m quedará un cero, los únicos elementos que se calcularán son a i,j a i,j a i,m a m,j, desde j = m + 1 y hasta j = n + 1, es decir un total de (n + 1) (m + 1) + 1 = n m + 1. Como para cada uno de ellos se realizan dos operaciones entonces el total de FLOPs para hacer un cero en un renglón arriba o abajo de (m, m) se requieren 2 (n m + 1) Como hay en total n renglones, el número total de FLOPs en el paso 3 será: (n 1) 2 (n m + 1) Por consiguiente, en una iteración del paso 2 seguido del paso 3 se harán 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úmero total de FLOPs será: n (n m + 1 + (n 1) 2 (n m + 1)) = n 3 + 1 2 n2 1 2 n m=1 Así, la complejidad del algoritmo de Gauss-Jordan es: n 3 + 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ón hasta el último. Es importante notar que el proceso de Montante avanza dejando la matriz de la siguiente forma hasta la columna de trabajo: a 1,1 0 0 a 1,m 0 a 2,2 0 a 2,m........ 0 0 a m 1,m 1 a m 1,m 0 0 0 a m,m........ 0 0 0 a n,m Supongamos que estamos ubicados en el renglón m, lo que debemos hacer es hacer ceros por arriba y por debajo de él. Multiplicación de los renglones superiores por a m,m. Esto implica realizar multiplicaciones por un total de: (m 1) (n m + 1) + m 1 Multiplicación de los renglones inferiores por a m,m. Esto implica realizar multiplicaciones por un total de: (n m) (n m + 1) A cada renglón diferente de m aplicarle R i R i a i,m R m Esto da un total de: (n 1) 2 (n m + 1) 17

Sumando los términos anteriores, el total de FLOPs para el trabajo con el renglón m es: 3 n 2 3 m n + 4 m 4 Por consiguiente, al repetir estos pasos desde el primer renglón hasta el último darán un total de FLOPs: n ( 3 n 2 3 m n + 4 m 4 ) = 3 2 n3 + 1 2 n2 2 n m=1 Posteriormente habrá 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ón gaussiana es mejor por tener la menor complejidad, la versión en computadora paralela (muchos procesadores) del algoritmo de Gauss-Jordan tiene una menor complejidad que la versión paralela del algoritmo de Eliminación Gaussiana. Al asignarle a cada procesador la instrucción R i R i f R j, eliminación gaussiana los ejecuta de i = j +1,..., n mientras que Gauss-Jordan los ejecuta para i j, aprovechando los procesadores más eficientemente. El algoritmo de Montante tiene la ventaja que si se utiliza para matrices con coeficientes enteros las únicas divisiones realizadas serán las últimas, lo cual reduce sustancialmente el error numérico. 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ón gaussiana, puede haber situaciones particulares al problema o al ambiente de computo que haga que otro algoritmo tenga ventajas sobre él. 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ásicas paso a paso. Dichas instrucciones son ejecutadas en forma síncrona con un reloj interno. En nuestros días (año de 2005), es común 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á 1.3 10 9 ciclos en un segundo. Lo cual equivale a decir que aproximadamente dicha computadora ejecutará 1.3 10 9 instrucciones básicas en un segundo. El tiempo de ejecución de un FLOP en las computadoras puede variar; en algunas computadoras toma el tiempo de 1, 2 o en algunos casos 3, instrucciones básicas para completar un FLOP. Si seguimos el ejemplo de la computadora de 1.3 Ghz y suponemos que nuestra hipotética computadora tome 2 instrucciones básicas para completar un FLOP, podríamos decir que cada FLOP tomaría 1/(1.3 10 9 )/2 segundos. Para tener una idea del uso de la complejidad del algoritmo para determinar tiempos de computo, digamos que se desea utilizar un programa que realiza el algoritmo de Gauss en dicha computadora para resolver un sistema de 100 100. Entonces, dicho programa realizará 681550 FLOPs, por consiguiente el tiempo que tomará sólo en operaciones de punto flotante será 681550/(1.3 10 9 )/2 0.000262 segundos. Mientras que para un sistema 1000 1000 será de.256986 segundos y para uno de 10000 10000 será de 256.467 segundos. En ambientes de manufactura donde se utiliza el método del elemento finito para hacer simulaciones, es común trabajar con matrices de más de 10 6 10 6. Resolver un sistema 10 6 10 6 en tal computadora se requeriría, contando sólo tiempo por operaciones de punto flotante, un poco más de 8 años en ser resuelto. Además, requeriría más 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étodo de Montante? En la definición original del método de Montante como fue propuesto por su creador, se hacía referencia a determinantes de 2 por 2. En la presentación dada en esta lectura hemos omitido tal referencia y hemos preferido reducir el método a operaciones elementales de renglón las cuales creemos que hacen el método más claro y que no requieren ningún otro concepto. Para corroborar la equivalencia, vea los siguientes cálculos al aplicar el método Montante en la matriz dada y compare los contenidos de la matriz intermedia en la posición (2, 2) o (3, 2) con la matriz inicial. Primeramente obligamos a que sean múltiplos de (1, 1) los contenidos de (2, 1) y (3, 1): a 11 a 12 a 21 a 22 a 31 a 32 R 2 a 11 R 2 R 3 a 11 R 3 a 11 a 12 a 11 a 21 a 11 a 22 a 11 a 31 a 11 a 32 Posteriormente, se procede a hacerlos cero utilizando el elemento pivote (1, 1): a 11 a 12 a 11 a 21 a 11 a 22 a 11 a 31 a 11 a 32 R 2 R 2 a 21 R 1 R 3 R 3 a 31 R 3 a 11 a 12 0 a 11 a 22 a 21 a 12 0 a 11 a 32 a 31 a 12 (24) 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én innecesaria. 2.21. Pero, qué método me conviene seguir? Como se verá más adelante en el curso, debido al significado de cada número en la reducida, la matriz reducida obtenida de una matriz dada es única. Esto significa que cualquier procedimiento basado en operaciones elementales de renglón debe llevar al mismo resultado. Por tanto, esto nos da la posibilidad de seguir cualquier estrategia basada en operaciones elementales de renglón para reducir una matriz. Lo que normalmente se hace es revisar a simple vista en cada momento aquél elemento que conviene que sea pivote de manera que involucre o menor número de operaciones o bien operaciones menos complejas. Sin duda, el hacer un número razonable de ejemplos le irá construyendo la intuición del camino personal de reducción de una matriz. (25) 19