Métodos numéricos para la resolución de Sistemas de Ecuaciones no Lineales
Contenido Planteamiento del problema Método de Punto Fijo Mé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)
Notación Escalar Vectorial
Resolución iterativa x (0)  estimación inicial de la solución Iteraciones: x (1) , x (2) , …, x (k) Criterio de convergencia | x (k+1)     x (k)  | < tol Criterio de parada k > maxiter
Esquema del algoritmo Entrada:  f, x 0 , tol, maxiter Proceso Inicializar  incr, iter Mientras  incr > tol   &  iter < maxiter Obtener  x incr = norm(x   x 0 ) Actualizar  x 0 , iter Salida:  x, iter, incr Si  incr > tol   no converge
Método de Punto Fijo Punto fijo Estimación inicial Iteraciones  Criterio de parada
Algoritmo de Punto Fijo function [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
Ejemplo Sistema no lineal Problema de Punto Fijo
Punto Fijo con desplazamientos simultáneos Punto Fijo con desplazamientos sucesivos
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;
Ejemplo 1: Desp. simultáneos
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;
Ejemplo 1: Desp. sucesivos
Método de Newton Sistema de ecuaciones Aproximación por el plano tangente Paso de Newton
Algoritmo 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
Método de Newton. Ejemplo 2 Sistema Estimación inicial Primera  iteración
Resultados Newton Ejemplo 2
Método de Newton. Ejemplo 3 Sistema no lineal Jacobiana
Resultados Newton. Ejemplo 3
Variantes de Newton (Ejercicio...) Actualización periódica del Jacobiano Aproximación del Jacobiano por diferencias divididas Newton con desplazamiento unidimensional
Métodos casi-Newton Idea de la secante No usa las derivadas parciales Convergencia superlineal Formulación matricial
Método de Broyden Iterar siendo
Actualización de la inversa
Algoritmo de Broyden  Entrada x 0  ,tol, maxiter  Inicio M: Inversa del Jacobiano en x 0 x 1  = x 0     M*F(x 0 )  incr, iter Iteraciones: k = 1, 2, ... Actualizar M  %  A k-1 -1     A k -1 x k+1  = x k     M*F(x k )
Actualización de M w = v;   % F(x k  1 ) v = F(x); % F del iterado actual y = v   w;   % F(x k )    F(x k  1 ) z =   M*y;   %   A k  1 -1  *  y k p =   s' *z; % (s k  - x k-1 ) T   *  A k  1 -1  *  y k q = s' *M;   % s k   T   *  A k  1 -1  R = (s+z)*q/p;  % Transformación rango 1 M = M+R;   % Inversa nueva:  A k -1  s =   M*v; % Paso de Broyden: s k+1
Algoritmo de Broyden  % Inicio v =   F(x 0 ) M = inv(DF(x 0 )) % Inversa Jacobiano s =    M*v; x = x 0 +s; % Paso de Newton incr = norm(s); 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
Resultados de Broyden. Ejemplo 3
Alternativas al primer paso Estimar el Jacobiano por diferencias divididas Estimación unidimensional del Jacobiano
F i n

Pract_senl

  • 1.
    Métodos numéricos parala resolución de Sistemas de Ecuaciones no Lineales
  • 2.
    Contenido Planteamiento delproblema Método de Punto Fijo Mé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.
  • 4.
    Resolución iterativa x(0) estimación inicial de la solución Iteraciones: x (1) , x (2) , …, x (k) Criterio de convergencia | x (k+1)  x (k) | < tol Criterio de parada k > maxiter
  • 5.
    Esquema del algoritmoEntrada: f, x 0 , tol, maxiter Proceso Inicializar incr, iter Mientras incr > tol & iter < maxiter Obtener x incr = norm(x  x 0 ) Actualizar x 0 , iter Salida: x, iter, incr Si incr > tol no converge
  • 6.
    Método de PuntoFijo Punto fijo Estimación inicial Iteraciones Criterio de parada
  • 7.
    Algoritmo de PuntoFijo function [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 nolineal Problema de Punto Fijo
  • 9.
    Punto Fijo condesplazamientos simultáneos Punto Fijo con desplazamientos sucesivos
  • 10.
    Código de lafunció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 lafunció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.
  • 14.
    Método de NewtonSistema de ecuaciones Aproximación por el plano tangente Paso de Newton
  • 15.
    Algoritmo de Newtonfunction [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 2 Sistema Estimación inicial Primera iteración
  • 17.
  • 18.
    Método de Newton.Ejemplo 3 Sistema no lineal Jacobiana
  • 19.
  • 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 Ideade la secante No usa las derivadas parciales Convergencia superlineal Formulación matricial
  • 22.
    Método de BroydenIterar siendo
  • 23.
  • 24.
    Algoritmo de Broyden Entrada x 0 ,tol, maxiter Inicio M: Inversa del Jacobiano en x 0 x 1 = x 0  M*F(x 0 ) incr, iter Iteraciones: k = 1, 2, ... Actualizar M % A k-1 -1  A k -1 x k+1 = x k  M*F(x k )
  • 25.
    Actualización de Mw = v; % F(x k  1 ) v = F(x); % F del iterado actual y = v  w; % F(x k )  F(x k  1 ) z =  M*y; %  A k  1 -1 * y k p =  s' *z; % (s k - x k-1 ) T * A k  1 -1 * y k q = s' *M; % s k T * A k  1 -1 R = (s+z)*q/p; % Transformación rango 1 M = M+R; % Inversa nueva: A k -1 s =  M*v; % Paso de Broyden: s k+1
  • 26.
    Algoritmo de Broyden % Inicio v = F(x 0 ) M = inv(DF(x 0 )) % Inversa Jacobiano s =  M*v; x = x 0 +s; % Paso de Newton incr = norm(s); 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
  • 27.
  • 28.
    Alternativas al primerpaso Estimar el Jacobiano por diferencias divididas Estimación unidimensional del Jacobiano
  • 29.