You are on page 1of 30

MATEM

MATEM

TICA SUPERIOR
TICA SUPERIOR
APLICADA
APLICADA

Utilizaci
Utilizaci

n de
n de
Resolvedores
Resolvedores

de MATLAB
de MATLAB

para
para

Ecuaciones Diferenciales Ordinarias
Ecuaciones Diferenciales Ordinarias
Universidad Tecnol Universidad Tecnol gica Nacional gica Nacional

Facultad Regional Rosario Facultad Regional Rosario
Dr. Alejandro S. M. Santa Cruz Dr. Alejandro S. M. Santa Cruz
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
2 2
Solvers
Solvers

de MATLAB (I)
de MATLAB (I)


Los
Los
solvers
solvers

para
para
EDOs
EDOs

de MATLAB se han escrito para
de MATLAB se han escrito para
resolver problemas de la forma:
resolver problemas de la forma:
o, en forma compacta:
o, en forma compacta:
( ) ( )
( ) ( )
( ) ( )
1
1 1 1 2 n
2
2 2 1 2 n
n
n n 1 2 n
dx
x' t f t , x , x , ..., x
dt
dx
x' t f t , x , x , ..., x
dt
dx
x' t f t , x , x , ..., x
dt
= =
= =
= =

( ) ( )
1 2 n
d x
f t , x , x , ...,x f t , x
dt
= =
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
3 3
f
Nombre de odefile archivo que describe la ecuacin diferen-
cial a resolver.
tspan
Vector que especifica el intervalo de integracin [t0 tfinal].
Para obtener soluciones en tiempos especficos se usa:
tspan = [t0,t1, ..., tfinal].
X0 Vector que describe las condiciones iniciales
options
Argumento opcional de integracin creado usando la funcin
odeset.
T,X
Matriz solucin X, donde cada columna corresponde al tiem-
po retornado en el vector columna T.
P1, P2, P3, Parmetros adicionales que sern pasados a @f


Se accede a los
Se accede a los
solvers
solvers

de MATLAB mediante el llamado de
de MATLAB mediante el llamado de
funciones (
funciones (
functions
functions
) del tipo:
) del tipo:
[T,X] = ode**(@f, timespan, X0, options, P1, P2, P3)
Opcional Opcional
Solvers
Solvers

de MATLAB (II)
de MATLAB (II)
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
4 4
Sintaxis:
Sintaxis:


options
options

=
=
odeset
odeset
(
(

name1
name1

,value1,
,value1,

name2
name2

,value2,...):
,value2,...):
Crea una
Crea una
estructura en la opciones de integraci
estructura en la opciones de integraci

n donde
n donde
name1
name1
,
,
name2
name2
representan los nombres de las propiedades seguidos de los
representan los nombres de las propiedades seguidos de los
valores a especificar. La propiedades no especificadas se
valores a especificar. La propiedades no especificadas se
establecen con la matriz vac
establecen con la matriz vac

a
a
[ ]
[ ]
.
.


odeset
odeset
:
:
Escribiendo esta sentencia en la l
Escribiendo esta sentencia en la l

nea de comandos de
nea de comandos de
MATLAB, se muestran en pantalla todas las propiedades y
MATLAB, se muestran en pantalla todas las propiedades y
sus posibles valores. Las propiedades disponibles dependen
sus posibles valores. Las propiedades disponibles dependen
del m
del m

todo de resoluci
todo de resoluci

n. Algunas propiedades importantes


n. Algunas propiedades importantes
se detallan a continuaci
se detallan a continuaci

n:
n:
Solvers
Solvers

de MATLAB (III)
de MATLAB (III)
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
5 5
Solvers
Solvers

de MATLAB (IV)
de MATLAB (IV)
Propiedad Valor Descripcin
RelTol Escalar positivo (1e-3)
Establece la tolerancia de error relativo que
se aplica a todos las componentes del vector
solucin.
AbsTol Escalar positivo (1e-6) Tolerancia de error absoluto.
Refine Entero positivo
Incrementa el nmero de puntos de salida
por un factor de n. El valor por defecto es 1
salvo cuando se utiliza ode45 donde Refine
es 4.
MaxStep Escalar positivo
Establece el lmite superior en la magnitud
del tamao de paso utilizado.
InitialStep Escalar positivo
Establece el tamao de paso inicial. Si es
demasiado grande y afecta el error cometi-
do, el programa usa un tamao de paso ms
pequeo.

