Sei sulla pagina 1di 36

I ntegracion numerica

Metodos adaptativos y de
paso multiple
Contenido
Metodos adaptativos: step halving
Metodos adaptativos embebidos
Metodos multi-step
METODOS ADAPTATI VOS:
STEP HALVI NG
Runge Kutta adaptativos
Usar un paso de
integracion pequeo en
regiones de alto
gradiente (cambio
abrupto)
Ajuste automatico del
tamao del paso
Proposito
Runge Kutta adaptativo
Primera aproximacion: Step halving

Estimar el error local usando dos tamaos 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
4
to
-orden
x
1
estimacion con un paso completo;
x
2
estimacion con dos medios pasos
2 1
2 2
15
x x
x x
A =
A
+
Correccion del error
estimado de 5
th
-orden
Metodo RK4 adaptativo
Asumiendo que x(t) es la solucion exacta, con un
paso completo h


Con dos pasos de h/2



1
( )
h
x t h x c + = +
2 / 2
( )
h
x t h x c + = +
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
h
5
entonces,



Con dos pasos de h/2



5 6
1
( ) ( ) x t h x h O h o + = + +
5
6
2
( ) 2 ( )
2
h
x t h x O h o
| |
+ = + +
|
\ .
Si h pequeo entonces o
es aprox. el mismo
Metodo RK4 adaptativo
Entonces,
5
2 1
2 2 2
2
2 15 15
x x h
x x x x o
A
| |
= + = + = +
|
\ .
5
5 5
2 1 2 1
5
15 16
2 ( )
32 16 15
h
x x h h x x
h
o o o
| |
= = =
|
\ .
Correccion del error estimado de 5
th
-orden
Metodo RK4 adaptativo
El error estimado puede ser usado para ajustar el
tamao del paso, usando unos limites de tolerancia
METODOS ADAPTATI VOS
EMBEBI DOS
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 3
ro
y 4
to
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 )
9
i
x x k k k h
+
= + + +
1 1 2 3 4
1
( 5 6 8 9 )
72
i
k k k k h c
+
= + +
1
2 1
3 2
( , )
1 1
( , )
2 2
3 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 i
k f x t
+ +
=
Notar: k
1
es el mismo k
4
del paso anterior
Metodo RK ODE23
Usa solamente tres evaluaciones de la funcion:
(k
1
, k
2
, k
3
)
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 tamao
del paso y se repite hasta que el error estimado sea
aceptable
max(RelTol , AbsTol) x c s
Metodo RK ODE23
Usa solamente tres evaluaciones de la funcion:
(k
1
, k
2
, k
3
)
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 tamao
del paso y se repite hasta que el error estimado sea
aceptable
max(RelTol , AbsTol) x c s
RelTol: relative tolerance (default = 10
3
)
AbsTol: absolute tolerance (default = 10
6
)
Metodo RK ODE23
Ejemplo: Usar ode23 para resolver la siguiente
ecuacion de t = 0 a 4:
5 0 0 y e 10 y 6 0
dt
dy
2 2
075 0 2 2 t
. ) ( ; .
] ) . ( /[ ) (
= = +

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 = 10
3
(b) RelTol = 10
4
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
h k
1771
512
k
594
125
k
621
250
k
378
37
y y
6 4 3 1 i 1 i
) ( + + + + =
+
h k
4
1
k
14336
277
k
55296
13525
k
48384
18575
k
27648
2825
y y
6 5 4 3 1 i 1 i
) ( + + + + + =
+
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 5
3 3 9
( , )
10 40 40

3 3 9 6
( , )
5 10 10 5
11 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 4096
k 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
k
1
, k
2
, k
3
, k
4
, k
5,
y k
6



( )
h k
1771
512
4
1
h k 0
14336
277
h k
594
125
55296
13525
h k
621
250
48384
18575
h k 0 0 h k
378
37
27648
2825
Error
6 5 4
3 2 1
|
.
|

\
|
+
|
.
|

\
|
+
|
.
|

\
|
+
|
.
|

\
|
+ +
|
.
|

\
|
=
Algoritmo
Calcular y
i+1
usando el metodo RK4
(y
1
)
4th


Calcular y
i+1
usando el metodo RK5
(y
2
)
5th


Calcular el error E = (y
2
)
5th
- (y
1
)
4th


Ajustar el tamao del paso de acuerdo con el error
estimado


Control del step-size
Ajustar el tamao del paso de acuerdo con el
error estimado
Incrementar el tamao si el error es demasiado
pequeo, decrecer si es demasiado grande

Para esquemas de 4to-orden
present
present
0.2 if
;
0.25 if
Desired error value
new
new
new present
new present
new
h h
o
o
A s A

A

= =

A > A A

A
Ajuste del step-size
Para incrementos del step-size (RK4, n = 4)


Para decrementos del step-size, h es implicito en A
new

h
h
present
new
1 n
present
new
A
A
=
|
|
.
|

\
|
+
2 0
present
new
present
1 n
1
present
new
present new
h h h
.
A
A
=
A
A
=
+
Para RK de orden n
25 0
present
new
present
n
1
present
new
present new
h h h
.
A
A
=
A
A
=
Reducir h
new
tambien
reduce A
new
Ejemplo
entrada
solucion
0.5 y(0) e 10 y 6 0
dt
dy
2 2
075 0 2 2 t
= = +

; .
] ) . ( /[ ) (
Step-size pequeo
alrededor de t = 2
Metodo RK-Fehlberg
con control
adaptativo del
tamao del paso
t
t
METODOS MULTI-STEP
Los metodos single-Step
Los metodos Runge-Kutta

-- metodos de un solo paso

-- usan valores intermedios entre t
i
y t
i+1

-- varias evaluaciones de la pendiente por paso


Los metodos multi-step
Los metodos multi-step

Usan valores en t
i
, t
i-1
, t
i-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: b
0
= 0
Metodos implicitos: b
0
= distinto de cero
1 1 2 1 i i i
x a x a x
+
= + +
1 1
1 2 1 1
0
+ [ ( , )
( , ) ( , ) ... ]
i i
i i i i
b h 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 {t
i1
, f[x(i1)]}, y f[t
i
,x(i)]. (m = 1)

( )
}
+1 i
i
x
x
dx x f
| |
i i 1
3
2
h
f 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 -2
23 -16 5
12
i i i i i
h
x x f f f
+
= + +
| |
1 1 2 3
55 59 37 9
24
i i i i i i
h
x x f f f f
+
= + +
Funciones en Matlab
Funcion: ode113
Adams-Bashforth-Moulton solver (order 1-12)
Metodo predictor-corrector

Potrebbero piacerti anche