Metodos adaptativos y de paso multiple Integracion numerica Metodos adaptativos y de paso multiple
Contenido Metodos adaptativos: step halving Metodos adaptativos embebidos Metodos multi-step
Metodos adaptativos: step halving
Runge Kutta adaptativos Proposito Usar un paso de integracion pequeño en regiones de alto gradiente (cambio abrupto) Ajuste automatico del tamaño del paso
Runge Kutta adaptativo Primera aproximacion: Step halving Estimar el error local usando dos tamaños de paso diferentes Resolver dos veces cada paso: una vez con un paso completo y luego con dos ½ pasos
Metodo Step Halving x1 – estimacion con un paso completo; Calcular la solucion dos veces usando el metodo RK de 4to-orden x1 – estimacion con un paso completo; x2 – estimacion con dos medios pasos Correccion del error estimado de 5th-orden
Metodo RK4 adaptativo Asumiendo que x(t) es la solucion exacta, con un paso completo h Con dos pasos de h/2 Error con un paso de h Error con dos pasos de h/2
Metodo RK4 adaptativo
Metodo RK4 adaptativo Para RK4 el errror por truncado es del orden de h5 entonces, Con dos pasos de h/2 Si h pequeño entonces a es aprox. el mismo
Metodo RK4 adaptativo Entonces, Correccion del error estimado de 5th-orden
Metodo RK4 adaptativo El error estimado puede ser usado para ajustar el tamaño del paso, usando unos limites de tolerancia
Metodos adaptativos embebidos
Runge Kutta adaptativos Segunda aproximacion: RK embebidos (tambien llamados metodos RK-Fehlberg) Estimar el error por truncado usando metodos Runge-Kutta de orden diferente
Metodo RK ODE23 Funcion en MATLAB : ODE23 Algoritmo BS23 (Bogacki and Shampine, 1989; Shampine, 1994) Usa simultaneamente los metodos RK de 3ro y 4to orden para resolver la ODE y estimar el error para el ajuste del paso de integracion (step-size)
Metodo RK ODE23 Notar: k1 es el mismo k4 del paso anterior Funcion en MATLAB: ODE23 Error estimado Notar: k1 es el mismo k4 del paso anterior
Metodo RK ODE23 Usa solamente tres evaluaciones de la funcion: (k1, k2, k3) Despues de cada paso se chequea el error para determinar si esta dentro de la tolerancia deseada Si el error es demasiado grande, se reduce el tamaño del paso y se repite hasta que el error estimado sea aceptable
Metodo RK ODE23 Usa solamente tres evaluaciones de la funcion: (k1, k2, k3) Despues de cada paso se chequea el error para determinar si esta dentro de la tolerancia deseada Si el error es demasiado grande, se reduce el tamaño del paso y se repite hasta que el error estimado sea aceptable RelTol: relative tolerance (default = 103) AbsTol: absolute tolerance (default = 106)
Metodo RK ODE23 Ejemplo: Usar ode23 para resolver la siguiente ecuacion de t = 0 a 4: function yp = ex21_2(t, y) % Examplo yp = 10*exp(-(t-2)*(t-2)/(2*0.075^2)) - 0.6*y;
(a) RelTol = 103 (b) RelTol = 104 Ejemplo: ode23 >> options = odeset('RelTol',1.e-3); >> ode23('ex21_2', [0 4], 0.5, options); >> options = odeset('RelTol',1.e-4); >> ode23('ex21_2', [0 4], 0.5, options); (a) RelTol = 103 (b) RelTol = 104
Funciones en Matlab Funcion: ode45 Dormand and Prince (1990) Utiliza formulas de RK4 y RK5
Metodo Runge-Kutta Fehlberg Se usan RK de 4to oden RK de 5to orden
Metodo Runge-Kutta Fehlberg Coeficientes desarrollados por Cash y Karp (1990). Llamado tambien metodo RK Cash-Karp
Metodo Runge-Kutta Fehlberg Error estimado: Se usan los metodos RK4 y RK5 para estimar el error local Para ambos metodos se usan los mismos coeficientes k1, k2, k3, k4, k5, y k6
Algoritmo Calcular yi+1 usando el metodo RK4 (y1)4th Calcular el error E = (y2)5th - (y1)4th Ajustar el tamaño del paso de acuerdo con el error estimado
Control del step-size Ajustar el tamaño del paso de acuerdo con el error estimado Incrementar el tamaño si el error es demasiado pequeño, decrecer si es demasiado grande Para esquemas de 4to-orden
Ajuste del step-size Para incrementos del step-size (RK4, n = 4) Para RK de orden n Para incrementos del step-size (RK4, n = 4) Para decrementos del step-size, h es implicito en new Reducir hnew tambien reduce new
Ejemplo entrada Metodo RK-Fehlberg con control adaptativo del tamaño del paso t Step-size pequeño alrededor de t = 2 solucion t
Metodos multi-step
Los metodos single-Step Los metodos Runge-Kutta -- metodos de un solo paso -- usan valores intermedios entre ti y ti+1 -- varias evaluaciones de la pendiente por paso
Los metodos multi-step Usan valores en ti , ti-1 , ti-2 etc, para construir un polinomio que aproxime a la funcion derivada -- solo una evaluacion de la derivada por paso
Los metodos multi-step One-step Multistep
Los metodos multi-step
Los metodos multi-step Metodos explicitos: b0 = 0 Metodos implicitos: b0 = distinto de cero
Caso: polinomio de orden 1 Supongamos que el polinomio es una funcion lineal que pasa por {ti1, f[x(i1)]}, y f[ti,x(i)]. (m = 1) Conocido como metodo Adams-Bashforth de dos pasos (AB-2)
Metodo de Adams-Bashforth Metodo de Adams-Bashforth de tres pasos Metodo de Adams-Bashforth de cuatro pasos
Funciones en Matlab Funcion: ode113 Adams-Bashforth-Moulton solver (order 1-12) Metodo predictor-corrector