220 likes | 658 Views
Métodos iterativos para sistemas de ecuaciones lineales. Métodos iterativos para sistemas de ecuaciones lineales. Introducción Ecuación del Calor Método de Jacobi Método de Gauss-Seidel Método de Sobrerrelajación Problema del Condensador. DIRECTOS Ax =b x = A b Tamaño moderado
E N D
Métodos iterativos para sistemas de ecuaciones lineales • Introducción • Ecuación del Calor • Método de Jacobi • Método de Gauss-Seidel • Método de Sobrerrelajación • Problema del Condensador
DIRECTOS Ax =b x = A\b Tamaño moderado Modifican la estructura Error de redondeo ITERATIVOS x = Cx + d x(k+1) = Cx(k) + d Tamaño grande Conservan los ceros Error de truncamiento Métodos directos frente a métodos iterativos
Convergencia y número de operaciones • Coste (para matrices densas) Directos: n3 Iterativos: k.n2 • Convergencia • Criterio de parada:
Sistema de ec. lin. Matriz asociada Ecuación del Calor T0T1 T2 . . . Tn Tn+1
Matriz de la Ecuación del Calor con MATLAB function A = mcalor1(n) v = ones(1,n-1); A = 2*eye(n) - diag(v,1) - diag(v,-1);
El método de Jacobi • Sistema de ecuaciones lineales
Expresión matricialResolución con MATLAB • U = triu(A,1);L = tril(A,-1); • d = diag(A); • x = (b-(L+U)*x)./d
Condición suficiente de convergencia • Matriz estrictamente diagonalmente dominante: para i=1,2,...,n • Si A es estrictamente diagonalmente dominante, los iterados de Jacobi convergen a la solución del sistema partiendo de cualquier estimación inicial.
Expresión matricialResolución con MATLAB • d = diag(A); D = diag(d); • U = triu(A,1); L = tril(A,-1); • x = (L + D)\(b - U*x)
ik+1 Método de sobrerrelajación xik zi xik+1
Expresión matricialResolución con MATLAB • D = diag(diag(A)); • c = w*b; C = (1-w)*D - w*U • x = (wL + D)\(c + C*x)
Condición suficiente de convergencia • Matriz simétrica definida positiva: AT = A, xTAx > 0 • Si A es simétrica definida positiva y 0<w<2, los iterados de SR convergen a la única solución del sistema, partiendo de cualquier estimación inicial.
Ecuación del Calor en un rectángulo • VC = (VN + VS + VE + VW)/4 N C W E S
Generación de la matriz con MATLAB function A = mcalor2(m,n) p = m*n; v = ones(1,p-1); for k=n:n:p-1, v(k) = 0; end w = ones(1,p-n); A = 4*eye(p) ... - diag(v,1) - diag(v,-1) ... - diag(w,n) - diag(w,-n);
Resumen • Los métodos iterativos se aplican a matrices grandes y dispersas. • El coste por iteración es O(n2) o menor si se aprovecha la dispersidad • Se espera que converjan en menos de n pasos. • La matriz ha de cumplir ciertas condiciones para que el método converja.