23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
6 6


La
La
function
function

f
f
debe tener la siguiente forma:
debe tener la siguiente forma:
CUIDADO!
CUIDADO!
ESTA ES UNA SINTAXIS LIGERAMENTE DIFERENTE A
ESTA ES UNA SINTAXIS LIGERAMENTE DIFERENTE A
AQUELLA UTILIZADA EN LOS SOLVERS QUE
AQUELLA UTILIZADA EN LOS SOLVERS QUE
IMPLEMENTAN EL M
IMPLEMENTAN EL M

TODO DE EULER COMO VIMOS


TODO DE EULER COMO VIMOS
EN LAS PRESENTACIONES PREVIAS.
EN LAS PRESENTACIONES PREVIAS.
Solvers
Solvers

de MATLAB (V)
de MATLAB (V)
function [dx_dt] = f(t, x, P1, P2, P3...)
dx_dt = ......
return
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
7 7
Sentencia
Tipo
de
mtodo
Tipo
de
problema
Orden
de
exactitud
Cuando se usa
ode45 Explcito No stiff
4to. Orden;
exactitud me-
dia
En general, ode45 es el mejor mtodo
para aplicar como primer intento para la
resolucin de muchos problemas.
ode23 Explcito No stiff
2do./3er. Or-
den; exactitud
baja
Ante bajas tolerancias de error o resolu-
cin de problemas moderadamente stiff.
ode113 Explcito No stiff
13er. Orden;
Baja a alta
Ante tolerancias estrictas de error y en la
resolucin de un archivo odefile compu-
tacionalmente intenso.
ode15s Implcito Stiff
De 1er. a 5to.
Orden; exacti-
tud baja a
media
Si ode45 es lento (sistema stiff).
ode23s Implcito Stiff
Baja exacti-
tud, pero
puede ser ms
estable que
ode15s

ode23tb Implcito Stiff
Baja exacti-
tud, pero
puede ser ms
estable que
ode15s


23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
8 8
Algoritmos Utilizados (I)
Algoritmos Utilizados (I)
Var
Var

an de acuerdo al orden de exactitud y al tipo de sistema


an de acuerdo al orden de exactitud y al tipo de sistema
(
(
stiff
stiff

o no
o no
stiff
stiff
).
).


ode45: ode45: Se basa en una f Se basa en una f rmula expl rmula expl cita del m cita del m todo de Runge todo de Runge- -Kutta Kutta

(4,5), realizado por (4,5), realizado por Dormand Dormand- -Prince. Es un m Prince. Es un m todo de un solo paso, todo de un solo paso,
esto es, para determinar esto es, para determinar x x(t (t
i i+1 +1
) ), es necesario conocer solamente la , es necesario conocer solamente la
soluci soluci n en el tiempo inmediatamente anterior, n en el tiempo inmediatamente anterior, x x(t (t
i i
) ). .


ode23: ode23: Es una implementaci Es una implementaci n del m n del m todo expl todo expl cito de cito de Runke Runke- -Kutta Kutta

(2,3) realizado por (2,3) realizado por Bogacki Bogacki

y y Shampine Shampine. Puede ser m . Puede ser m s eficiente que s eficiente que
ode45 para tolerancias de error bajas y en presencia de problema ode45 para tolerancias de error bajas y en presencia de problemas s
stiff stiff

moderados. moderados.


ode113: ode113: M M todo de orden variable indicado por todo de orden variable indicado por Adams Adams- -Bashforth Bashforth- -

Moulton. Es un m Moulton. Es un m todo de todo de multipaso multipaso; normalmente necesita la ; normalmente necesita la
soluci soluci n de diversos puntos precedentes para computar la soluci n de diversos puntos precedentes para computar la soluci n n
actual. actual.
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
9 9
Algoritmos Utilizados (II)
Algoritmos Utilizados (II)
Los algoritmos anteriores se destinan para resolver sistemas no
Los algoritmos anteriores se destinan para resolver sistemas no
stiff
stiff
. Si ellos aparecen excesivamente lentos, se utilizan otros
. Si ellos aparecen excesivamente lentos, se utilizan otros
m
m

