Contenido Planteamiento del problema Método de Punto Fijo

1 Métodos numéricos para la resolución de Sistemas de Ecu...
Author: Luisa Julio
0 downloads 2 Views

1 Métodos numéricos para la resolución de Sistemas de Ecuaciones no Lineales

2 Contenido Planteamiento del problema Método de Punto FijoMétodo de Newton Variantes del método de Newton Evaluación diferida del jacobiano Aproximación por diferencias finitas Newton unidimensional Métodos cuasi-Newton (Broyden)

3 Notación Escalar Vectorial

4 Resolución iterativa x(0) estimación inicial de la soluciónIteraciones: x(1), x(2), …, x(k) Criterio de convergencia | x(k+1) - x(k) | < tol Criterio de parada k > maxiter

5 Esquema del algoritmo Entrada: f, x0, tol, maxiter ProcesoInicializar incr, iter Mientras incr > tol & iter < maxiter Obtener x incr = norm(x - x0) Actualizar x0, iter Salida: x, iter, incr Si incr > tol no converge

6 Método de Punto Fijo Punto fijo Estimación inicial IteracionesCriterio de parada

7 Algoritmo de Punto Fijofunction [x,iter,incr] = pfijo(g,x0,tol, maxiter) iter = 0; incr = tol + 1; while incr > tol & iter < maxiter x = feval(g,x0); incr = norm(x - x0); iter = iter + 1; x0 = x; end if incr > tol, disp(‘No converge’), end

8 Ejemplo Sistema no lineal Problema de Punto Fijo

9 Punto Fijo con desplazamientos simultáneosPunto Fijo con desplazamientos sucesivos

10 Código de la función function y=f(x) % Función para el método de punto% fijo con desplazamientos simultáneos y(1) = cos(x(2)*x(3))/3 + 1/6; y(2) = sqrt(x(1)^2+sin(x(3))+1.06)/9-0.1; y(3) = (1-exp(-x(1)*x(2)))/20 - pi/6;

11 Ejemplo 1: Desp. simultáneos

12 Código de la función function y=f(x) % Función para el método de punto% fijo con desplazamientos sucesivos y(1) = cos(x(2)*x(3))/3 + 1/6; y(2) = sqrt(y(1)^2+sin(x(3))+1.06)/9-0.1; y(3) = (1-exp(-y(1)*y(2)))/20 - pi/6;

13 Ejemplo 1: Desp. sucesivos

14 Método de Newton Sistema de ecuacionesAproximación por el plano tangente Paso de Newton

15 El archivo f.m evalúa la función y el jacobianoAlgoritmo de Newton function [x,iter,incr] = newton(f,x,tol, maxiter) iter = 0; incr = tol+1; while incr > tol & iter < maxiter [fx,dfx] = feval(f,x); delta = - dfx \ fx; incr = norm(delta); iter = iter+1; x = x + delta; end if incr>tol, disp(‘No converge’), end El archivo f.m evalúa la función y el jacobiano

16 Método de Newton. Ejemplo 2Sistema Estimación inicial Primera iteración

17 Resultados Newton Ejemplo 2

18 Método de Newton. Ejemplo 3Sistema no lineal Jacobiana

19 Resultados Newton. Ejemplo 3

20 Variantes de Newton (Ejercicio...)Actualización periódica del Jacobiano Aproximación del Jacobiano por diferencias divididas Newton con desplazamiento unidimensional

21 Métodos casi-Newton Idea de la secante Formulación matricialNo usa las derivadas parciales Convergencia superlineal Formulación matricial

22 Método de Broyden Iterar siendo

23 Actualización de la inversa

24 Algoritmo de Broyden Entrada Inicio Iteraciones: k = 1, 2, ...x0 ,tol, maxiter Inicio M: Inversa del Jacobiano en x0 x1 = x0 - M*F(x0) incr, iter Iteraciones: k = 1, 2, ... Actualizar M % Ak-1-1  Ak-1 xk+1 = xk - M*F(xk)

25 Actualización de M w = v; % F(xk-1) v = F(x); % F del iterado actualy = v - w; % F(xk) - F(xk-1) z = - M*y; % - Ak-1-1 * yk p = - s' *z; % (sk - xk-1)T * Ak-1-1 * yk q = s' *M; % sk T * Ak-1-1 R = (s+z)*q/p; % Transformación rango 1 M = M+R; % Inversa nueva: Ak-1 s = - M*v; % Paso de Broyden: sk+1

26 Algoritmo de Broyden while incr > tol w = v; % F(x(k-1)) v = F(x);y = v-w; % F(x(k)) - F(x(k-1)) z = - M*y; % -inv(A(k-1))*y(k) p = - s' *z; q = s' *M; % s(k)'*inv(A(k-1) R = (s+z)*q/p; M = M+R; % inversa de A(k) s = - M*v; x = x+s; % Paso de Broyden incr = norm(s); end % Inicio v = F(x0) M = inv(DF(x0)) % Inversa Jacobiano s = - M*v; x = x0+s; % Paso de Newton incr = norm(s);

27 Resultados de Broyden. Ejemplo 3

28 Alternativas al primer pasoEstimar el Jacobiano por diferencias divididas Estimación unidimensional del Jacobiano

29 F i n