Está en la página 1de 37

5 Sistemas lineales

En Ciencias Aplicadas, uno es muy a menudo enfrentar un sistema lineal de la forma: (5.1) donde es una matriz cuadrada de dimensin cuyos elementos son ya sea real o complejo, mientras que y b son vectores columna de dimensin con representando la solucin desconocida y un vector dado. Adems, (5.1) puede ser escrito como

Presentamos a continuacin tres problemas diferentes que dan lugar a sistemas lineales.

Problema 5.1 (Circuito Hidrulico)

Consideremos la red hidrulica hecha de 10 tuberas mostrada en la Figura 5.1, que es alimentada por un depsito de agua a presin constante pr = 10 bar. En este problema, los valores de presin se refieren a la diferencia entre la presin real y la atmosfrica. Para la tubera j-sima, la siguiente relacin mantenida entre el caudal (en ) y la diferencia de presin en la tubera son los finales de cada tubera. (5.2) donde k es la resistencia hidrulica (en ) y L es la longitud (en m) de la tubera. Se supone que los flujos de agua de los puntos (Indicado por un punto negro) estn a presin atmosfrica 0 bar, que se estableci por coherencia con el convenio anterior. Un problema tpico consiste en la determinacin de los valores de presin en cada nodo interno . Con este objetivo, para cada j = 1, 2, 3,4 podemos complementar la relacin (5.2) con la condicin de que la suma algebraica de los ndices de flujo de las tuberas que se unen en el nodo j debe ser nulo (un valor negativo debera indicar la presencia de una superficie de filtracin). Designado por . El vector de la presin en el nodo interior, obtiene un sistema de 4 4 de la forma . En la siguiente tabla mostramos las caractersticas relevantes de las diferentes tuberas:

Correspondientemente, dgitos significativos):

