Los metodos Runge-Kutta Integracion numerica Los metodos Runge-Kutta
Contenido Metodos Runge-Kutta Errores en la estimacion Ejemplos
Metodos Runge-Kutta Carl David Tolmé Runge Martin Wilhelm Kutta (1856-1927) Martin Wilhelm Kutta (1867-1944) Metodos Runge-Kutta
Metodos Runge-Kutta Prediccion de Euler x xi solucion verdadera h t ti ti+1 =txi + h Error por truncado: solucion verdadera
Metodos Runge-Kutta Prediccion de Euler xi+1 x xi fi solucion verdadera h t ti ti+1 =txi + h Los distintos metodos RK difieren en como estiman fi Para Euler (RK de 1er-orden), fi = f(xi, ti)
RK de 2do-orden x xi fi h x ti ti+1 = xi + h Error por truncado: promedio de las pendientes x ti El error es menor que en Euler, pero es necesario llamar a f(x,y) dos veces en cada paso ti+1 = xi + h Error por truncado: solucion verdadera
Algorithmo RK de 2do-orden predictor: corrector:
Metodo de Heun predictor: iteration corrector:
Metodo RK de 4to orden En el metodo RK de 4to orden la estimacion de la pendiente es el promedio pesado de 4 estimados en el intervalo [ti, ti+1]: Uno al principio ( ti ) Dos en la mitad (ti+ h/2), y Uno al final (tn+1 = tn+h)
Metodo RK de 4to orden promedio pesado 4 estimados de la pendiente
Metodo RK de 4to orden k2 k4 k3 k1 ti ti + h/2 ti + h
Error en la estimacion
El proceso de la integracion State vs. Time 5) Next State = Initial Condition + Derivative * Time Step Error 3) Initial Condition 1) Original Data 2) Choose Time Step 4) Evaluate Derivative
Efecto del paso de integracion Four Time Steps Nine Time Steps State vs. Time State vs. Time
ERRORES Local (single-step) Global (multi-step) RK 1st-order 1 O(h2) function evals per step RK 1st-order 1 O(h2) O(h) = O(1/n) 2nd-order 2 O(h3) O(h2) = O(1/n2) 4th-order 4 O(h5) O(h4) = O(1/n4) “error local” para n pasos, “error global” El orden del error global es el orden del error local menos 1
Comparacion entre los metodos RK1 y RK4 RK1 (Euler)- - 1 llamada a la funcion por paso t0 t1 t2 t3 t4 t5 t6 t7 t8 RK4 - - 4 llamadas a la funcion por paso t0 t1 t2 Por ejemplo: integrar de 0 a 4 usando n=400 evaluaciones de la funcion Euler con h = 0.01… error global = O(0.01) RK4 con h = 0.04… error global = O(0.00000256) 104 veces menos error con la misma cantidad de trabajo !!!
Comparacion del metodo de Euler para h = 0.1 con h = 0.05 Haciendo h la mitad, el error tambien se disminuye en la mitad (aproximadamente)
Ejemplos
Ejemplo, RK de 2do-orden solucion exacta: tv=0:0.1:7; xv=exp(-0.5*tv.^2); t=0; x=1; h=0.5; T=t; X=x; tf=6.5; while t<tf; x0=x+(-x*t)*h; x=x+(h/2)*((-x*t) + (-x0*(t+h))); t=t+h; T=[T t]; X=[X x]; end exacta
El algoritmo es inestable porque h es demasiado grande !
Reduciendo h a 0.2 da un algoritmo estable y preciso
Ejemplo, RK de 4to-orden En el intervalo >> tt=0:0.01*pi:pi; xx=example2_f(tt); >> [t,x]=RK4('example2_f',[0 pi],1,0.05*pi);
Ejemplo, RK de 4to-orden
Ejemplo, RK de 4to-orden >> H=plot(t,x,'r-o',tt,xx); >> set(H,'LineWidth',3,'MarkerSize',12);
Fuentes Ferri Al, Numerical Solution to Differential equations, Lecture notes ME2016