todos como ser:


todos como ser:


ode15s: ode15s:

Es un m Es un m todo de orden variable basado en la f todo de orden variable basado en la f rmula de rmula de
diferenciaci diferenciaci n num n num rica rica NDFs NDFs. Opcionalmente, usa la f . Opcionalmente, usa la f rmula de rmula de
diferencias hacia atr diferencias hacia atr s, s, BDFs BDFs

( (backward backward

differentiation differentiation

formula), formula),
tambi tambi n conocida como m n conocida como m todo de todo de Gear Gear. .


ode23s: ode23s: Se basa en Se basa en

una f una f rmula modificada de rmula modificada de Rosenbrock Rosenbrock

de orden de orden

2. Dado que es un solver de paso simple puede ser m 2. Dado que es un solver de paso simple puede ser m s eficiente que la s eficiente que la
ode15s para tolerancias m ode15s para tolerancias m s altas. Puede resolver algunos tipos de s altas. Puede resolver algunos tipos de
problemas problemas stiff stiff

para los cuales la ode15s no es efectiva. para los cuales la ode15s no es efectiva.


ode23t: ode23t: Implementa la regla del trapecio utilizando una Implementa la regla del trapecio utilizando una interpolaci interpolaci n n
libre libre. . Utilizar este solver si el problema es solo moderadamente Utilizar este solver si el problema es solo moderadamente stiff stiff

y y
se requiere una soluci se requiere una soluci n sin amortiguamiento num n sin amortiguamiento num rico. rico.
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
10 10
Algoritmos Utilizados (III)
Algoritmos Utilizados (III)


ode23tb:
ode23tb:

Es una implementaci
Es una implementaci

n de la f
n de la f

rmula TR
rmula TR
-
-
BDF2,
BDF2,
f
f

rmula impl
rmula impl

cita de Runge
cita de Runge
-
-
Kutta
Kutta

con una primera etapa
con una primera etapa
que es una regla trapezoidal y una segunda etapa que es
que es una regla trapezoidal y una segunda etapa que es
una f
una f

rmula de diferenciaci
rmula de diferenciaci

n hacia atr
n hacia atr

s de orden 2. Por
s de orden 2. Por
construcci
construcci

n, se utiliza la misma matriz de iteraci


n, se utiliza la misma matriz de iteraci

n en la
n en la
evaluaci
evaluaci

n de ambas etapas. Como en la ode23s, este solver


n de ambas etapas. Como en la ode23s, este solver
puede ser m
puede ser m

s eficiente que la ode15s para tolerancias m


s eficiente que la ode15s para tolerancias m

s
s
altas.
altas.
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
11 11
Consideraciones sobre los
Consideraciones sobre los
Algoritmos Utilizados (I)
Algoritmos Utilizados (I)


Para un problema
Para un problema
stiff
stiff

las soluciones pueden cambiar
las soluciones pueden cambiar
sobre una escala de tiempo que es muy corta comparada
sobre una escala de tiempo que es muy corta comparada
con el intervalo de integraci
con el intervalo de integraci

n, pero la soluci
n, pero la soluci

n de inter
n de inter

s
s
cambia sobre escalas de tiempo mucho m
cambia sobre escalas de tiempo mucho m

s largas.
s largas.


Los m
Los m

todos no dise
todos no dise

ados para problemas


ados para problemas
stiff
stiff

son
son
ineficientes sobre intervalos donde la soluci
ineficientes sobre intervalos donde la soluci

n cambia
n cambia
lentamente debido a que usan pasos temporales
lentamente debido a que usan pasos temporales
suficientemente peque
suficientemente peque

os como para resolver el cambio


os como para resolver el cambio
m
m

s r
s r

pido posible.
pido posible.


Las
Las
ode15s
ode15s

y
y
ode23s
ode23s

generan num
generan num

ricamente las matrices


ricamente las matrices
Jacobianas
Jacobianas
.
.
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
12 12