toman los siguientes valores (slo se muestran los primeros 4

La solucin de este sistema se pospone a la del Ejemplo 5,5

Problema 5.2 (Espectrometra).-

Consideremos una mezcla de gas no reactivo de n componentes desconocidos. El uso de un espectrmetro en una masa del compuesto es bombardeado por electrones de baja energa: la mezcla resultante de los iones es analizada por un galvanmetro que muestra los picos correspondientes a especficas relaciones masa / carga. Slo se consideran los picos mas relevantes n. Puede conjeturar que la altura del pico i-simo es una combinacin lineal de , es la presin parcial del componente j-simo (que es la presin ejercida por un gas simple cuando es parte de una mezcla), dando:

donde el son llamados los coeficientes de sensibilidad. La determinacin de las presiones parciales exige por lo tanto, la solucin de un sistema lineal. Para su solucin, vase el ejemplo 5.3.

Problema 5.3 (Economa: anlisis entrada-salida) Queremos determinar la situacin de


equilibrio entre la demanda y la oferta de ciertos bienes. En particular, vamos a considerar un modelo de produccin en el que m n factores (o lneas de produccin) producen diferentes productos. Los cuales deben frente a la demanda interna de bienes (la entrada) necesarias para las fbricas para su propia produccin, as como la demanda externa (la salida) de los consumidores. La hiptesis principal del modelo de Leontief (1930) es que el modelo de produccin sea lineal, es decir, la cantidad de una cierta salida es proporcional a la cantidad de entrada utilizada. Por lo tanto, la actividad de las fbricas est completamente descrita por dos matrices, la matriz de entrada y la matriz de salida . ("C" se refiere a los consumidores y "P" para los productos). El coeficiente (respectivamente, ) representan la cantidad del isimo bienes absorbidos (respectivamente, producidos) por las j-simas fabricas para un fijo perodo de tiempo. La matriz se llama matriz entrada-salida: positiva (respectivamente, negativo) denota la cantidad del i-sima de bienes producidos (respectivamente, absorbida) por los factores j-simo. Finalmente, es razonable asumir que el sistema de produccin satisface la demanda de productos del mercado, que puede ser representado por un vector (el vector de la demanda final). El componente representa la cantidad del factor isimo consumido por el mercado. El equilibrio se alcanza cuando el vector de la produccin total es igual al total demanda, es decir,

(5.4) Para la solucin de este sistema lineal vea Ejercicio 5.17 La solucin de sistema (5.1) existe si y slo si A es no singular. En principio, la solucin puede ser calculada utilizando la llamada regla de Cramer:

La figura. 5.2. El esquema de interaccin entre tres fbricas y el mercado donde es la matriz obtenida de A al sustituir la columna i-sima por b y el determinante de A denotada por . Si los determinantes son calculados por la aplicacin de Laplace (vase el ejercicio 5.1), se requiere un nmero total de aproximadamente de las operaciones. Operaciones nos referimos a la suma, resta, producto o una divisin. Por ejemplo, un ordenador capaz de realizar flops (es decir, 1 giga flops), se requieren aproximadamente 12 horas para resolver un sistema de dimensin si n = 20 y aos si n = 100. El costo computacional puede ser drsticamente reducido a la orden de alrededor de operaciones si el n + 1 determinantes son calculados por el algoritmo citado en el ejemplo 1.3. Sin embargo, este costo es demasiado alto para valores grandes de n, que a menudo se plantean en aplicaciones prcticas. Dos enfoques alternativos se llevar a cabo: se les llama mtodos directos si producen la solucin del sistema en un nmero finito de pasos, y mtodos iterativos si requieren (en principio) un nmero infinito de pasos. Los mtodos iterativos se tratan en la seccin 5.7. Advertimos al lector que la eleccin entre mtodos directos y los mtodos iterativos depender de varios factores: en primer lugar, la eficiencia terica predicha del sistema, pero tambin el tipo particular de matriz, la memoria de almacenamiento y, finalmente, la arquitectura de ordenador (vase, la seccin 5.11 para ms detalles). Por ltimo, se observa que un sistema con matriz completa no puede ser resuelto por menos de operaciones. En efecto, si las ecuaciones estn completamente acopladas, debemos esperar que cada uno de los coeficientes de la matriz sera involucrado en una operacin algebraica al menos una vez.

5.1 El mtodo de factorizacin LU


Sea A una matriz cuadrada de orden n. Supongamos que existen dos matrices adecuadas L y U, triangular inferior y triangular superior, respectivamente, de tal manera que (5.5) Llamamos a esta operacin una factorizacin LU (o descomposicin) de A. Si A es no singular entonces L y U tambin lo son, y por lo tanto sus elementos de la diagonal son no nulos (como observamos en la seccin 1.3)

En tal caso, la solucin de Ax = b conduce a la solucin de los dos sistemas triangulares

(5.6) Ambos sistemas son fciles de resolver. En efecto, siendo L triangular inferior, la primera fila del sistema tiene la forma:

Que proporciona el valor de desde . Al sustituir este valor de en la ecuacin siguiente se obtiene un nuevo sistema cuyo incgnitas son , en la que se puede proceder de una manera similar. Continuando hacia adelante, ecuacin por ecuacin, podemos calcular todas las incgnitas con el siguiente algoritmo de sustitucin hacia delante:

(5.7) Vamos a contar el nmero de operaciones requeridas por (5.7). Desde i-1 sumas, i-1 productos y una divisin son necesarios para calcular la incgnita , el nmero total de operaciones es:

El sistema puede ser resuelto procediendo de una manera similar. Esta vez, la primera incgnita a calcular es , procediendo hacia atrs, podemos calcular las incgnitas que quedan , desde hasta .

(5.8) Esto se conoce como algoritmo de sustitucin hacia atrs y requiere tambien operaciones. En esta etapa se necesita un algoritmo eficaz que permita el clculo de los factores de L y U, de la matriz A. Se ilustra un procedimiento general a partir de un par de ejemplos.

Ejemplo 5.1 Vamos a escribir la relacin (5.5) para una matriz genrica A

Los 6 elementos desconocidos de L y U deben cumplir las siguientes ecuaciones (no lineales):

El sistema (5.9) es indeterminado ya que cuenta con menos ecuaciones que incgnitas. Podemos completar asignando arbitrariamente los elementos diagonales de L, por ejemplo y . Ahora el sistema (5.9) puede ser resuelto de la siguiente manera: se determinan los elementos y de la primera fila de U utilizando ( ) y ( ). Si es no nulo entonces de ( ) deducimos (es la primera columna de L, ya que est ya disponible). Ahora podemos obtener de ( ) el nico elemento distinto de cero de la segunda fila de U.

Ejemplo 5.2 Repitamos los mismos clculos en el caso de una matriz de 33. Para los 12
coeficientes desconocidos de L y U tenemos las siguientes 9 ecuaciones:

Vamos a completar este sistema estableciendo para i = 1, 2, 3. Ahora, los coeficientes de la primera fila de U se pueden conseguir mediante el uso de ( ), ( ) y ( ). A continuacin, utilizando ( ) y ( ), se pueden determinar los coeficientes y de la primera columna de L. Utilizando ( ) y ( ), ahora podemos calcular el coeficiente y de la segunda fila de U. Entonces, usando ( ), se obtiene el coeficiente de de la segunda columna de L. Finalmente, la ltima fila de U (que consiste en la nico elemento ) se puede determinar mediante la resolucin de ( ). En una matriz de dimensin n arbitraria podemos proceder de la siguiente manera: 1. Los elementos de L y U satisfacen el sistema de ecuaciones no lineales

2. El sistema (5.10) es indeterminado, de hecho hay ecuaciones y ( ) incgnitas, por lo que la factorizacin LU no puede ser nica. 3. Forzando a los n elementos diagonales de L que sean igual a 1, (5.10) se convierte en un sistema determinado, que puede resolverse por el siguiente algoritmo de Gauss: establecido para :

Los elementos de

todos debe ser diferente de cero y se llaman elementos pivotes. Para cada

de la matriz = tiene filas y columnas. Al final de este procedimiento, los elementos de la parte superior triangular matriz U son dados por , para y =i,,n mientras que los de L estn dadas por los coeficientes generado por

este algoritmo. En (5.11) no hay ningn clculo de los elementos diagonales de L, como ya sabemos que su valor es igual a 1. Esta factorizacin se llama factorizacin de Gauss, la determinacin de los elementos de L y U se requiere cerca de operaciones (ver Ejercicio 5.4).

Ejemplo 5.3 (Espectrometra) Para el Problema 5.2 consideramos una mezcla de gases que,
despus de una inspeccin espectroscpica, presenta los siguientes siete picos ms relevantes: , , , , , y . Queremos comparar la presin total medida, iguales a 38,78 micras de Hg (que representa tambin para aquellos componentes que se podra haber descuidado en nuestro modelo simplificado) con la obtenida usando relaciones (5.3) con , donde los coeficientes de sensibilidad se dan en la Tabla 5.1 (tomado de [CLW69, p.331]). Las presiones parciales puede ser calculadas resolviendo el sistema (5.3) para usando la factorizacin LU. Obtenemos

Con estos valores se calcula una presin total aproximada (dada por sum(partpress)) de la mezcla de gas que difiere del valor medido por 0,0252 m de Hg.

Ejemplo 5.4 Considrese la matriz de Vandermonde


donde los son n abscisas distintas. Puede construirse mediante el comando de MATLAB vander. En la Figura 5.3 mostramos el nmero de operaciones de punto flotante requeridas para calcular la factorizacin de Gauss de , versus n. Se consideran varios valores de n (concretamente ) y se indican con crculos los correspondientes nmeros de operaciones. La curva que se muestra en la figura es un polinomio en n de tercer grado representando la aproximacin de mnimos cuadrados de los datos anteriores. El clculo del nmero de operaciones se hizo mediante el comando de MATLAB (flops) que estaba presente en la versin 5.3.1 de MATLAB y anteriores.

La figura. 5.3 muestra el nmero de operaciones de punto flotante necesarios para generar la factorizacin de Gauss LU de la matriz de Vandermonde, como una funcin de la matriz de dimensin n. Esta funcin es un polinomio cbico obtenido mediante la aproximacin en el sentido de mnimos cuadrados de los valores (representados por crculos) correspondientes a

Ejemplo 5.4 Consideremos la matriz Vandermonde


Almacenamiento de las matrices en el algoritmo (5.11) no es necesario, en realidad se puede soportar los elementos de en la correspondientes ltimos los elementos de la matriz original A. Adems, dado que en la etapa k, los elementos subdiagonales de la columna k-sima no tienen ningn efecto sobre la U final, que puede ser sustituido por las entradas de la columna k-sima de L, como se hace en el Programa de 5.1. Luego, en el paso k se deben procesar los elementos almacenados en la ubicacin de las entradas originales de A.

donde la el cuadro de la submatriz es . La factorizacin de Gauss es la base de varios comandos de MATLAB: - [L, U] = lu (A), cuyo modo de uso se discuten en la Seccin 5.2; -inv que permite el clculo de la inversa de una matriz; - \ Por el cual es posible resolver un sistema lineal con la matriz A y la matriz de la derecha b simplemente escribiendo A \ b (ver seccin 5.6).

Observacin 5.1 (Clculo determinante) Por medio de la factorizacin LU se puede calcular


el determinante de A con un operaciones, teniendo en cuenta que (ver Sect.1.3) costo computacional de

Como cuestin de hecho, este procedimiento es tambin la base de la orden det de MATLAB. En el Programa 5.1 implementamos el algoritmo (5.11). El factor L se almacena en la (estrictamente) triangular inferior de A y U en la triangular superior de A (por el ahorro de almacenamiento). Despus de la ejecucin del programa, los dos factores se pueden recuperar simplemente escribiendo: L=eye (n)+tril (A,-1) y U = triu (A), donde es el tamao de A.

Ejemplo 5.5 Vamos a calcular la solucin del sistema detectado en el problema 5.1 mediante el
uso de la factorizacin LU, a continuacin, aplicamos los algoritmos de sustitucin hacia atrs y hacia adelante. Tenemos que calcular la matriz A y la matriz de la derecha b y ejecutar las siguientes instrucciones:

Ejemplo 5.6 Suponemos que tenemos que resolver Ax=b con

Cuya solucin es Colocamos

(independientemente del valor de ). . La factorizacin de Gauss de A obtenida en el programa 5.1 nos da

Si nos fijamos , a pesar de que A es no singular, la factorizacin de Gauss no se puede llevar a cabo ya que el algoritmo (5.11) implicara divisiones por 0. El ejemplo anterior muestra que, por desgracia, la factorizacin de Gauss A = LU no existe necesariamente para cada matriz no singular A. Por lo tanto, el siguiente resultado se puede probar:

Proposicin 5.1 Para una matriz dada , su factorizacin de Gauss existe y es nica y slo si las submatrices principales de A de orden (es decir los obtenidos mediante la restriccin de A, primero las filas y columnas) son no singulares. Volviendo al ejemplo 5.6, se puede notar que cuando = 0, la segunda submatriz principal de la matriz A es singular. Podemos identificar clases especiales de matrices para las cuales la hiptesis de la Proposicin 5.1 se cumple. En particular, cabe mencionar: 1. Matrices definidas simtricas y positivas. Una matriz es definida positiva si

2. Matrices diagonal dominante. A matriz diagonal dominante por filas si

Por columna si

Un caso especial ocurre cuando en las desigualdades anteriores se puede sustituir por >. Entonces, la matriz A se llama estrictamente diagonal dominante (por fila o por columna, respectivamente). Si A es simtrica y definida positiva, es adems posible construir una factorizacin especial:

donde H es una matriz triangular inferior con elementos diagonales positivos. Esta es la factorizacin de Cholesky y requiere aproximadamente operaciones (media de los prescritos en la factorizacin de Gauss LU). Adems, debemos destacar que, debido a la simetra, slo la parte inferior de A se almacena, y H se puede almacenar en la misma zona. Los elementos de H puede ser calculados por el algoritmo siguiente: se establecer = y para ,

La factorizacin de cholesky esta disponible en MATLAB por R=chol(A) donde R es el factor triangular superior ver ejercicio 5.1-5.5

5.2 LA TECNICA DEL PIVOTEO


Vamos a introducir una tcnica especial que nos permitir levar a cabo la factorizacin LU para cada matriz no singular, incluso si las hiptesis de proposicin 5.1 no se verifican. Regresemos al caso descrito en el ejemplo 5.6 y tomar: .Ajuste ( ) despus de llevar a cabo la primera etapa del proceso , los nuevos elementos de A son: * +

Ya que el pvot es igual a cero, este procedimiento no puede ser continuado. Por otra parte, si intercambisemos de antemano las filas segunda y tercera, obtendramos la matriz * +

Y de esta manera la factorizacin podra ser llevada a cabo sin recurrir a una divisin para cero. Podemos estipular que la permutacin en una manera adecuada de las sucesiones de la matriz original A hara viable el procedimiento de la factorizacin entera incluso si las hiptesis de Proposicin 5.1 no estn verificadas, siempre que no es igual 0. Desafortunadamente, no podemos conocemos a priori qu filas deberan permutarse. Sin embargo esta decisin puede ser hecha en cada paso K en la cual un elemento diagonal nulo es generado. Retornemos a la matriz en 5.16 ya que el coeficiente en la posicin (2,2) es nulo, ahora intercambiemos la tercera y segunda fila de esta matriz y veamos si es que el nuevo coeficiente generado en posicin (2,2) es aun nulo. Para ejecutar el segundo paso del procedimiento de factorizacin encontramos la misma matriz que habramos generado para una permutacin a priori de las mismas dos sucesiones de A. Por lo tanto podemos realizar una permutacin de filas tan pronto como sea necesaria, sin continuar con ninguna transformacin en A. Ya que una permutacin de sucesin supone cambiar el elemento pivote, a esta tcnica se le llama pivoteo para la sucesin. La factorizacin generada en esta manera retorna a la matriz original hasta una permutacin de sucesin. Con exactitud obtenemos:

P es una matriz de permutacin adecuada inicialmente situada igual a la matriz idntica. Si en el curso del proceso las filas r, y, s de A son permutadas, la misma permutacin debe ser llevada a cabo en las filas homlogas de P. Correspondientemente, deberamos ahora resolver los siguientes sistemas triangulares:

Desde la segunda ecuacin de (5.11). Vemos que no solamente los elementos del pivot nulo

son

algo dificultosos, pero as son, estos que son muy pequeos. Efectivamente debera estar cerca de cero, posibles errores que terminan afectando los coeficientes que sern severamente ampliados.

Ejemplo 5.7 Considerar la matriz no singular [ ]

Durante el proceso de facturacin del programa 5.1 ninguno de los elementos del pivote 1 nulo son obtenidos. Todava, los factores L Y U resultan ser completamente inexactos, as como se puede dar cuenta por el computo de la matriz residual A-LU (el cual debe ser la matriz nula si todas las operaciones fueron seguidas en la aritmtica exacta) [ ]

Por lo tanto es recomendado seguir pivoteando en cada paso del proceso de la factorizacin, para descubrir entre todos los elementos del pivoteo virtual con aquel con modulo mximo. El algoritmo (5.1) pivoteando la fila seguida en cada paso que toma la siguiente forma para hallamos tal que | | | | intercambio la fila con la fila en ambos para ,

para j=k+1, ,n

El Programa MATLAB lu, que hemos mencionado previamente computa la Gauss factorizacin ] pivoteando la fila su completa sintaxis es efectivamente[ siendo la matriz de la ] permutacin. Cuando el llamado modo taquigrfico[ la matriz L es igual a P*M donde M es triangularmente mas baja y P es la matriz de la permutacin generada por el pivot para la fila. El programa LU activa automticamente el pivot para la fila cuando un nulo (o muy pequeo) el elemento pivote es computado. Vea los ejercicios 5.6-5.8.

5.3 Cuan exacto es la factorizacin LU


Ya hemos notado in el ejemplo 5.7 que, debido a los errores, el producto LU no reproduce A exactamente. Aunque la estrategia de pivotear tapa estos errores, aun as el resultado podra ser a veces insatisfactorio.

Ejemplo 5.8 considerar el sistema lineal


hilbert cuyos elementos son:

donde

es la asi llamada matriz

Mientras es escogida de tal manera que la solucin exacta es . La matriz claramente simtrica y se puede probar que esto es tambin definidamente positivo.

es

Para diferentes resultados de N usamos la funcin MATLAB LU para conseguir la factorizacin Gauss de pivoteando la fila. Entonces resolvemos los sistemas lineales asociados (5.18) y denotar para la solucin computada. En la figura 5.4 reportamos (en escala logartmica) los relativos errores. , (5.20) Teniendo denotado por la norma Euclidiana introducida en la seccin 1.3.1 . Tenemos si (que es un error relativo en la solucin ms alta que 1000%) mientras Es la matriz nula (hasta la exactitud de la maquina) para cualquier resultado obtenido de N Acerca del comentario previo, podramos especular para decir que, cuando un sistema lineal es resuelto numricamente, efectivamente se est buscando la solucin exacta De un sistema perturbada. Donde y son respectivamente una matriz y un vector el cual depende del mtodo especifico numeral el cual est siendo usado. Empecemos por considerar el caso donde y lo cual es ms simple que el caso msgeneral.Ms que todo, para hacerlo simple asumiremos que A es simtrica y definitivamente positivo. Para comparar (5.1) y (5.21) encontramos , y de esta manera: (5.22)

FIG 5.4: comportamiento contra n de (lnea slida) y de en la escala logartmica, para el Sistema Hilbert de ejemplo 5.8. las matriz .

(lnea precipitada) son los coeficientes de la

Para encontrar un vinculo superior para el lado de la mano derecha de (5.22) , procedemos tal como sigue Ya que A simtrico y definitivamente positivo, la ubicacin de sus eigen vectores provee una base ortonormal de Esto quiere decir que:

Donde es el valor propio of una A asociada con y es el smbolo Kronecker. Consecuentemente, un vector genrico puede ser escrito como:

Para una adecuada (y nica) ubicacin de coeficientes [ ][

Tenemos: ]

Denota para El msgrandevalor propio de A. Ya que (5.23) En una manera similar, obtenemos. Sobre recalcando que los valores propios de nos permite deducir de (5.22) que.

conluimos que:

son los reciprocos de los de A. , finalmente obtenemos:

Esta desigualdad

Usando (5.23) una vez ms y recalcando que

Podemos concluir que el error relativo en la solucin depende del error relativo en los datos travs de la siguiente constante:

La cual es llamada nmero condicional espectral de la matriz A. K(A) puede ser computado en MATLAB usando el comando cond. Otras definiciones para el nmero condicional estn disponibles para matrices no simtricas, vase. (QSSO captulos 3) Comentario 5.2: el comando MATLAB cond (A) permite la computacin de el numero condicional de cualquier tipo de matriz A, incluso aquellos que no son simtricos y defectivamente positivos. Un comando especial MATLAB condest(A) est disponible para calcular una aproximacin del numero de condicion de una matriz dispersa A, y otro rcond(A) para su reciproco, con un ahorro sustancial de operaciones de punto flotante. Si la matriz A esta mal condicionada ( es decir ) la computacin de su nmero condicional puede ser inexacta. Considerar por ejemplo las matrices tridiagonales Para diferentes valores de n. es simtrico y definitivamente positivo, sus valores propios son para con de ah . Puede ser computada exactamente. En la figura 5.5 reportamos el valor del error Note que incrementa cuando n incrementa. Una prueba mas envuelta nos llevara al resultado mas general en le caso donde ..es una simetra arbitraria y matriz definitivamente positiva suficientemente pequea para satisfacer :

Si es pequea, esa es solo el orden de la unidad, a es dicha para ser bien condicionada. En ese caso, pequeos errores en los datos llevaran a errores del mismo orden de magnitud en la solucin. Esto no ocurrira en el caso de matrices mal condicionadas.

Fig.5.5 Comportamiento de

en funcin de n (en escala algortmica)

Ejemplo 5.9 para la matriz Hilbert introducida en el ejemplo 5,8 es una funcin de incremento rpido de n. Se tiene mientras si El numero condicional es tan alto que, MATLAB advierte que la matriz estcerca de singular. De hecho crece en una ndice exponencial. (vase HIG02). Este provee una explicacin indirecta de los malos resultados obtenidos en el ejemplo 5.8 Desigualdad (5.25) puede ser reformulada para la ayuda del residuo r: debera ser la solucin exacta, el residuo seria el vector nulo. De esta manera, en general, r puede ser considerada como un estimador del error El excedente para el cual el residuo es un buen error estimador que depende de la medida del nmero condicional de A. Efectivamente observando que deducimos de (5.25) que

De esta manera si K(A) es pequeo, podemos estar seguros que el error es pequeo debido a que el residuo es pequeo, mientras este puede ser verdad cuando Es largo Ejemplo 2.10 Los residuos asociados con n la solucin computada de los sistemas lineales de el ejemplo 5.8 son muy pequeos (sus normas varan entre y ) sin embargo las soluciones computadas difieren remarcablemente de la solucin exacta. Vase los ejercicios 5.9-5.10.

5.4 COMO RESOLVER UN SITEMA TRIDIAGONAL


En muchas aplicaciones (revisar captulo 8) tenemos que resolver un sistema cuya matriz tiene la forma:

Esta matriz es llamada tridiagonal ya que los nicos elementos que pueden ser no nulos pertenecen a diagonal principal y a la primera sper y subdiagonales. Si la factorizacin Gauss LU de A existe, los factores L y U debe ser bidiagonales(inferior y superior respectivamente) ms precisamente:

] [ ]

