integracion numerica metodos adaptativos y de paso multiple
TRANSCRIPT
Integracion numerica
Metodos adaptativos y de paso multiple
Contenido
Metodos adaptativos: step halvingMetodos adaptativos embebidosMetodos multi-step
METODOS ADAPTATIVOS: STEP HALVING
Runge Kutta adaptativos
Usar un paso de integracion pequeño en
regiones de alto gradiente (cambio
abrupto)
Ajuste automatico del tamaño del paso
Proposito
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
Calcular la solucion dos veces usando el metodo RK de 4to-orden
x1 – estimacion con un paso completo;
x2 – estimacion con dos medios pasos
2 1
2 2 15
x x
x x
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
1( ) hx t h x
2 / 2( ) hx t h x
Error con dos pasos de h/2
Error con un paso de h
Metodo RK4 adaptativo
Metodo RK4 adaptativo
Para RK4 el errror por truncado es del orden de h5 entonces,
Con dos pasos de h/2
5 61( ) ( )x t h x h O h
56
2( ) 2 ( )2
hx t h x O h
Si h pequeño entonces a es aprox. el mismo
Metodo RK4 adaptativo
Entonces,
5
2 12 2 22
2 15 15
x xhx x x x
55 5
2 1 2 15
15 162 ( )
32 16 15
hx x h h x x
h
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
Funcion en MATLAB: ODE23
Error estimado
i 1 1 2 3
1(2 3 4 )
9ix x k k k h
1 1 2 3 4
1( 5 6 8 9 )
72i k k k k h
1
2 1
3 2
( , )
1 1 ( , )
2 23 3
( , , )4 4
i i
i i
i i
k f x t
k f x k h t h
k f x k h t h
4 1 1( , )i ik f x t
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
max(RelTol ,AbsTol)x
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
max(RelTol ,AbsTol)x 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:
500y e10y60dt
dy 22 075022t .)(;. ]).(/[)(
function yp = ex21_2(t, y)
% Examplo
yp = 10*exp(-(t-2)*(t-2)/(2*0.075^2)) - 0.6*y;
Ejemplo: ode23>> options = odeset('RelTol',1.e-4);
>> ode23('ex21_2', [0 4], 0.5, options);
>> options = odeset('RelTol',1.e-3);
>> 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
hk1771
512k
594
125k
621
250k
378
37yy 6431i1i )(
hk4
1k
14336
277k
55296
13525k
48384
18575k
27648
2825yy 65431i1i )(
Metodo Runge-Kutta Fehlberg
1
2 1
3 1 2
4 1 2 3
5 1 2 3 4
6 1 2 3
( , )
1 1( , )
5 53 3 9
( , )10 40 40
3 3 9 6( , )
5 10 10 511 5 70 35
( , )54 2 27 27
7 1631 175 575 44275( ,
8 55296 512 13824 11
i i
i i
i i
i i
i i
i i
k f x y
k f x h y k h
k f x h y k h k h
k f x h y k h k h k h
k f x h y k h k h k h k h
k f x h y k h k h k h
4 5
253)
0592 4096k h k h
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
hk1771
512
4
1hk 0
14336
277hk
594
125
55296
13525
hk 621
250
48384
18575hk 00hk
378
37
27648
2825Error
654
321
Algoritmo
Calcular yi+1 usando el metodo RK4
(y1)4th
Calcular yi+1 usando el metodo RK5
(y2)5th
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
present
present
0.2 if ;
0.25 if
Desired error value
newnewnew present
newpresent
new
h h
Ajuste del step-size
Para incrementos del step-size (RK4, n = 4)
Para decrementos del step-size, h es implicito en new
h
h
present
new
1n
present
new
20
present
newpresent
1n
1
present
newpresentnew hhh
.
Para RK de orden n
250
present
newpresent
n
1
present
newpresentnew hhh
.
Reducir hnew tambien
reduce new
Ejemplo
entrada
solucion
0.5y(0) e10y60dt
dy 22 075022t ;. ]).(/[)(
Step-size pequeño alrededor de t = 2
Metodo RK-Fehlberg con control adaptativo del tamaño del paso
t
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
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
1 1 2 1i i ix a x a x
1 1
1 2 1 1
0+ [ ( , )
( , ) ( , ) ... ]i i
i i i i
bh f x y
b f x y b f x y
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)
1i
i
x
x
dxxf i i 1 32
hf f
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
1 -1 -223 -16 512i i i i i
hx x f f f
1 1 2 355 59 37 924i i i i i i
hx x f f f f
Funciones en Matlab
Funcion: ode113
Adams-Bashforth-Moulton solver (order 1-12)
Metodo predictor-corrector