Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porLuisa Julio Modificado hace 9 años
1
Métodos numéricos para la resolución de Sistemas de Ecuaciones no Lineales
2
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)
3
Notación Escalar Vectorial
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 algoritmo Entrada: f, x0, tol, maxiter Proceso
Inicializar 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 Iteraciones
Criterio de parada
7
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
8
Ejemplo Sistema no lineal Problema de Punto Fijo
9
Punto Fijo con desplazamientos simultáneos
Punto 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 ecuaciones
Aproximación por el plano tangente Paso de Newton
15
El archivo f.m evalúa la función y el jacobiano
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
16
Método de Newton. Ejemplo 2
Sistema Estimación inicial Primera iteración
17
Resultados Newton Ejemplo 2
18
Método de Newton. Ejemplo 3
Sistema 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 matricial
No 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 actual
y = 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 paso
Estimar el Jacobiano por diferencias divididas Estimación unidimensional del Jacobiano
29
F i n
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.