Los coeficientes desconocidos y pueden ser determinados para recurrir que la igualdad LU=A lo sostiene. Estos produce las siguientes relaciones repetidas para la computacin de los factores: L yU (5.30) Usando (5.30) ,fcilmente podemos resolver los sistemas bidiagonales Ly=b y Ux=y para obtener la siguiente formula : (5.31) (5.32) Este es conocido como el algoritmo Thomas y permite la solucin del sistema original con un costo computacional delorden de operaciones n. El comando MATLAB spdiags permite la construccin de una matriz tridiagonal. por ejemplo , los comandos. b= ones (10 ,1); a=2*b; c=3*b; T= spdiags ([b a c], -1:1 ,10 ,10); Calcula la matriz T Con los elementos iguales a dos de la diagonal principal 1 en la primera subdiaconal y 3 en la primera superdiagonal . Se pude notar que T es reservado en el espacio dispersa, de acuerdo a lo cual los nicos elementos reservados son los diferentes de 0. La matriz A es dispersa si tiene un nmero sin 0 que esta en el orden n (y no ) Llamamos patrn de uno matriz dispersa en el coeficiente diferente de cero. Cuando un sistema es resuelto para invocar el comando MATLAB pude reconocer el tipo de matriz (en particular si a sido generada modo disperso) selecciona la solucin algortmica mas apropiada. En particular cuando A es una matriz tridiagonal generada en el modo disperso el algoritmo de thomas es el que debe ser seleccionado

SISTEMAS SOBRE DETERMINADOS


Un sistema lineal Ax=B se llama sobre determinado en A si m>n, y bajo determinado si m<n Un sistema sobre determinado generalmente no tiene solucin a menos que el lado derecho B sea un elemento de rango(A) donde