En mayor medida utilizaremos las
En mayor medida utilizaremos las
ode45
ode45
y
y
ode15s
ode15s
(la 's'
(la 's'
significa que utiliza un m
significa que utiliza un m

todo impl
todo impl

cito).
cito).


Por lo general, los
Por lo general, los
solvers
solvers

de MATLAB ser
de MATLAB ser

n mejores de
n mejores de
los que podr
los que podr

a programar Ud. mismo.


a programar Ud. mismo.


Son capaces de estimar el error en la soluci
Son capaces de estimar el error en la soluci

n en cada
n en cada
etapa temporal y decidir si el paso es demasiado grande
etapa temporal y decidir si el paso es demasiado grande
(error alto) o demasiado peque
(error alto) o demasiado peque

o (ineficiente).
o (ineficiente).


Es m
Es m

s importante que Ud. entienda conceptos tales como


s importante que Ud. entienda conceptos tales como
esquemas impl
esquemas impl

citos, esquemas expl


citos, esquemas expl

citos
citos
y
y
orden de
orden de
exactitud del algoritmo
exactitud del algoritmo
en lugar de saber exactamente que
en lugar de saber exactamente que
hace internamente la rutina de c
hace internamente la rutina de c

lculo.
lculo.
Consideraciones sobre los
Consideraciones sobre los
Algoritmos Utilizados (II)
Algoritmos Utilizados (II)
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
13 13


ode45
ode45

(m
(m

todo expl
todo expl

cito de Runge
cito de Runge
-
-
Kutta
Kutta
) es eficiente, pero
) es eficiente, pero
se vuelve inestable con sistemas
se vuelve inestable con sistemas
stiff
stiff
. Este hecho se
. Este hecho se
manifestar
manifestar


con el solver tratando de adoptar pasos
con el solver tratando de adoptar pasos
temporales cada vez m
temporales cada vez m

s cortos para compensar.


s cortos para compensar.
Consecuentemente, al algoritmo le tomar
Consecuentemente, al algoritmo le tomar


mucho tiempo
mucho tiempo
alcanzar la soluci
alcanzar la soluci

n o el paso temporal se reducir


n o el paso temporal se reducir


al
al
punto donde la precisi
punto donde la precisi

n de la m
n de la m

quina provoque la falla


quina provoque la falla
del algoritmo.
del algoritmo.


ode15s
ode15s

deber
deber

a utilizarse s
a utilizarse s

lo para problemas
lo para problemas
stiff
stiff
. Debido
. Debido
a que es un esquema impl
a que es un esquema impl

cito, tendr
cito, tendr


que resolver
que resolver

conjuntos de ecuaciones (posiblemente grande) en cada
conjuntos de ecuaciones (posiblemente grande) en cada
paso temporal.
paso temporal.
Consideraciones sobre los
Consideraciones sobre los
Algoritmos Utilizados (III)
Algoritmos Utilizados (III)
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
14 14
Utilizaci
Utilizaci

n de
n de
Solvers
Solvers

de MATLAB
de MATLAB

Ejemplo 01
Ejemplo 01
Utilizar la
Utilizar la
ode45
ode45

para resolver el siguiente sistema acoplado
para resolver el siguiente sistema acoplado
de
de
EDOs
EDOs

:
:
1 1
2 2
x x 1 1
d
x x dt 1 2

