Método iterativo

Embed Size (px)

Citation preview

Mtodo iterativoEnmatemtica computacional, unmtodo iterativotrata de resolver un problema (como una ecuacin o un sistema de ecuaciones) medianteaproximacionessucesivas a la solucin, empezando desde una estimacin inicial. Esta aproximacin contrasta con los mtodos directos, que tratan de resolver el problema de una sola vez (como resolver un sistema de ecuacionesAx=bencontrando la inversa de lamatrizA). Los mtodos iterativos son tiles para resolver problemas que involucran un nmero grande de variables (a veces del orden de millones), donde los mtodos directos tendran un coste prohibitivo incluso con la potencia del mejor computador disponible.

ndice[ocultar] 1Puntos fijos atractivos 2Sistemas lineales 2.1Mtodos iterativos estacionarios 2.2Mtodos del subespacio de Krylov 2.3Convergencia 2.4Precondicionantes 3Historia 4Vase tambin 5Enlaces externos

[editar]Puntos fijos atractivosSi una ecuacin puede ponerse en la formaf(x) =x, y una solucinxes unpunto fijoatractivo de lafuncinf, entonces puede empezar con un puntox1en la base de atraccin dex, y seaxn+1=f(xn) paran1, y la secuencia {xn}n1converger a la solucinx.[editar]Sistemas linealesEn el caso de unsistema lineal de ecuaciones, las dos clases principales de mtodos iterativos son losmtodos iterativos estacionariosy los ms generales mtodos delsubespacio de Krylov[editar]Mtodos iterativos estacionariosLos mtodos iterativos estacionarios resuelven un sistema lineal con unoperadorque se aproxima al original; y basndose en la medida de error (el residuo), desde unaecuacin de correccinpara la que se repite este proceso. Mientras que estos mtodos son sencillos de derivar, implementar y analizar, la convergencia normalmente slo est garantizada para una clase limitada de matrices.[editar]Mtodos del subespacio de KrylovLos mtodos del subespacio de Krylov forman unabase ortogonalde la secuencia de potencias de la matriz por el residuo inicial (lasecuencia de Krylov). Las aproximaciones a la solucin se forman minimizando el residuo en el subespacio formado. El mtodo prototpico de esta clase es elmtodo de gradiente conjugado. Otros mtodos son elmtodo del residuo mnimo generalizadoy elmtodo del gradiente biconjugado.[editar]ConvergenciaDado que estos mtodos forman una base, el mtodo converge enNiteraciones, dondeNes el tamao del sistema. Sin embargo, en la presencia de errores de redondeo esta afirmacin no se sostiene; adems, en la prcticaNpuede ser muy grande, y el proceso iterativo alcanza una precisin suficiente mucho antes. El anlisis de estos mtodos es difcil, dependiendo de lo complicada que sea la funcin delespectrodel operador.[editar]PrecondicionantesEl operador aproximativo que aparece en los mtodos iterativos estacionarios puede incorporarse tambin en los mtodos del subespacio de Krylov, donde se pasan de ser transformaciones del operador original a un operador mejor condicionado. La construccin de precondicionadores es un rea de investigacin muy extensa.[editar]HistoriaProbablemente, el primer mtodo iterativo apareci en una carta deGaussa un estudiante. Propona resolver un sistema 4 por 4 de ecuaciones mediante la repeticin de la solucin del componente donde el residuo era mayor.La teora de mtodos estacionarios se estableci slidamente con el trabajo deD.M. Young, que empez en ladcada de 1950. El mtodo del gradiente conjugado se invent en esa misma dcada, con desarrollos independientes deCornelius Lanczos,Magnus HestenesyEduard Stiefel, pero su naturaleza y aplicacin se malentendieron en esa poca. Slo en la dcada de 1970 se puso de manifiesto que estos mtodos los cuales tienden a funcionan muy bien para resolverecuaciones de derivadas parciales, especialmente del tipo elptico.http://es.wikipedia.org/wiki/M%C3%A9todo_iterativoINTRODUCCINEn laprcticade laingenieraycienciases frecuente tener la necesidad de resolver unsistemadeecuacioneslineales. Estossistemasaparecen en muy diversosproblemas, ya sea como lasolucincompleta de un problema al menos como parte de ella. Dada esta necesidad frecuente, se requiere resolverlos en forma eficiente.Losmtodosnumricos que resuelven los sistemas se pueden clasificar en directos e indirectos.Los mtodos directos son aquellos que determinan la solucin en un numero determinado de pasos.Los mtodos iterativos son aquellos que obtienen la solucin aproximndose a ella en un numero finito, pero no definido de pasos.La siguiente entrega pretende encontrar la solucin de un sistemade ecuaciones lineales por los mtodos anteriormente mencionados.Como losalgoritmosde los mtodos ya estn disponibles en la mayora de loslibrosdetextosobre lamateria, se explicara en la medida de lo posible,detallesde implementacin(personales)de los mtodos directos(que son mas difciles de programar).Ellenguajedeprogramacinidneo para talfinser matlab 6.0SISTEMAS LINEALES DE ECUACIONESAntes de empezar con los detalles de implementacin de los mtodos directos resulta conveniente determinar con que sistemao sistemas vamos atrabajar.Para los mtodos directos se preferir un sistema cuyamatrizdecoeficientes sea simtrica y definida positiva; la razn de tal decisin radica es que con estetipodematricestrabaja elmtododirecto de "Cholesky", adiferenciade Doolittle y Crout.Puesto que se utilizar un W(factor de relajacin) dado :W = (raz cuadrada(5)+1)/2 = 1.61803398874989aprox.No ser necesario tener un sistema tridiagonal para hallar dichovalor.Como consecuencia de lo anteriormente expuesto, se utilizar el mismo sistema para los mtodos directos e iterativos.Una matriz A es simtrica si su transpuesta es igual a A.Es decir: A = [a(i,j)] es simtrica si y solo si [a(i,j)]=[a(j,i)].Una matriz simtrica A es positiva definida si y solo si los eigenvalores(valorespropios) de A son positivos.Toda matriz simtrica se puede descomponer como:A = L*Lt (transpuesta)Para construir de manera fcil la matriz en cuestin, basta con utilizar las siguientes instrucciones en matlab:>>L=tril(ones(10)); %construye L>>A=L*L'; %construye L*Lt>>A%matriz simtricaA =1 1 1 1 1 1 1 1 1 11 2 2 2 2 2 2 2 2 21 2 3 3 3 3 3 3 3 31 2 3 4 4 4 4 4 4 41 2 3 4 5 5 5 5 5 51 2 3 4 5 6 6 6 6 61 2 3 4 5 6 7 7 7 71 2 3 4 5 6 7 8 8 81 2 3 4 5 6 7 8 9 91 2 3 4 5 6 7 8 9 10Si se quiere comprobar que efectivamente se trata de una matriz positiva definida, basta con teclear:>>eig(A)%calculalos valorespropios de AQue obtendr:ans =0.25570.27380.30800.36620.46520.64311.00001.87305.048944.7661Y todos los valores propios de A son positivosPara evitar problemas de convergencia en los mtodos iterativos es necesario que el esquema convergente quede determinado.Para el mtodo de Jacobi basta teclear:>> S=diag(diag(A));%crea la matriz diagonal>> T=S-A;>>B=inv(S)*T;>>eig(B)Que arroja:ans =-6.2572-0.37090.44700.70600.81990.88000.91560.93860.95450.9666Como cadaunode los valores propios es menor que ("