En general para un lado derecho arbitrario B podemos descubrir un vector minimiza la norma euclidiana del residuo que es:

Lo que

Similar a un vector X se llama solucin de casillas menores del sistema sobredeterminado . Similar al lo que fue echo en la seccin 3.4 la solucin de 5.34 puede ser encontrada para imponer la condicin que la altura de la funcin debe ser igual a cero en .Con clculos similares encontramos que es por consecuente la solucin del sistema lineal de casillas.

El cual se llama el sistema de ecuaciones normales. Este sistema es no singular si A tiene lleno el rango (que es ), donde el rango de A, es el mximo orden de los determinantes no nulos extradas de A). Como el caso B= es una matriz simtrica definida positiva, entonces la solucin de las menores casillas existe y es nica. Para calcular lo se puede usar la factorizacin Cholesky (5.14). Sin embargo, debido a los errores de agrupamiento, el calculo de puede ser afectado por una perdida de dgitos significativos, con un perdida consecuente de la definida positiva de la matriz en si misma. En ves de esto es mas conveniente usar la as llamada factorizacin QR. Ninguna matriz llena del rango , con m>=n, admite una nica factorizacin, en donde existe una matriz. , con la propiedad ortogonal Y una matriz trapezoidal superior , con filas nulas de la n+1 tal como:

Entonces la nica solucin de (5.34) es dada por. Donde Y Tomar en cuenta que no es singular. Ejemplo 5.11.- considerar una alternativa de acercamiento para el problema de encontrar la lnea d regresin , (vase la seccin 3.4) de los datos del problema 3.3. Usando los datos d la tabla 3.2 imponiendo las condiciones de interpolacin obtenemos el sistema sobre determinado Aa=b donde y

son las siguientes matrices

Para calcular su solucin de las menores casillas usamos las siguientes instrucciones: [Q,R]= qr(A); Qt=Q (:,1:2); Rt=R(1:2,:); xstar = Rt \ (Qt*b) xstar = 0.3741 0.0654 Estos son precisamente los mismos coeficientes para la lnea de regresin calculada en el ejemplo 3.10. Ten en cuenta que este procedimiento es directamente implementado en el comando \: de hecho, la instruccin xstar = A\b produce el mismo xstar vector.

Que esta escondido detrs del comando


Sirve de mucho saber que el algoritmo especifico usado por MATLAB cuando el / comando es invocado depende de la estructura dela matriz A. Para determinar la estructura de A y seleccionar el algoritmo apropiado, MATLAB, sigue este precedente (en el caso de una real A) 1. Si A es densa y frecuenciada, entonces las resoluciones frecuenciadas son usadas (como el Algoritmo Thomas de la seccin 5.4) Decimos que un a matriz (o en ) tiene p si , cuando y superior banda q si cuando , el mximo entre p y q se llama la banda ancha de la matriz; 2. Si A es una matriz triangular superior o inferior (o sino una permutacin de una matriz triangular) entonces el sistema resuelto por un algoritmo de substitucin retrasado n para matrices triangulares superiores, o para un algoritmo de substitucin adelantado para matrices triangulares inferiores. La revisin para la triangularidad esta realizada por matrices llenas para probar elementos en cero y para matrices densas para acceder a la estructura de los datos densos; 3. Si A es simtrica y tiene elementos diagonales positivos reales (el cual no implica que A es definitivamente positivo) entonces una factorizacin Cholesky esta ensayada. (chol). Si A es densa, un algoritmo de pre orden es aplicado primero; 4. Si ninguno de los previos criterios son cumplidos , entonces una factorizacin triangular generada es calculada por eliminacin Gaussiana con pivotes parciales (lu); 5. Si A es denso, entonces la librera UMFPACK es usado para calcular la solucin del sistema 6. Si A no es cuadrado, adecua mtodos basados en la factorizacin QR para sistemas no determinados que son usados (para el caso sobredeterminado , vase seccin 5.5) El comando esta disponible tambin en Octave. Para una sistema con matriz densa, Octave solamente usa el LU o la factorizacin QR. Cuando la matriz es densa Octave sigue el siguiente procedimiento: 1. Si la matriz es superior ( con permutaciones de columnas) o inferior( con permutaciones de filas) triangular; lleva a acabo un adelantado denso o sustitucin retrasada; 2. Si la matriz es cuadrada o simtrica con una diagonal positiva, desarrolla la factorizacin Cholesky densa 3. Si la factorizacin Cholesky densa fallara o la matriz no es simtrica con una diagonal positiva , factoriza usando la biblioteca UMFPACK

4. Si la matriz es cuadrada , frecuenciada y si la densidad banda lis suficientemente pequea continua, mas el goto 3 a) Si la matriz es tridiagonal y la de lado derecho no es densa continua, mas goto b); i. Si la matriz es simtrica, con una diagonal positiva, ensaya la factorizacin Cholesky ii. Si la de encima fallara o la matriz no es simtrica con diagonal positiva usa la eliminacin Gaussiana pivoteando; b) si la matriz es simtrica con diagonal positiva. Prueba la factorizacin Cholesky c) Si la de encima fallara o la matriz no es simtrica con diagonal positiva usa la eliminacin Gaussiana pivoteando; 5. .si la matriz no esta cuadrada, o ninguna de las resoluciones previas muestra una singular o cercana matriz singular, encuentra una solucin en el sentido de las casillas menores.