( ( (
=
( ( (



1
2
x 1
x 1
( (
=
( (

Condiciones iniciales
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
15 15
Archivo de Comandos de MATLAB:
Archivo de Comandos de MATLAB:
Ejemplo_01_ode45.m:
Ejemplo_01_ode45.m:
Archivo de comandos que
Archivo de comandos que
llama al solver
llama al solver

ode45.m
ode45.m
.
.
Funci
Funci

n:
n:
TestFunction.m
TestFunction.m
:
:
Funci
Funci

n que implementa en forma


n que implementa en forma
matricial las derivadas del sistema de
matricial las derivadas del sistema de
EDOs
EDOs
.
.
Ejemplo 01
Ejemplo 01
23/11/2009 16
Archivo de Comandos
clear all
clc
% Example 01
% A simple example to solve ODE's
% Uses ode45 to solve
% dx_dt(1) =-1*x(1)-1*x(2)
% dx_dt(2) =1*x(1) -2*x(2)
% set an error
options=odeset('RelTol',1e-6);
% initial conditions
Xo =[1;1];
%timespan
tspan=[0,5];
%call the solver
[t,X] =ode45(@TestFunction,tspan,Xo,options);
%plot the results
figure
hold on
plot(t,X(:,1));plot(t,X(:,2),'r:')
legend('x1','x2');
ylabel('x');
xlabel('t')
23/11/2009 17
Funcin
function[dx_dt]= TestFunction(t,x)
%A function which returns a rate of change vector
M = [-1 -1; 1 -2];
dx_dt = M*x;
return
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
18 18
Gr
Gr

fica de la Soluci
fica de la Soluci

n
n
Solucin del sistema de EDOs generada por ode45.
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
19 19
Consideraciones Acerca del Uso
Consideraciones Acerca del Uso
del Solver
del Solver
ode45
ode45


No hemos especificado un tama No hemos especificado un tama o de paso. o de paso. ode45 ode45

utiliza el m utiliza el m todo de todo de
Runge Runge- -Kutta Kutta- -Fehlberg Fehlberg

de 4to.orden (expl de 4to.orden (expl cito), que adem cito), que adem s nos provee s nos provee
una estimaci una estimaci n del error de truncamiento en cada paso. n del error de truncamiento en cada paso. EL SOLVER EL SOLVER
ES CAPAZ DE ELEGIR EL TAMA ES CAPAZ DE ELEGIR EL TAMA O DE PASO QUE REQUIERE O DE PASO QUE REQUIERE
LA TOLERANCIA DEL ERROR QUE HEMOS ESPECIFICADO LA TOLERANCIA DEL ERROR QUE HEMOS ESPECIFICADO. .


Todos los Todos los solvers solvers

de de Matlab Matlab

modificar modificar n el tama n el tama o del paso para o del paso para
generar una soluci generar una soluci n que sea exacta para una determinada tolerancia n que sea exacta para una determinada tolerancia
del error. Ud. puede pasar por alto este aspecto fijando un tama del error. Ud. puede pasar por alto este aspecto fijando un tama o de o de
paso m paso m ximo (que puede forzar al solver a adoptar un paso demasiado ximo (que puede forzar al solver a adoptar un paso demasiado
peque peque o). Es mejor dejar que el solver elija el tama o). Es mejor dejar que el solver elija el tama o del paso y o del paso y
utilizar la opci utilizar la opci n n

refine refine. . Refine Refine suaviza la soluci suaviza la soluci n interpolando entre n interpolando entre
puntos. puntos.


Las opciones se establecen creando una estructura de opciones co Las opciones se establecen creando una estructura de opciones con el n el
comando comando odeset odeset. .
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
20 20
Utilizaci
Utilizaci

n de
n de
Solvers
Solvers

de MATLAB
de MATLAB

Ejemplo 02
Ejemplo 02
Resolver el siguiente sistema acoplado de
Resolver el siguiente sistema acoplado de
EDOs
EDOs

:
:
Los autovalores de la matriz son:
Los autovalores de la matriz son:
1 1
2 2
x x 1 1
d
x x dt 1 5000

( ( (
=
( ( (


1
2
x 1
x 1
( (
=
( (

Condiciones iniciales
1
2
5000
1.002

=
=


Problema Stiff!!
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
21 21
Utilizaci
Utilizaci

n de
n de
Solvers
Solvers

de MATLAB
de MATLAB

Ejemplo 02
Ejemplo 02


Un problema
Un problema
stiff
stiff

consiste de diferentes procesos de los
consiste de diferentes procesos de los
cuales al menos uno de ellos tendr
cuales al menos uno de ellos tendr


una constante de
una constante de
tiempo muy peque
tiempo muy peque

a.
a.


En primer lugar utilizamos la
En primer lugar utilizamos la
ode45
ode45

para resolver el
para resolver el
sistema acoplado de
sistema acoplado de
EDOs
EDOs
.
.


El c
El c

digo para resolver este sistema se muestra a


digo para resolver este sistema se muestra a
continuaci
continuaci

n.
n.
23/11/2009 22
clear all
clc
%Example02: Stiff Problem
% A simple exampletosolveODE's
% Uses ODE45 tosolve
% dx_dt(1) =-1*x(1)-1*x(2)
% dx_dt(2) =1*x(1) -5000*x(2)
%set anerror
options=odeset('RelTol',1e-6,'Stats','on');
%initial conditions
Xo=[1;1];
%timespan
tspan=[0,5];
%call thesolver
tic
[t,X] =ode45(@TestFunction,tspan,Xo,options);
toc
%plot theresults
figure;holdon
plot(t,X(:,1));plot(t,X(:,2),':')
legend('x1','x2'); ylabel('x');xlabel('t')
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
23 23


Los
Los
stats
stats

informados por la soluci
informados por la soluci

n son:
n son:


7557
7557
successful
successful

steps
steps


504
504
failed
failed

attempts
attempts


48367
48367
function
function

evaluations
evaluations


Elapsed
Elapsed

time
time
is
is

3.797000
3.797000
seconds
seconds
.
.


El solver ha sido forzado a adoptar un paso
El solver ha sido forzado a adoptar un paso
temporal muy peque
temporal muy peque

o para generar una soluci


o para generar una soluci

n
n
estable.
estable.
Utilizaci
Utilizaci

n de
n de
Solvers
Solvers

de MATLAB
de MATLAB

Ejemplo 02
Ejemplo 02
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
24 24
Gr
Gr

fica de la Soluci
fica de la Soluci

n
n
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
25 25


La opci
La opci

n
n
'
'
stats
stats
'
'

ha sido activada. El solver
ha sido activada. El solver
mostrar
mostrar


por pantalla informaci
por pantalla informaci

n acerca de
n acerca de
c
c

mo ha realizado el c
mo ha realizado el c

lculo.
lculo.


La ejecuci
La ejecuci

n del c
n del c

digo demanda un tiempo


digo demanda un tiempo
relativamente largo.
relativamente largo.


Los comandos
Los comandos

tic
tic


y
y

toc
toc


que preceden y suceden
que preceden y suceden
respectivamente al llamado de la
respectivamente al llamado de la
ode45
ode45
, estiman y
, estiman y
muestran el tiempo que le demand
muestran el tiempo que le demand


al solver
al solver
alcanzar el resultado final.
alcanzar el resultado final.
Utilizaci
Utilizaci

n de
n de
Solvers
Solvers

de MATLAB
de MATLAB

Ejemplo 02
Ejemplo 02
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
26 26


Si en lugar utilizamos la
Si en lugar utilizamos la
ode15s
ode15s
, debemos cambiar la
, debemos cambiar la
l
l

nea donde se llama al solver de la edo, as


nea donde se llama al solver de la edo, as

:
:
[
[
t,X
t,X
] = ode15s(
] = ode15s(
@TestFunction,tspan,Xo,options
@TestFunction,tspan,Xo,options
)
)


En este caso Los
En este caso Los
stats
stats

informados por la soluci
informados por la soluci

n
n
son:
son:


139 successful steps
139 successful steps


3 failed attempts
3 failed attempts


288 function evaluations
288 function evaluations


1 partial derivatives
1 partial derivatives


27 LU decompositions
27 LU decompositions


284 solutions of linear systems
284 solutions of linear systems


Elapsed time is 0.625000 seconds.
Elapsed time is 0.625000 seconds.
Utilizaci
Utilizaci

n de
n de
Solvers
Solvers

de MATLAB
de MATLAB

Ejemplo 02
Ejemplo 02
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
27 27


El solver puede adoptar pasos temporales mucho
El solver puede adoptar pasos temporales mucho
m
m

s grandes (139 comparado con los 7557 para la


s grandes (139 comparado con los 7557 para la
ode45
ode45
), lo cual reduce el tiempo computacional total.
), lo cual reduce el tiempo computacional total.


ode15s
ode15s

es impl
es impl

cita, por lo tanto resuelve un sistema


cita, por lo tanto resuelve un sistema
no lineal de ecuaciones en cada paso temporal.
no lineal de ecuaciones en cada paso temporal.
Utilizaci
Utilizaci

n de
n de
Solvers
Solvers

de MATLAB
de MATLAB

Ejemplo 02
Ejemplo 02
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
28 28
Mejoras al C
Mejoras al C

digo (I)
digo (I)


En cada etapa de tiempo la
En cada etapa de tiempo la
ode15s
ode15s

resuelve un
resuelve un
conjunto de ecuaciones no lineales, para las cuales
conjunto de ecuaciones no lineales, para las cuales
requerir
requerir


del
del
Jacobiano
Jacobiano

de
de
f(t,x
f(t,x
)
)
.
.


Dado que la rutina no suministra informaci
Dado que la rutina no suministra informaci

n
n
sobre el
sobre el
Jacobiano
Jacobiano
, est
, est


forzada a calcular el
forzada a calcular el
Jacobiano
Jacobiano

completo en forma num
completo en forma num

rica.
rica.
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
29 29
Mejoras al C
Mejoras al C

digo (II)
digo (II)


Por consiguiente, se nos plantean dos opciones:
Por consiguiente, se nos plantean dos opciones:
1)
1)

Suministrar una
Suministrar una
function
function

que nos devuelva el
que nos devuelva el
Jacobiano
Jacobiano
,
,
o si el
o si el
Jacobiano
Jacobiano

es una constante, entonces podemos
es una constante, entonces podemos
suministrar la matriz.
suministrar la matriz.
2)
2)

Suministrar un
Suministrar un
Jacobiano
Jacobiano

patr
patr

n. En este caso, la rutina


n. En este caso, la rutina
es capaz de evitar el costoso llamado a la velocidad de
es capaz de evitar el costoso llamado a la velocidad de
cambio de la funci
cambio de la funci

n
n
. Un
. Un
Jacobiano
Jacobiano

patr
patr

n
n

es
es

una
una

matriz
matriz

rala
rala

de ceros y
de ceros y
unos
unos
. Los
. Los
unos
unos

s
s

lo
lo

aparecen
aparecen

donde
donde

el
el
Jacobiano
Jacobiano

es
es

no
no
nulo
nulo
.
.
23/11/2009 23/11/2009 Matem Matem tica Superior Aplicada tica Superior Aplicada
Dr. Alejandro S. M. Santa Cruz UTN Dr. Alejandro S. M. Santa Cruz UTN - - FRRo FRRo
30 30
Mejoras al C
Mejoras al C

digo (III)
digo (III)


Opci
Opci

n 1:
n 1:


Para hacer esto fijamos la opci Para hacer esto fijamos la opci n n ' 'Jacobian Jacobian' '

en la estructura en la estructura odeset odeset

para la para la matrix matrix

o nombre de la o nombre de la function function. Generalmente . Generalmente sta es la sta es la
opci opci n computacionalmente m n computacionalmente m s eficiente. s eficiente.


MATLAB tambi MATLAB tambi n permite a la rutina devolver un n permite a la rutina devolver un Jacobiano Jacobiano

ralo ralo
( (sparse sparse). En este ejemplo el ). En este ejemplo el Jacobiano Jacobiano

es una constante, es una constante,
utiliz utiliz ndose las siguientes l ndose las siguientes l neas para suministrar al solver: neas para suministrar al solver:
J=[ J=[- -1, 1, - -1; 1, 1; 1, - -5000]; 5000];
options options

= = odeset odeset(' ('RelTol RelTol',1e ',1e- -6,' 6,'Stats Stats',' ','on on',' ','Jac Jac',J); ',J);


El c El c digo ahora corre m digo ahora corre m s r s r pido dado que el pido dado que el Jacobiano Jacobiano

no no
necesita m necesita m s ser evaluado (a s ser evaluado (a n cuando la ganancia sea muy n cuando la ganancia sea muy
peque peque a cuando el a cuando el Jacobiano Jacobiano

es constante, lo cual es detectado por es constante, lo cual es detectado por
el solver, por lo que el el solver, por lo que el Jacobiano Jacobiano

no ser no ser

actualizado despu actualizado despu s de la s de la
primera evaluaci primera evaluaci n) n)

You might also like