RESUMAMOS 1. La factorizacin LU de A consiste in calcular una matriz triangular inferior L y una matriz triangular superior U tal como A=LU; 2. La factorizacin, siempre que exista, que existe no es nica. Sin embargo, puede ser determinada sin error para proporcionar una condicin adicional tal como e.g., ajustando los elementos diagonales de L igual a 1. Esta se llama factorizacin Gauss; 3. La factorizacin Gauss exista y es nica si y si solamente las submatrices principales de A de l orden 1 a n-1 son no singulares (de lo contrario al menos que un elemento pivote sea nulo; 4. Si un elemento pivote nulo es generado, un nuevo elemento pivote puede ser obtenido para intercambiar en una manera adecuada de dos filas (o columnas) de nuestro sistema. Esta es la estrategia pivote; operaciones, y solamente un 5. El calculo de la factorizacin Gauss requiere alrededor de orden de n operaciones en el caso de los sistemas tridiagonales; 6. Para matrices definitivamente positivas y simtricas podemos usar la factorizacin Cholesky donde H es una matriz triangular inferior, y el costo calculable es de orden de operaciones 7. La sensibilidad del resultado de perturbacin es de datos depende del numero condicional de la matriz del sistema; mas precisamente la exactitud de la solucin calculada puede ser baja si la s matrices son mal condicionadas; 8. la solucin de un sistema lineal sobre determinado puede ser intentada en el sentido de las menores casillas y puede ser calculada usando la factorizacin QR.

5.7 Mtodos iterativos


Un mtodo iterativo para la solucin de un sistema lineal (5.1) consiste en establecer una secuencia de vectores { } de que converja a la solucin exacta , que es (5.38) para cualquier vector inicial dado . Una posible estrategia capaz de realizar este proceso puede estar basada en la siguiente definicin recursiva (5.39) donde es una matriz apropiada (dependiendo de ) y es un vector apropiado (dependiendo de y ), cuya relacin tiene que satisfacer

(5.40) desde esto proporciona al error de paso Por resta (5.39) de (5.40), nosotros

Permite definir como obtenemos

Por esta razn es llamado matriz de iteracin asociada con (5.39). Si positiva, por (5.23) tenemos

es simtrica y definida

Hemos denotado como el radio espectral de , esto es, el mximo mdulo de los eigenvalores de . Por iteracin hacia atrs de la misma inecuacin, obtenemos As que [ ] (5.41)

cuando para cada posible (y de aqu en adelante ) con la condicin de . Actualmente, esta propiedad es tambin necesaria para convergencia.

Debera estar disponible, por alguna posibilidad, un valor aproximado de , (5.41) debera permitirnos deducir el mnimo numero de iteraciones que sea necesario para multiplicar el error inicial por un factor . Efectivamente, podra ser la mnima integracin positiva para ] cada [ . En conclusin, para una matriz genrica los siguientes resultados sostienen que:

Proposicin 5.2 Para un mtodo iterativo de la forma (5.39) cuya matriz de iteracin satisface (5.40), converge para algn . Adems, el mas pequeo el menor que el numero de iteraciones necesarias para reducir el error inicial por un factor dado.

5.7.1 Cmo construir un mtodo iterativo Una tcnica general para idear un mtodo iterativo est basada en un reparto de la matriz , , siendo una matriz no singular adecuada (llamado el precondicionador de ). Entonces

tiene la forma (5.40) proporciona que nosotros pongamos . Correspondientemente, nosotros podemos definir el siguiente mtodo iterativo: ( donde )

(5.42)

denota el vector residual de la iteracin siguiente (

. Una generalizacin de este mtodo iterativo es el ) ,

(5.43) donde es un parmetro que puede cambiar en toda iteracin y la cual, principalmente, podra ser til para mejorar las propiedades de convergencia de la secuencia { } El mtodo (5.43) requiere encontrar a cada paso el as llamado pre condicionamiento residual que es la solucin de el sistema lineal. (5.44) entonces la nueva iteracin esta definida por . Por esta razn la matriz debera ser escogida en tal camino que el costo computacional para la solucin de (5.44) sea mnima (ej., todo cualquier diagonal o triangular o tridiagonal servir como propsito). Consideremos ahora algunas instancias especiales de mtodos iterativos que tomen la forma (5.43)

El mtodo de Jacobi
Si las entradas de la diagonal de son distintas de cero, nosotros podemos poner , donde es la matriz diagonal conteniendo las entradas de la diagonal de . El mtodo de Jacobi corresponde a esta seleccin con la suposicin para todo entonces de (5.43) obtenemos o, componente atinado,

( (5.45) donde y ( Por lo tanto, la matriz de iteracin es

) es el vector inicial.

(5.46)

Los siguientes resultados permiten la verificacin de la Proposicin 5.2 sin computacin explicita :

Proposicin 5.3 Si la matriz mtodo de Jacobi converge.

es extrictamente diagonalmente dominante por fila, cuando el

De hecho, podemos verificar que , donde est dado en (5.46). Para empezar, anotamos que los elementos de la diagonal de son no nulos debiendo estar estrictamente en la

diagonal dominante. Tenemos Entonces

es un eigenvalor genrico de

es su eigenvector asociado.

Suponemos por simplicidad que (este no es limitado dado que un eigenvector es definido como una constante multiplicativa) y dejamos ser la componente cuyo mdulo es igual a 1. Entonces | | | | gracias a la

Podemos notar que tiene solo elementos nulos en la diagonal. Por lo tanto suposicin hecha en .

El mtodo de Jacobi esta implementado en el Programa 5.2 puesto en el parmetro . Los parmetros de entrada son: el sistema matriz , al lado de la derecha , el vector inicial y el mximo nmero de iteraciones asignado, . El procedimiento iterativo est terminado tan pronto como la proporcin entre la norma Euclidiana de el residuo actual y el residuo inicial de este son menores que la tolerancia prescrita (por una justificacin de este criterio de parada, ver Seccin 5.10). Programa 5.2. itermeth: mtodo iterativo general

El Mtodo de Gauss-Seidel
Cuando aplicamos el mtodo de Jacobi, cada componente del nuevo vector, es decir , es computado independientemente de los otros. Esto puede sugerir que una convergencia ms rpida podra (esperanzadamente) lograrse si los nuevos componentes ya disponibles , junto con los antiguos , son usados para el clculo de . Esto puede conducir a modificar (5.45) como sigue: para (hasta suponer que para )

( (5.47)

Los componentes mejorados estn hechos en modo secuencial, mientras que en el mtodo original de Jacobi este es hecho simultneamente (o en paralelo). El nuevo mtodo, el cual es llamado mtodo de Gauss-Seidel, corresponde a la seleccin y , en (5.43), donde es una matriz triangular reducida cuyas entradas no nulas son . La iteracin correspondiente a la matriz entonces

Una posible generalizacin es as llamada mtodo de relajacin en cual es el parmetro de relajacin, y (ver Ejercicio 5.13).

, donde

Tambin para el mtodo de Gauss-Seidel existen matrices especiales cuyas matrices de iteracin asociadas satisfacen la suposicin de la Proposicin 5.2 (las garantas de convergencia). Entre ellos podemos mencionar: 1. Matrices que son estrictamente diagonales dominante por hileras; 2. Matrices que son definidas simtricas y positivas. El mtodo de Gauss-Seidel est implementado en el Programa 5.2 coloca los parmetros de entrada iguales a G. No hay resultados declarados que el mtodo de Gauss-Seidel converja ms rpido que el de Jacobi. Sin embargo, en algunas instancias especiales este es el caso, cuando es declarada por la siguiente proposicin:

Proposicin 5.4 Dejamos a A ser una matriz tridiagonal no singular de NxN cuyos elementos de la diagonal son no nulos. Entonces el mtodo de Jacobi y el de Gauss-Seidel son cualquiera de los dos divergentes o cualquiera de los convergentes. En el ltimo de los casos, el mtodo de GaussSeidel es ms rpido que el de Jacobi; mas precisamente el radio espectral de esta matriz de iteracin es igual al cuadrado de la de Jacobi.

Ejemplo 5.12 Consideramos un sistema lineal , donde es elegido en tal forma que la solucin es el vector unitario y es la matriz tridiagonal de cuyas entradas de la diagonal son iguales a 3, las entradas de la primera diagonal inferior son iguales a -2 y las de la diagonal superior son todas iguales a -1. Ambos mtodos el de Jacobi y el de Gauss-Seidel converge desde el radio espectral de sus matrices de iteracin son estrictamente menores a 1. Mas precisamente, por empezar de un vector nulo inicial y elegir , el mtodo de Jacobi converge en 277 iteraciones mientras solo 143 iteraciones son requeridas para el de Gauss-Seidel. Para este resultado hemos usado las siguientes instrucciones:

Ver Ejercicios 5.11-5.14

5.8 Mtodos de Richardson y de la Gradiente


Consideremos ahora los mtodos (5.43) para cuales la aceleracin paramtrica es no nula. Llamamos caso estacionario cuando (una constante dada) para algn , caso dinmico

en el cual puede cambiar a lo largo de las iteraciones. En esta estructura de una matriz no singular es an llamado un pre condicionamiento de . El asunto crucial es el camino en que los parmetros son escogidos. Con respecto a esto, los siguientes resultados sostienen (ver ejemplo, [QV94, captulo 2], [Anexo 94]).

Proposicin 5.5 Si los dos, y son simtricas y positivas definidas, el mtodo estacionario de Richardson converge para todas las posibles elecciones de si , donde es el mximo eigenvalor de . Adems, el radio espectral de la matriz de iteracin es minima cuando , donde

(5.48) siendo el mnimo eigenvalor de . Bajo la misma suposicin en y , el mtodo dinmico de Richardson converge si por ejemplo es elegido en la siguiente forma: ( (5.49) donde es el residuo precondicionado definido en (5.44). El mtodo (5.43) con esta eleccin de es llamado el mtodo precondicionado del gradiente, o simplemente el mtodo del gradiente cuando el precondicionador es la matiz identidad. Para ambas elecciones, (5.48) y (5.49), las siguientes convergencias estimadas sostienen: (
( )

(5.50) , es la tambin llamada norma de energa asociada con la

Donde matriz

La versin dinmica debe, por lo tanto, ser preferida al mtodo estacionario desde que este no necesita los eigenvalores extremos conocidos de . Preferiblemente, el parmetro es determinado en trminos de cantidades las cuales son ya vlidas desde la iteracin previa.

Podemos escribir el mtodo del gradiente pre condicionado ms eficientemente a travs del siguiente algoritmo (la deduccin es dejado como ejercicio): dado , hacemos

Para

Igual algoritmo puede ser usado para implementar el mtodo estacionario de Richardson, simplemente reemplazando con el valor constante . De (5.50), podemos deducir que si es mal condicionado el tipo de convergencia podra ser muy bajo incluso para (como en el caso ( ) ). Esta circunstancia puede ser evitada con la condicin de que una eleccin conveniente de sea hecha. Esta es la razn porque es llamada el pre condicionante o la matriz precondicionadora. Si es una matriz genrica, esta puede dar una difcil tarea para encontrar un pre condicionante cuyas garantas y cambios ptimos entre el producto del numero de condicin y conservar el costo computacional para la solucin del sistema (5.44) sea razonablemente baja. El mtodo dinmico de Richardson es implementado en el Programa 5.2 donde el parmetro de entrada colocado por la matriz precondicionante (cuando no preescribe, el programa implementa el mtodo no pre condicionante por colocacin ). Ejemplo 5.14 Permtanos condicionar un sistema , donde is una matriz pentadiagonal donde su diagonal principal tiane todas las entradas iguales a 4, mientras la primera y tercera diagonales inferiores y superiores tienen todas las entradas iguales a -1. Como de costumbre, es elegido de tal forma que es la solucin exacta de nuestro sistema. Tenemos que es la matriz trigiadonal cuyos elementos de la diagonal son todos iguales a 2, mientras que los elementos de la diagonal superior e inferior son todos iguales a -1. Ambos, y son simetricas y definidas positivas. Con como un precondicionante, el Programa 5.2 puede ser usado para implementar el mtodo precondicionante dinamico de Richardson. Fijamos . el mtodo converge con 18 iteraciones. El mismo Programa 5.2, usado con , implementa el mtodo de Gauss-Seidel; esta vez tantas como 2421 iteraciones son requeridas para satisfacer el mismo criterio de detencin.

Fig. 5.6. Historia de convergencia para Jacobi, Gauss-Seidel y el mtodo del gradiente aplicados al sistema (5.52)

5.9 El mtodo del Gradiente conjugado


En los proyectos iterativos como (5.51) la nueva iteracin es obtenida por la adicin a la iteracin anterior un vector que es cualquiera de los dos, el residuo o el residuo precondicionado. Una pregunta natural es si es posible encontrar en lugar de una secuencia de vectores optimos, es decir , que asegure la convergencia del mtodo en un mnimo nmero de iteraciones. Cuando la matriz A es simtrica y positiva definida, el mtodo del gradiente conjugado (abreviado CG) usa una secuencia de vectores que son (o ), esto es, , (5.53) la k-sima iteracin del mtodo de la gradiente

Entonces, colocando conjugada tomar la forma:

y Para k=0,1,

(5.54) La constante garantiza que el error es minimo alrededor de la direccin descendente , mientras es elegido para asegurar que la nueva direccin es la conjugada de con . Para una completa demostracin del mtodo, ver por ejemplo [QSS06, Captulo 4] o [Saa96]. Es posible demostrar el siguiente resultado importante:

Proposicin 5.6 Tenemos que es una matriz simtrica y positiva definida. El mtodo del gradiente conjugado para resolver (5.1) converge despus de mas de n pasos (en una aritmtica exacta). Adems, el error a la k-sima iteracin (con ) es ortogonal para , en y

(5.55)

Por lo tanto, en ausencia de errores de redondeo, el mtodo CG puede ser considerado como un mtodo directo, desde que este termina a un finito nmero de pasos. Sin embargo, para matrices de gran tamao, este es usualmente empleado como un proyecto iterativo, donde las iteraciones son detenidas cuando el error est debajo de una tolerancia fijada. Con respecto a esto, la dependencia

del factor de reduccin del error en el nmero de condicin de la matriz es mas favorable que para el mtodo del gradiente (gracias a la presencia de la raz cuadrada de ). Tambin para el mtodo CG es posible considerar a la versin pre condicionante (el mtodo PCG), con un pre condicionante simtrico y positivo definido, cuyas entradas son las siguientes: dado y colocado y , Para k=0,1,

(5.56) El mtodo PECG est implementado en MATLAB funcin pcg. Ejemplo 5.15 (Factorizacin vs mtodos iterativos en el sistema de Hilbert) Regresemos al Ejemplo 5.8 en la matriz de Hilbert y resolvamos el sistema (para diferentes valores de ) por el mtodo del gradiente pre condicionado (PG) y el mtodo del gradiente pre condicionado conjugado (PCG), usando como pre condicionante la matriz diagonal creada por las entradas de la diagonal de la matriz de Hilbert. Fijamos para ser el vector nulo e iteramos hasta que el residuo relativo sea menos que . En la Tabla 5.2 reportamos los errores absolutos (con respecto a la solucin exacta) obtenidos con los mtodos PG y PCG y los errores obtenidos usando el comando de MATLAB \. En el ltimo de los casos el error se degenera cuando crece. Por otra parte, podemos apreciar el efecto beneficioso que un apropiado mtodo iterativo como el PCG puede tener en un nmero de iteraciones. PG Error 1.74e-02 8.80e-03 1.78e-02 2.52e-03 1.76e-02 1.46e-02 PCG Error 2.24e-02 9.50e-03 2.13e-02 6.98e-03 1.12e-02 1.61e-02

4 6 8 10 12 14

1.55e+04 1.50e+07 1.53e+10 1.60e+13 1.79e+16 4.07e+17

Error 2.96e-13 4.66e-10 4.38e-07 3.79e-04 0.24e+00 0.26e+02

Iter. 995 1813 1089 875 1355 1379

Iter. 3 9 4 5 5 5

Tabla 5.2. Errores obtenidos usando el mtodo del gradiente pre condicionante (PG), el mtodo de la conjugada del gradiente pre condicionante (PCG) y el mtodo directo implementado en MATLAB comando \ para la solucin del sistema de Hilbert. Para los mtodos iterativos reportamos tambin el nmero de iteraciones. Comentario 5.3 (Sistemas no simtricos) El mtodo CG es un ejemplo especial de el tambin llamado mtodo Krilov (o Lanczos) que puede ser usado para la solucin de sistemas las que no son

necesariamente simtricas. Algunas de estas partes con el mtodo CG tienen la notable propiedad de la terminacin finita, esto es, en aritmtica exacta ellos proporcionan la solucin exacta en un finito nmero de iteraciones adems para sistemas no simtricos. Un ejemplo es el mtodo GMRES(Mnimo Residuo Generalizado). Su descripcin es demostrada, ej., en [Axe94], [Saa96] y [vdV03]. Ellos son validos en las herramientas en MATLAB sparfun bajo el nombre de gmres. Otro mtodo de esta familia sin la propiedad de terminacin finita, la cual sin embargo requiere el menor esfuerzo computacional que GMRES, es el mtodo de la gradiente conjugada al cuadrado (CGS) y su variante, el mtodo BiCGStab, que est caracterizado por mas convergencias regulares que CGS. Todos estos mtodos son vlidos en las herramientas de MATLAB sparfun. Octave 5.1 Octave proporciona solo una implementacin de el mtodo del gradiente de la conjugada pre condicionante (PCG) a travs de el comando pcg y el mtodo del residuo pre condicionante conjugado (PCR/Richardson) a travs del comando pcr. Otro mtodo iterativo como GMRES, CGS, Bi-CGStab no estn implementados todava. Ver Ejercicios 5.15-5.17

5.10 Cundo se debera detener un mtodo iterativo?


En teora los mtodos iterativos requieren un infinito nmero de iteraciones para converger a una solucin exacta de un sistema lineal. En la prctica, esto no es razonable ni necesario. De hecho, no es realmente necesario para lograrla solucin exacta, sino ms bien una aproximacin para los que podemos garantizar que el error sea menor que una tolerancia deseada . Por otra parte, puesto que el error es en s desconocida (ya que depende de la solucin exacta), necesitamos un adecuado un estimador de error a posteriori que predice el error a partir de las cantidades que ya han sido calculados. El primer tipo de estimador est representado por el residuo en la k-sima iteracin, vea (5.42). Ms precisamente, podemos detener nuestro mtodo iterativo en la iteracin primer paso para los que Ajuste

en (5.29) se obtiene

que es una estimacin del error relativo. Deducimos que el control en el residual es significativo slo para aquellos cuyo nmero de condicin de matrices es razonablemente pequeo. Ejemplo 5.16 Consideremos el sistema lineal (5.1) donde es la Matriz de Hilbert de dimensin 20 introducido en el Ejemplo 5.8 y est construido de tal manera que la solucin exacta es . Puesto que es simtrica y definida positiva el mtodo de GaussSeidel converge seguramente. Usamos Programa de 5.2 para resolver este sistema de tomar como el vector inicial nulo y establecer una tolerancia en el residual igual a . El mtodo converge en iteraciones, sin embargo el error relativo es muy grande y es igual a . Esto es debido al hecho de que A est extremadamente mal condicionado, teniendo . En la Figura 5.7 que muestran el comportamiento de la residual (normalizada a la inicial) y la del error segn como aumenta el nmero de iteraciones.

Fig. 5.7. Comportamiento del residual normalizado

(lnea discontinua) y del error

(lnea continua) para las iteraciones de Gauss-Seidel aplicada al sistema del Ejemplo 5.16 Un enfoque alternativo se basa en el uso de un diferente estimador de error diferente, a saber, el increment . Ms precisamente, podemos detener nuestro mtodo iterativo en el iteracin primer paso para que

En el caso especial donde B es simtrica y definida positiva, tenemos

Puesto que

debe ser menor que 1 para que el mtodo a converger, deducimos

(5.57) Desde la ltima desigualdad se ve que el control sobre el incremento es significativo slo si es mucho menor que 1 ya que en ese caso, el error ser del mismo tamao que el incremento. De hecho, la misma conclusin se mantiene incluso si B no es simtrica y definida positiva (como ocurre para los mtodos de Jacobi y de Gauss-Seidel); sin embargo en este caso (5.57) ya no es cierto. Ejemplo 5.17 Consideremos un sistema cuya matriz es tridiagonal y simtrica con entradas iguales a en la diagonal principal e igual a 1 en las otras dos diagonales. Como de costumbre, el del lado derecho se elige de tal manera que el vector unitario es la solucin exacta. Como A es tridiagonal con estricta dominancia diagonal, el mtodo de GaussSeidel converge casi el doble de rpido que el mtodo de Jacobi (vea la Proposicin 5.4). Usemos Programa de 5.2 para resolver nuestro sistema en el que se remplaza el criterio de parada basado en el residuo por el basado en el incremento. El uso de un vector inicial nulo y el establecimiento de la tolerancia , despus de 1604 iteraciones el programa devuelve un error cuya solucin 0.0029 es bastante grande. La razn es que el radio espectral de la matriz de iteracin es igual a 0.9952, que est muy cerca de 1. Deberan las entradas diagonales ser igual a 3, despus de

solamente 17 iteraciones habramos obtenido un error igual a espectral de la matriz de iteracin sera igual a 0.428.

.. De hecho, en ese caso el radio

Resumamos
1. Un mtodo iterativo para la solucin de un sistema lineal se inicia a partir de un determinado vector inicial y construye una secuencia de vectores que se requiere para converger hacia la solucin exacta como k ; 2. Un mtodo iterativo converge para cada posible eleccin del vector inicial si y slo si el radio espectral de la matriz de iteracin es estrictamente menor que 1; 3. Mtodos iterativos clsicos son los de Jacobi y Gauss-Seidel. Una condicin suficiente para la convergencia es que la matriz del sistema sea estrictamente diagonal dominante por fila (o simtrica y definida positiva en el caso de Gauss-Seidel); 4. En la convergencia del mtodo de Richardson se acelera gracias a la introduccin de un parmetro y (posiblemente) una matriz conveniente pre condicionada; 5. Con el mtodo del gradiente conjugado la solucin exacta de un sistema simtrico definido positivo se puede calcular en un nmero finito de iteraciones (en aritmtica exacta). Este mtodo se puede generalizar para el caso no simtrico; 6. Hay dos posibles criterios de parada para un mtodo iterativo: el control del residual o control del incremento. El primero es significativo si el sistema de matriz est bien condicionada, este ltimo si el radio de espectral de la matriz de iteracin no est cerca de 1.

5.11 Para recapitulacin: directo o iterativo?


En esta seccin comparamos los mtodos directos e iterativos en varios casos de prueba simples. Para un sistema lineal de pequeo tamao, en realidad no importa ya que cada mtodo har el trabajo. En cambio, para los sistemas de gran escala, la eleccin depender principalmente de las propiedades de la matriz (tales como simetra, definicin positiva, patrn de escasez, nmero de condicin), sino tambin en el tipo de recursos informticos disponibles (acceso de memoria, procesadores rpidos, etc.). Hay que reconocer que en nuestras pruebas, la comparacin no ser totalmente fiel. Un mtodo directo que vamos a usar en realidad es el MATLAB built-in function \ que es compilado y optimizado, mientras que los solucionadores iterativos no lo son. Nuestros clculos se llevaron a cabo en un procesador Intel Pentium M 1.60 GHz con cach RAM 2048 KB y 1 GByte.

Un sistema lineal con matriz banda hueca de pequea anchura de banda


El primer caso de prueba se refiere a sistemas lineales que surgen de esquemas en diferencias finitas de 5 puntos para la discretizacion del problema de Poisson en el cuadrado (vase la Seccin 8.1.3). Retculas uniformes de paso en ambas coordenadas espaciales se consideran, para varios valores de N. Las correspondientes matrices de diferencias finitas, con filas y columnas de , se generan mediante el programa de 8.2. En la Figura 5.8, izquierda, trazamos la estructura de la matriz correspondiente al valor : es dispersa, en bandas, con slo 5 entradas no nulas por fila. Cualquier matriz es simtrica y definida positiva, pero mal condicionado: su nmero de condicin espectral se comporta como una constante de tiempo para todos los valores de . Para resolver los sistemas lineales asociados vamos a utilizar la factorizacin de Cholesky, el mtodo de gradiente conjugado pre condicionado (PCG) con pre condicionado dado por la factorizacin incompleta de Cholesky (disponible a travs del comando cholinc) y el

comando de MATLAB \ que, en el caso que actual, es de hecho un algoritmo ad hoc para matrices simtricas pentadiagonales. El criterio de parada para el mtodo PCG es que la norma de la relacin residual sea inferior a , el tiempo de CPU incluye tambin el tiempo necesario para construir el preacondicionador. En la Figura 5.8, derecha, se compara el tiempo de CPU para los tres mtodos diferentes en comparacin con el tamao de la matriz. El mtodo directo oculto por el comando \ es, con mucho, el ms barato: de hecho, que se basa en una variante de la eliminacin gaussiana que es particularmente eficaz para matrices dispersas en bandas con ancho de banda pequeo. El mtodo PCG, a su vez, es ms conveniente que la factorizacin de Cholesky, proporcionado un adecuado pre acondicionador se utiliza. Por ejemplo, si el mtodo PCG requiere 19 iteraciones, mientras que el mtodo CG (sin pre condicionamiento) requerira 325 iteraciones, lo que resulta, de hecho, menos conveniente que la factorizacin de Cholesky simple.

Fig. 5.8. La estructura de la matriz para el primer caso de prueba (a la izquierda), y el tiempo de CPU necesario para la solucin del sistema lineal asociado (a la derecha): la lnea continua se refiere a la \ comando, la lnea de rayas y puntos a la utilizacin de la factorizacin de Cholesky, la lnea discontinua a la PCG mtodo iterativo

El caso de un ancho de banda


Todava consideramos la misma ecuacin de Poisson, sin embargo esta vez la discretizacin se basa en mtodos espectrales con frmulas de cuadratura de Gauss-Lobatto-Legendre (ver, por ejemplo, [CHQZ06]). A pesar de que el nmero de la red de los nodos es el mismo que para las diferencias finitas, con mtodos espectrales de los derivados son aproximadas usando muchos nodos ms (de hecho, en cualquier nodo dado los x-derivados se aproximan utilizando todos los nodos que se ubiquen en la misma fila, mientras que todos los que en la misma columna se utilizan para calcular y-derivados). Las matrices correspondientes son todava dispersas y estructuradas, sin embargo, el nmero de entradas no nulas es definitivamente superior. Esto est claro en el ejemplo en la Figura 5,9, a la izquierda, donde la matriz espectral tiene todava filas y columnas, pero el nmero de elementos no nulos es 7936 en lugar de la 1216 de la matriz de diferencias finitas de la Figura 5.8. El tiempo del CPU informa en la Figura 5,9, derecha, muestra que para esta matriz el algoritmo PCG, mediante la factorizacin incompleta de Cholesky como pre condicionante, se comporta mucho mejor que los otros dos mtodos. Una primera conclusin es que para matrices dispersas definidas simtricas y positivas con gran ancho de banda, PCG es ms eficiente que el mtodo

directo implementado en MATLAB (que no utiliza la factorizacin de Cholesky puesto que la matriz se almacena con el formato sparse). Se seala que un pre condicionante adecuado es sin embargo fundamental para que el mtodo PCG sea competitivo. Finalmente, debemos tener en cuenta que los mtodos directos requieren ms capacidad de almacenamiento de memoria que los mtodos iterativos, una dificultad que podra convertirse en insuperable en aplicaciones a gran escala.

Fig. 5.9. La estructura de la matriz utilizada en el segundo caso de prueba (a la izquierda), y el tiempo de CPU necesario para resolver el sistema lineal asociado (a la derecha): la lnea continua se refiere a la \ comando, la lnea de rayas y puntos para el uso de la factorizacin de Cholesky, la lnea discontinua para el mtodo iterativo PCG

Los sistemas con matrices llenas


Con el comando de MATLAB gallery podemos tener acceso a un conjunto de matrices que ofrecen diferente estructura y propiedades. En particular, para nuestro caso de prueba en tercer lugar, el comando A = galera ('riemann, n) seleccionamos la matriz denominada Riemannn de dimensin n, que es un completo n n, la matriz no simtrica cuyo determinante se comporta como det(A) = O ( para todos . El sistema lineal asociado se resuelve por el mtodo iterativo GMRES (vase la seccin 5.3) y las iteraciones se detiene tan pronto como la norma de la relacin residual es inferior a Por otra parte, vamos a utilizar el comando de MATLAB \ que, en el caso que nos ocupa, implementa la factorizacin LU Para varios valores de n que va a resolver el sistema lineal correspondiente en consecuencia. Las iteraciones GMRES se obtienen sin pre condicionamiento, y con un pre condicionante diagonal especial. Este ltimo se obtiene por el comando luinc (A, 1.e0) basado en la factorizacin LU llamada incompleta, una matriz que se genera a partir de una manipulacin algebraica de las entradas de la L y factores de U de A, vase [QSS06]. En la Figura 5.10, derecha, se presenta el tiempo de CPU para n oscila entre 100 y 1000. A la izquierda se presenta el nmero de condicin de A cond(A). Como se puede ver, el mtodo de factorizacin directa es mucho menos costosa que el mtodo GMRES no pre condicionada, sin embargo, resulta ms caro para n grande cuando se utiliza un pre condicionante adecuado. Octave 5.2 El comando gallery no est disponible en Octave. Sin embargo, algunos estn disponibles, tales como las matrices de Hilbert, o Hankel Vandermonde, consulte los comandos hankel, hilb, sylvester_matrix invhilb, Toeplitz y vander. Adems, si usted tiene acceso a

MATLAB, puede guardar una matriz definida en la galera con el comando save y luego cargarla en Octave usando load. Aqu est un ejemplo: En MATLAB:

En OCTAVE:

La figura. 5,10. A la izquierda, el nmero de condicin de la matriz A. Riemann A la derecha, la comparacin entre los tiempos de CPU para la solucin del sistema lineal: la lnea continua se refiere a la \ comando, la lnea discontinua se refiere a los GMRES mtodo iterativo con sin preacondicionamiento. Los valores en abscisas se refieren a la dimensin de la matriz Tenga en cuenta que slo la Octave versin 2.9 puede cargar Mat-files correctamente desde MATLAB versin 7.

Los sistemas con matrices dispersas, no simtricas


Consideramos que los sistemas lineales que se generan por la discretizacin de elemento finito de valores en la frontera de difusin de reaccin de transporte problemas en dos dimensiones. Estos problemas son similares a la reportada en (8.17), que se refiere a un caso unidimensional. Su aproximacin de elementos finitos, que se ilustra en el final de la Seccin 8.17 en el caso unidimensional, hace uso de polinomios lineales a trozos para representar la solucin en cada elemento triangular de una cuadricula que las particiones de la regin donde el problema de valor de frontera se establece. Las incgnitas del sistema algebraico asociado es el conjunto de valores alcanzados por la solucin en los vrtices de los tringulos internos. Nos referimos a, por ejemplo, [QV94] para una descripcin de este mtodo, as como para la determinacin de las entradas de la matriz. Vamos a simplemente sealar que esta matriz es dispersa, pero no en banda (su patrn de dispersion depende de la forma en que los vrtices estn numerados) y no simtrica, debido a la presencia del trmino de transporte. La falta de simetra, sin embargo, no es evidente a partir de la representacin de su estructura en la figura 5.11, izquierda.

Fig. 5.11. La estructura de una de las matrices usadas para el cuarto caso de prueba (a la izquierda), y el tiempo de CPU necesario para la solucin del sistema lineal asociado (a la derecha): la lnea continua se refiere a la \ comando, la lnea discontinua a la Bi-CGStab mtodo iterativo Cuanto menor sea el dimetro h de los tringulos (es decir, las longitudes de su borde ms largo), mayor es el tamao de la matriz. Hemos comparado el tiempo de la CPU necesario para resolver el sistema lineal correspondiente al caso h = 0,1, 0,05, 0,025, 0,0125 y 0,0063. Hemos utilizado el comando de MATLAB \, que en este caso utilizar la UMFPACK library and the (MATLAB implementation of the) mtodo iterativo Bi-CGStab que puede considerarse como una generalizacin a sistemas no simtricas del mtodo del gradiente conjugado. En abscisas se ha reportado el nmero de incgnitas que van desde los 64 (para h = 0,1) y 101.124 (para h = 0,0063). Tambin en este caso, el mtodo directo es menos cara que un iterativo. Deberamos usar como pre condicionante para el mtodo de Bi-CGStab la factorizacin LU incompleta, el nmero de iteraciones reducira, sin embargo el tiempo de CPU sera ms alto que el otro para el caso no pre condicionado.

En conclusin
Las comparaciones que hemos llevado a cabo, aunque muy limitado, esboza unos pocos aspectos relevantes. En general, los mtodos directos (especialmente si se aplican en sus versiones ms sofisticadas, como en el comando \ MATLAB) son ms eficientes que los mtodos iterativos cuando estos ltimos se utilizan sin pre condicionantes eficientes. Sin embargo, son ms sensibles a la matriz mal condicionada (vase por ejemplo el Ejemplo 5.15) y pueden requerir una cantidad considerable de almacenamiento. Un aspecto adicional que vale la pena mencionar es que los mtodos directos requieren el conocimiento de las entradas de la matriz, mientras que los mtodos iterativos no. De hecho, lo que es necesario en cada iteracin es el clculo de productos vectoriales matriz de vectores dados. Este aspecto hace que los mtodos iterativos especialmente interesantes para los problemas en los que la matriz no est explcitamente generada.

5.12 Lo que no te he dicho


Varias variantes eficientes de la factorizacin LU de Gauss estn disponibles para sistemas dispersos de gran dimensin. Entre los ms avanzados, citamos el llamado multifrontal method llamada que hace uso de un reordenamiento adecuado de las incgnitas del sistema con el fin de

mantener la L factores triangular y U tan escaso como sea posible. El mtodo multifrontal se implementa en el paquete de software UMFPACK. Ms sobre este tema est disponible en [GL96] y [DD99]. En cuanto a los mtodos iterativos, tanto el mtodo de gradiente conjugado y el mtodo GMRES son casos especiales de los mtodos de Krylov. Para obtener una descripcin de los mtodos de Krylov vase, por ejemplo [Axe94], [Saa96] y [vdV03]. Como se seal, los mtodos iterativos convergen lentamente si la matriz del sistema est gravemente enfermo acondicionado. Varias estrategias de pre condicionamiento se han desarrollado (vase, por ejemplo, [dV89] y [vdV03]). Algunos de ellos son puramente algebraicos, es decir, que se basan en incompletos (o inexactas) factorizaciones de la matriz del sistema dado, y se aplican en las funciones ya citadas luinc MATLAB o cholinc. Otras estrategias se desarrollan ad hoc mediante la explotacin del origen fsico y la estructura del problema que se ha generado por el sistema lineal a mano. Finalmente, merece la pena mencionar los multigrid methods que se basan en el uso secuencial de una jerarqua de sistemas de dimensiones variables que "se asemejan a" la original, permitiendo una estrategia de reduccin de error inteligente (vase, por ejemplo, [Hac85], [Wes04] y [Hac94]). Octave 5.3 En Octave, cholinc no est todava disponible. Slo luinc ha sido implementado.

5.13 Ejercicios
Ejercer 5.1 Para una matriz dada A encontrar el nmero de operaciones (como una funcin de ) que se necesitan para calcular su determinante por la frmula recursiva (1.8). Ejercicio 5.2 Uso del comando de MATLAB magic (n), n = 3, 4,. . . , 500, para la construccin de los cuadrados mgicos de orden n, es decir, las matrices que tienen entradas para las que la suma de los elementos por filas, columnas o diagonales son idnticos A continuacin, calcular sus determinantes por el comando det introducido en la Seccin 1.3 y el tiempo de CPU que se necesita para este clculo mediante el comando cputime. Por ltimo, estos datos aproximados por el mtodo de mnimos cuadrados y deducir que las escalas de tiempo de CPU aproximadamente como . Ejercicio 5.3 Encontrar para qu valores de la matriz definida en (5.13) no satisface las hiptesis de la Proposicin 5.1. Para qu valor de es esta matriz convertirse en singular? Es posible calcular la factorizacin LU en ese caso? Ejercicio 5.4 Verificar que el nmero de operaciones necesarias para calcular la factorizacin LU de una matriz cuadrada A de dimensin n es de aproximadamente Ejercicio 5.5 Demostrar que la factorizacin LU de A se puede utilizar para el clculo de la matriz inversa . (Observe que el vector columna j-sima de satisface el sistema lineal siendo el vector cuyos componentes son todos nulos excepto el componente j-sima que es 1. Ejercicio 5.6 Calcular la L y U factores de la matriz del ejemplo 5.7 y verificar que la factorizacin LU es inexacta. Ejercicio 5.7 Explique por qu pivoteo parcial por filas no es conveniente para las matrices simtricas. Ejercicio 5.8 Considere el sistema lineal con

y b tal que la solucin correspondiente es factorizacin de Gauss de A y que tenga en cuenta que la solucin calculada es exacta. Ejercicio 5.9 Considere el lineal sistemas

y es un nmero real positivo. Calcula la cuando 0. A pesar de eso, verificar

, i = 1, 2, 3, con

y tal que la solucin es siempre . Resuelve el sistema de la factorizacin de Gauss con pivoteo parcial por fila, y comentar los resultados obtenidos. Ejercicio 5.10 Demostrar que para una matriz definida positiva y simtrica A. Tenemos . Ejercicio 5.11 Analizar las propiedades de convergencia de los Jacobi y Gauss-Seidel mtodos para la solucin de un sistema lineal cuya matriz es

Ejercicio 5.12 Proporcionar una condicin suficiente manera que tanto mtodos de Jacobi y de Gauss-Seidel convergen cuando se aplica para la solucin de un sistema cuya matriz es

Ejercicio 5.13 Para la solucin del sistema lineal con A , tenga en cuenta el mtodo de relajacin: dado , para k = 0, 1,. . . calcular

para i = 1,. . . , N, donde es un parmetro real. Encuentra la forma explcita de la matriz correspondiente iterativo, a continuacin, compruebe que la condicin 0 < <2 es necesaria para la convergencia de este mtodo. Tenga en cuenta que si = 1 este mtodo reduce al mtodo de Gauss Seidel. Si 1 < <2 el mtodo se conoce como SOR (successive over-relaxation). Ejercicio 5.14 Considere el sistema lineal con

y decir si converge el mtodo de Gauss-Seidel, sin calcular explcitamente el radio espectral de la matriz de iteracin Ejercicio 5.15 Calcular la primera iteracin con los mtodos de Jacobi, Gauss-Seidel y el mtodo del gradiente pre condicionado (con pre condicionante propuesto por la diagonal de A) para la solucin de sistema (5.52) con . Ejercicio 5.16 Demostrar (5.48), y luego demostrar que

Ejercicio 5.17 Consideremos un conjunto de n = 20 fbricas que producen 20 productos diferentes. Con referencia al modelo de Leontief introducido en el problema 5.3, supongamos que la matriz C tiene las siguientes entradas: para , mientras que , para . Es posible resolver este sistema por el mtodo del gradiente? Proponer un mtodo basado en el mtodo de gradiente de sealar que, si A es no singular, el matriz es simtrica y definida positiva.

También podría gustarte