Вы находитесь на странице: 1из 45

Resolutores de Ecuaciones Diferenciales

Mathcad tiene una variedad de funciones para resolver numricamente


ecuaciones diferenciales parciales:
Resolutor de Ecuaciones Diferenciales Ordinarias
odesolve(x,b,step)
rkfixed(y,x1,x2,npoints,D)
Sistemas Alisados
ulstoer(y,x1,x2,npoints,D)
Sistemas Stiff
!tiffb(y,x1,x2,npoints,D,")
!tiffr(y,x1,x2,npoints,D,")
Sistemas lentamente variables
#kadapt(y,x1,x2,npoints,D)
Encontrar el ultimo punto sobre el intervalo de integracin
bulstoer(y,x1,x2,acc,D,kmax,s)
rkadapt(y,x1,x2,acc,D,kmax,s)
stiffb(y,x1,x2,acc,D,",kmax,s)
stiffr(y,x1,x2,acc,D,",kmax,s)
Resolver problemas de valores lmites dos-puntos
bvalfit(v1,v2,x1,x2,xf,D,load1,load2,score)
sbval(v,x1,x2,D,load,score)
Resolver Ecuaciones Diferenciales a las derivadas parciales
relax(a,b,c,d,e,f,u,r$ac)
multi%rid(M,ncycle)
Resolucin de una sola ecuacin diferencial ordinaria
odesolve(x,b,step!" #etorna una funci&n de x la cual es una soluci&n a la
ecuaci&n diferencial ordinaria ('D(), su$eta a a los constre)iminetos de
valor inicial o bordes provista en el solve block* +a 'D( debe ser lineal en
sus derivadas m,s altas y el n-mero de condiciones debe ser i%ual al orden
de la 'D(*
*
Argumentos#
x es la variable de inte%raci&n* x debe ser real*

b es el punto terminal del intervalo de inte%raci&n* b debe ser real.

step (opcional) es el n-mero de pasos usados internamente cuando se
calcula la soluci&n*

$so de la funcin odesolve#
.asos para usar la funci&n odesolve para resolver una ecuaci&n diferencial
ordinaria:
/ipee la palabra Given para arrancar el
solve block*


.or deba$o del Given, tipee la ecuaci&n
diferencial y sus constr)imientos usando
boolean operators*


/ippee la funci&n odesolve con la variable
de inte%raci&n, x, y el punto terminal b*
%otes#
+a ecuaci&n diferencial puede ser escita usando los operadores
derivada tales como d/dx y d
2
/dx
2
o usando notaci&n primada similar
a y(x) e y'(x)* (+a combinaci&n de teclas para el character prima es
&trl'()*)
+os constre)imientos estar,n en la forma de y(a)=b o y'(a)=b*
Mathcad no aceptar, constr)imientos m,s complicados tales como
y'(a)+y(a)=b*
(l punto terminal b debe ser m,s %rande 0ue el valor inicial*
.or default, odesolve usa un run%e1kutta de paso fi$o de resoluci&n*
.ara usar un mtodo adaptivo, cli0uee sobre odesolve con el bot&n
derecho del mouse y elei$a Adaptive desde el men- pop1up*
.ara resolver sistemas de ecuaciones diferenciales o para resolver
una 0ue no es lineal en el trmino de derivada m,s alta, use r*fixed*
E+emplo#
+os e$emplos de aba$o demuestran c&mo usar la funci&n odesolve para
resolver ecuaciones diferenciales ordinarias:
2iven
133 y44 x ( ) 13 y4 x ( ) + 131 y x ( ) + 53 cos
1
6
x

2iven
133 y44 x ( ) 13 y4 x ( ) + 131 y x ( ) + 53 cos
1
6
x

y 3 ( ) 3 y4 3 ( ) 1
y 'desolve x 153 , ( ) :
3 2 6 7 8 13
1
3
1
2
1*675
3*798
y x ( )
13 3 x
2iven
6
2
t
f t ( )
d
d
2
f t ( ) + t f 3 ( ) 6 f 5 ( ) 1:*5
f 'desolve t 5 , ( ) :
3 1 2 : 6 5 7
13
23
:3
f t ( )
t
----------------------------------------------------------------------------------------------------
Utilizacin de Matlab para resolucin de Ecuaciones Diferenciales
DSOLVE Solucin simblica de ecuaciones diferenciales ordnarias
DSOLVE('eqn'!'eqn"'! ###$ acepta ecuaciones simblicas representando
ecuaciones diferenciales ordinarias % condiciones iniciales# Varias ecuaciones o
condiciones iniciales pueden ser a&rupadas 'untas! separadas por comas! en
un (nico ar&umento de entrada#
)or omisin! la *ariable independiente es ' t '# La *ariable independente puede
ser cambiada de 't' a al&una otra *ariable simblica inclu%endo esa *ariable
como el (ltimo ar&umento#
La letra 'D' denota deri*ada con respecto a la *ariable independiente! en este
caso usualmente d/dt# Una 'D' se&uida por un d+&ito denota derivacin
repetida, por e'emplo! D2 es d^2/dt^2# -ualesquiera caracteres si&uiendo
estos operadores de deri*acin son tomados como *ariables dependientes, por
e'emplo! D3y denota al tercera deri*ada de y(t)# .ote que los nombes de las
*ariables simblicas no deber/n contener la letra 'D'#
Las condiciones iniciales son especificadas por ecuaciones tales como 'y(a)=b'
o 'Dy(a) = b' donde % es una de las *ariables dependientes % a % b son
constantes# Si el n(mero de condiciones iniciales es menor que el n(mero de
*ariables dependientes! las soluciones resultantes obtendr/n constantes
arbitrarias! -! -"! etc#
Son posibles tres diferentes tipos de salidas#
)ara una ecuacin % una salida! es retornada la solucin resultante! con
soluciones m(ltiples para una ecuacin no lineal en un *ector simblico#
)ara *arias ecuaciones e i&ual n(mero de salidas! los resultados son
ordenados en orden le0ico&r/fico % asi&nados a las salidas#
)ara *arias ecuaciones % una (nica salida! se retorna una estructura
conteniendo las soluciones#
Si no se encuentra nin&una solucin closed-form (e0pl+cita$ ! se intenta una
solucin impl+cita# -uando se retorna una solucin impl+cita! se da una
ad*ertencia#
Si no se puede calcular una solucin e0pl+cita o impl+cita! entonces se da una
ad*ertencia % se retorna el s%m *ac+o# En al&unos casos in*olucrando
ecuaciones no-lineales! la salida ser/ una ecuacin diferencial de m/s ba'o
orden equi*alente o una inte&ral#

E'emplos1

dsol*e('D0 2 -a30'$ retorna

ans 2 e0p(-a3t$3-

0 2 dsol*e('D0 2 -a30'!'0(4$ 2 '!'s'$ retorna

0 2 e0p(-a3s$

% 2 dsol*e('(D%$5" 6 %5" 2 '!'%(4$ 2 4'$ retorna

% 2
7 sin(t$8
7 -sin(t$8

S 2 dsol*e('Df 2 f 6 &'!'D& 2 -f 6 &'!'f(4$ 2 '!'&(4$ 2 "'$
retorna una estructura S con campos

S#f 2 e0p(t$3cos(t$6"3e0p(t$3sin(t$
S#& 2 -e0p(t$3sin(t$6"3e0p(t$3cos(t$

9 2 dsol*e('D% 2 %5"3(-%$'$
:d*ertencia1 .o puede ser encontrada solucin e0pl+cita, se retorna la
solucin impl+cita#
9 2
t6;%-lo&(%$6lo&(-6%$6-24

dsol*e('Df 2 f 6 sin(t$'! 'f(pi;"$ 2 4'$
dsol*e('D"% 2 -a5"3%'! '%(4$ 2 ! D%(pi;a$ 2 4'$
S 2 dsol*e('D0 2 %'! 'D% 2 -0'! '0(4$24'! '%(4$2'$
S 2 dsol*e('Du2*! D*2<! D<2-u'!'u(4$24! *(4$24! <(4$2'$
< 2 dsol*e('D=< 2 -<'!'<(4$2! D<(4$24! D"<(4$24'$
% 2 dsol*e('D"% 2 sin(%$'$, prett%(%$
Algunos comandos, tales como ode45 (un resolutor de ecuaciones diferenciales en
forma numrica), requiere que su primer argumento sea una funccin para ser
preciso o bien una funcin inline, como en
ode45(f, [0 2], 1).
o una function handle, esto es, el nombre de una funcin built-in o una funcin M-
file precedida por el smbolo especial @, como en
ode45(@func, [0 2], 1)).
Ecuaciones Diferenciales Ordinarias
El ob'eti*o de este laboratorio es aprender t>cnicas para la resolucin num>rica de
problemas de *alores iniciales ()#V#?#$ para ecuaciones diferenciales ordinarias
(E#D#O#$ % sistemas de E#D#O#
Matlab tiene *arios comandos para la resolucin num>rica de )#V#?# para E#D#O#1
@esolutores de ecuaciones diferenciales#
@esolutores de problemas con *alores iniciales para ODEs# (Si no tiene se&uridad
acerca del stiffness! intente primero ODEAB! lue&o ODEBS#$
7(n matem,tica, una ecuaci&n stiff es una ecuaci&n diferencial en los 0ue determinados
mtodos numricos para resolver la ecuaci&n son numricamente inestables, a menos
0ue el tama)o de paso sea tomado extremadamente pe0ue)o* ;a resultado dif<cil
formular una definici&n precisa del stiff, pero la idea principal es 0ue la ecuaci&n
incluye al%unos trminos 0ue pueden conducir a una variaci&n r,pida en la soluci&n*=
odeAB C @esuel*e ED non-stiff! por el medium order method#
ode"= - @esuel*e ED non-stiff! por el low order method#
ode= - @esuel*e ED non-stiff!! por el variable order method#
ode"=t - @esuel*e ED moderadamente non-stiff! % D:Es ?nde0 ! trapezoidal rule#
odeBs - @esuel*e ED stiff % D:Es ?nde0 ! variable order method#
ode"=s - @esuel*e ED stiff! low order method#
ode"=tb - @esuel*e ED stiff! low order method#
-omo se *e en esta lista! Da% m>todos para resol*er E#D#O# stiff % no stiff# :dem/s Da%
m>todos de orden ba'o! medio! alto % *ariable#
Eodos ellos tienen una sinta0is seme'ante# )or e'emplo! para resol*er el )#V#?#
en el inter*alo 7to! tf 8 mediante el comando ode45 en su opcin m/s sencilla! debe
e'ecutarse1
t!y"=ode45(#$#!to t$"!yo)%
donde1
F $ es el nombre de la funcin $(t! y) (t+picamente definida mediante un pro&rama
function en un arcDi*o f#m$,
F to % tf son los e0tremos del inter*alo donde se desea conocer la solucin,
F %o es el *alor de la solucin en to (es decir el *alor de la condicin inicial %(to$ 2 %o$,
F t de*uel*e los *alores de la *ariable independiente t donde el m>todo calcula el *alor
de la solucin,
F % de*uel*e los *alores de la solucin en cada uno de los puntos t#
Estos comandos no requieren como dato un paso de inte&racin D pues todos ellos
determinan de manera autom/tica en cada paso G! el tamaHo del paso de inte&racin
DG necesario para mantener los errores por deba'o de una tolerancia determinada# Los
*alores de t que entre&a corresponden a los puntos
tG 2 tGI 6 DG! G 2 ! "! # # # ! en los que el comando necesit calcular el *alor de %(tG$#
Si se desea conocer la solucin para ciertos *alores de t! puede
alternati*amente e'ecutarse1
t!y"=ode45(#$#!t&pan!yo)%
donde t&pan es el *ector de *alores donde se desea conocer la solucin# )or
e'emplo! tspan2414#1#
En ese caso! la salida t coincide con t&pan e y contiene los *alores de la
solucin en esos puntos#
La tolerancia predeterminada de estos m>todos es 4EI=! para el error
relati*o! % 4EIJ! para el error absoluto# Si se desea calcular la solucin con
otras tolerancias! deben prefi'arse las opciones ele&idas mediante el comando
ode&et# :dem/s! en la e'ecucin del comando para resol*er la E#D#O#! debe
a&re&arse el par/metro adicional de opciones# La sinta0is para realizar esto es!
por e'emplo1
option&=ode&et(#'el(ol#!)e*+!#,b&(ol#!)-e*.)%
t!y"=ode45(#$#!to t$"!yo!option&)%
Si se e'ecuta option&=ode&et(#'el(ol#!)e*+!#,b&(ol#!)-e*.) sin el K,L puede *erse
que Da% otras opciones que pueden prefi'arse! adem/s de las tolerancias de los
errores#
)or e'emplo! si se desea resol*er el )#V#?#
en el inter*alo 74! #B8! mediante el comando ode45 % *isualizar la solucin
obtenida! debe crearse un ficDero f#m como si&ue1
$unction z=$(t!y)
z=y%
% e'ecutarse1
t!y"=ode45(#$#!/ )-5"!))%
plot(t!y!t!e0p(t)!1o1)
:s+ se obtiene la si&uiente &r/fica1
El si&uiente e'emplo resuel*e la misma ecuacin en los puntos t2414#1#B! con
error absoluto menor a 4IEJ % calcula los errores cometidos restando los
*alores calculados a los de la solucin *erdadera! que en este caso es %(t$ 2
e0p(t$1
option&=ode&et(1,b&(ol1!)-e*+)%
t&pan=/2-)2)-5%
t!y"=ode45(1$1!t&pan!)!option&)%
error=e0p(t)*y
error =
1.0e-006 *
0
-0.0003
-0.0248
-0.0448
-0.0076
-0.0415
-0.0694
-0.0200
-0.0669
-0.1056
-0.0402
-0.1048
-0.1586
-0.0721
-0.1612
-0.0989
La salida que se presenta indica que los errores son efecti*amente menores en
*alor absoluto a 4EIJ#
La resolucin de )#V#?# para sistemas de E#D#O# se realiza mediante los
mismos comandos# En tal caso! $(t!y) debe ser una funcin a *alores *ectoriales
(es decir un *ector columna de funciones$ e y un *ector columna de *ariables
de la misma dimensin# :dem/s! la condicin inicial yo tambi>n debe ser un
*ector columna de la misma dimensin#
)or e'emplo! consideremos el )#V#?#
cu%a solucin e0acta es1
)or lo tanto los puntos (0(t$! %(t$$ solucin de este sistema de E#D#O! describen
la circunferencia unitaria#
Este sistema escrito *ectorialmente resulta1
)ara resol*erlo debe crearse un ficDero M#m como si&ue1
$unction 3=4(t!5)
3=5(2)%*5())"%
Los si&uientes comandos resuel*en este )#V#?# en el inter*alo 74! "8 % &rafican
la cur*a (0(t$! %(t$$! para 4 N tN "! que se obtiene1
t!5"=ode45(1$1!/ 26pi"!)%/")%
plot(5(2!))!5(2!2))%
:s+ se obtiene la si&uiente &r/fica1
Supon&amos que deseamos resol*er % plotear la solucin de la si&uiente
ecuacin diferencial de se&undo orden
e7n2=1D2y8.6Dy826y=co&(0)1%
init&2 = 1y(/)=/! Dy(/)=)1%
y=d&olve(e7n2!init&2!101)
y =
1/65*cos(x)+8/65*sin(x)+(-1/130+53/1820*14(1/2))*exp((-4+14(1/2))*x)
-1/1820*(53+14(1/2))*14(1/2)*exp(-(4+14(1/2))*x)
0=/2/-)2)%
z=eval(vectorize(y))%
plot(0!z)
2iven
133 y44 x ( ) 13 y4 x ( ) + 131 y x ( ) + 53 cos
1
6
x

2iven
133 y44 x ( ) 13 y4 x ( ) + 131 y x ( ) + 53 cos
1
6
x

y 3 ( ) 3 y4 3 ( ) 1
y 'desolve x 153 , ( ) :
3 2 6 7 8 13
1
3
1
2
1*675
3*798
y x ( )
13 3 x
@esol*er con Matlab1
e7n2=1)//6D2y8)/6Dy8)/)6y=5/6co&(/-2560)1%
init&2 = 1y(/)=/! Dy(/)=)1%
y=d&olve(e7n2!init&2!101)
0=/2/-)2)/%
z=eval(vectorize(y))%
plot(0!z)
@esolucin de Sistemas de ED con Matlab
Supn&ase que deseamos resol*er % &raficar las soluciones del sistema de tres
ED ordinarias
)rimero! para encontrar una solucin &eneral! procedemos como en el caso de
una sla ED! e0cepto que cada ecuacin es abrazada por su par de comillas
(simples$1
0!y!z"=d&olve(#D0=0826y*z#!#Dy=08z#!#Dz=460*46y856z#)
x =
-C1*exp(3*)-C2*exp()-2*C3*exp(2*)
y =
C1*exp(3*)+C2*exp()+C3*exp(2*)
! =
4*C1*exp(3*)+2*C2*exp()+4*C3*exp(2*)
Een&a en cuenta que %a no se Da especificado nin&una *ariable independiente!
M:EL:O utiliza por defecto t## )ara resol*er un problema de *alores iniciales!
simplemente se define un con'unto de *alores iniciales % se aHaden al final del
comando d&olve ()# Supon&amos que tenemos 0 (4$ 2 ! % (4$ 2 "! % z (4$ 2 =#
Lue&o1
init&=#0(/)=)!y(/)=2!z(/)=3#%
0!y!z"=d&olve(#D0=0826y*z#!#Dy=08z#!#Dz=460*46y856z#!init&)
x =
-5/2*exp(3*)-5/2*exp()+6*exp(2*)
y =
5/2*exp(3*)+5/2*exp()-3*exp(2*)
! =
10*exp(3*)+5*exp()-12*exp(2*)
Minalmente! &raficando esta solucin
t=lin&pace(/!-5!25)%
00=eval(vectorize(0))%
yy=eval(vectorize(y))%
zz=eval(vectorize(z))%
plot(t! 00! t! yy! t! zz)
Bsqueda de soluciones numricas
M:EL:O tiene una serie de Derramientas para resol*er num>ricamente las
ecuaciones diferenciales ordinarias# .os centraremos en los dos principales! el
incorporado en las funciones ode23 % ode45! que implementan *ersiones
de @un&e-Putta "do;=er-orden % Ato;Bto-orden! respecti*amente#
E'emplo# :pro0imar num>ricamente la solucin de el ED de primer orden
sobre el inter*alo 0 74! #B8#
)ara cualquier ED en la forma y9 = $(0! y)! comenzamos definiendo la funcin
$(0! y)# )ara ecuaciones (nicas! podemos definir $(0! y) como una funcin inline#
:qu+!
$=inline(106y^28y1)
" =
#n$ine "%ncion&
"(x'y) = x*y2+y
El uso b/sico para el resolutor ode45 de Matlab es
ode45($unction!domain!initial condition)-
Esto es! usamos
0!y"=ode45($!/ -5"!))
% M:EL:O retorna dos *ectores columna! el primero con *alores de 0 % el
se&undo con *alores de y# 9a que 0 e y son *ectores con los correspondientes
componentes! podemos &raficar los *alores con
plot(0!%$
Eleccin de la particin#
En la apro0imacin de esta solucin! el al&oritmo ode45 Da seleccionado una
particin determinada del inter*alo 74! 4#B8! % M:EL:O Da de*uelto un *alor de
y en cada punto de esta particin# : menudo es el caso en la pr/ctica en que
nos &ustar+a especificar la particin de *alores en los que M:EL:O de*uel*e
una apro0imacin# )or e'emplo! slo puede ser que desee para apro0imar
%(4#$! %(4!"$! ###! %(4!B$# )odemos especificar esto al introducir el *ector de
*alores 74! 4#! 4#"! 4#=! 4#A! 4#B8! como el dominio en el odeAB# Es decir! que
utilizamos
0value&=/2-)2-5%
0!y"=ode45($!0value&!))
x =
0
0.1000
0.2000
0.3000
0.4000
0.5000
y =
1.0000
1.1111
1.2500
1.4286
1.6667
2.0000
Opciones# Qa% *arias opciones disponibles para el resolutor ode45! dando al
usuario un control limitado sobre el al&oritmo# Dos opciones importantes son la
tolerancia relati*a % absoluta! respecti*amente 'el(ol % ,b&(ol# En cada paso
del al&oritmo ode45! un error se apro0ima a ese paso# Si %
G
es la apro0imacin
de %(0
G
$ en el paso G! % e
G
es el error apro0imado en este paso! a continuacin!
M:EL:O eli&e su particin para ase&urar
e
G
R ma0 (%
G
3 @elEol ! :bsEol$!
donde los *alores por defecto son @elEol 2 4!44 % :bsEol 2 4#44444#
-omo un e'emplo de cu/ndo puede ser que desee cambiar estos *alores!
obser*amos que si %
G
lle&a a ser &rande! entonces al error e
G
se le permitir/
crecer bastante# En este caso! aumentar el *alor de 'el(ol# )ara la ecuacin
%' 2 0%
"
6 %! con % (4$ 2 ! los *alores de y lle&an a ser mu% &randes cuando 0
se acerca a # De DecDo! con las tolerancias de error por defecto! nos
encontramos con que el comando
0! y" = ode45 ($! /!)"! ))%
conduce a un mensa'e de error! causado por el DecDo de que los *alores de y
son cada *ez m/s &randes a medida que 0 se acerca a # (.ote en la parte
superior del *ector de la columna para y que se multiplica por 4
A
#$ -on el
fin de solucionar este problema! seleccione un *alor menor para 'el(ol#
options2odeset ('@elEol'! e-4$,
70! %8 2 odeAB (f! 74!8! !options$,
ma0 (%$
(ns =
2.425060345544448e 07
:dem/s de emplear el comando option! se Da calculado el *alor m/0imo de
y(0) para mostrar que o mostrar que s+ es bastante &rande! aunque no tan
&randes como se su&iere en los (ltimos c/lculos#
Ecuaciones de primer orden con M-files
:lternati*amente! se puede resol*er la misma ODE definiendo primero a $(0! y)
como un M-file $ir&tode-m#
function %prime 2 firstode(0!%$,
S M?@SEODE1 -omputes %prime 2 03%T"6%
%prime 2 03%T" 6 %,
En este caso! slo requerimos un cambio en el commando ode451 debemos
usar un puntero U para indicar el M-file# Esto es! usamos los si&uientes
comandos#
0&pan = /!-5"%
y/ = )%
0!y"=ode23(:$ir&tode!0&pan!y/)%
plot(0!y)
Sistemas de EDs
@esol*er un sistema de EDs en M:EL:O es mu% similar a resol*er una (nica
ecuacin! aunque un sistema de EDs no puede ser definido como una funcin
inline debemos definirlo como un M-file#
Ejemplo. Resolver el sistema de ecuaciones de Loren
7Las ecuaciones de Lorenz tienen al&unas propiedades de las ecuaciones en
deri*ados atmosf>ricos# Las soluciones de las ecuaciones de Lorenz Dan
ser*ido como e'emplo de comportamiento catico#8
Donde a los efectos de este e'emplo! *amos a tomar 2 4! 2 V ; =! % 2 "V!
as+ como 0 (4$ 2 - V! % (4$ 2 V! %! z (4$ 2 "W# El M-file que contiene las
ecuaciones de Lorenz aparece a continuacin#
$unction 0prime = lorenz)(t!0)%
;<='>?32 @ompute& the derivative& involved in &olvinA the
;<orenz e7uation&-
&iA=)/%
beta=./3%
rho=2.%
0prime=*&iA60()) 8 &iA60(2)% rho60()) * 0(2) * 0())60(3)% *beta60(3) 8 0())60(2)"%
Obser*e que 0 se almacena como 0())! y como 0(2)! % z como 0(3)# :dem/s!
0prime es un *ector columna! como se desprende de la coma despu>s de la
primera aparicin de 0(2)# Si en la *entana de comandos! escribimos
0/=*. . 2B"%
t&pan=/!2/"%
t!0"=ode45(:lorenz)!t&pan!0/)%
:unque no se dan aqu+! la salida de este (ltimo comando consiste en una
columna de las tiempos se&uido por una matriz con tres columnas! la primera
de las cuales se corresponde con los *alores de 0 en los tiempos asociados! %
lo mismo para la se&unda % tercera columna para y % z# La matriz se Da
denotado 0 en la declaracin llamante ode45! % en &eneral cualquier
coordenada de la matriz se puede especificar como 0(m!n)! donde m denota la
fila % n denota la columna#
En lo que se estar/ m/s interesado es en referencia a las columnas de 0! las
cuales se corresponden con *alores de los componentes del sistema# En este
sentido! podemos denotar todas las filas o todas las columnas por un colon (1$#
)or e'emplo! 0(2!)) se refiere a todas las filas de la primera columna de la matriz
0! es decir! se refiere a todos los *alores de nuestro componente ori&inal 0# -on
esta informacin! podemos f/cilmente trazar el atractor e0traHo de Lorenz! que
es un &r/fico de z en funcin de 01
plot(0(2!))!0(2!3))
)or supuesto! tambi>n podemos trazar cada componente de la solucin en
funcin de t! % una forma (til de Dacer esto es apilar los resultados#
)odemos crear la si&uiente fi&ura con1
&ubplot(3!)!))
plot(t!0(2!)))
&ubplot(3!)!2)
plot(t!0(2!2))
&ubplot(3!)!3)
plot(t!0(2!3))
!asando par"metros
:l analizar el sistema de ecuaciones diferenciales! a menudo se quiere
e0perimentar con diferentes *alores de los par/metros# )or e'emplo! en el
estudio de las ecuaciones de Lorenz se podr+a considerar el comportamiento
en funcin de los *alores de ! % # )or supuesto! una forma de cambiar
esto es manualmente *ol*iendo a abrir el M-file lorenz)-m cada *ez que se
quiere probar con nue*os *alores! pero no slo es una forma lenta de Dacerlo!
sino que es dif+cil de mane'ar para automatizar# Lo que podemos Dacer en
cambio es pasar *alores de los par/metros directamente a nuestro M-file a
tra*>s de la instruccin de llamada ode45# )ara *er cmo funciona esto! lo
primero es alterar lorenz)-m en lorenz2-m! el (ltimo de los cuales acepta un
*ector de par/metros que denotamos con p#
funtion X)@?ME 2 lorenz" (t! 0! p$,
S LO@E.Y1 -alcula los deri*ados necesarios para resol*er el
S ecuaciones de Lorenz#
si& 2 p ($! beta 2 p ("$, rDo 2 p (=$,
X)@?ME 2 3 7-seHal 0 ($ 6 3 seHal 0 ("$, 3 rDo 0 ($ - 0 ("$ - 0 ($ 3 0 (=$-beta 3 0
(=$ 6 0 ($ 3 0 ("$8,
:Dora puede en*iar *alores de los par/metros con odeAB#
Z pZ 2 74 4V;4= "V8,
ZZ 7t! 08 2 odeAB (U lorenz! tspan! 04! 78! p$,
)odemos en*iar aDora los *alores de par/metros con ode45.
p274 V;= "V8,
7t!082odeAB(Ulorenz"!tspan!04!78!p$,
Ecuaciones de Se#undo Orden
El primer paso en resol*er una ED ordinaria de se&undo orden (o m/s$ en
M:EL:O es escribir la ecuacin como un sistema de primer orden# -omo
e'emplo se retomar/ uno anterior# Eomando %

(0$ 2 %(0$ e %
"
(0$ 2 %[(0$!
tenemos el sistema
M>todo *isto arriba1 -odificado en Matlab (usando d&olve! solucin simblica$1
e7n2 = 1D2y 8 .6Dy 8 26y = co&(0)1%
init&2 = 1y(/)=/! Dy(/)=)1%
y=d&olve(e7n2!init&2!10')
y =
exp((-4+14)(1/2))*x)*(53/1820*14)(1/2)-1/130)+exp(-(4+14)(1/2))*x)*(-
53/1820*14)(1/2)-1/130)+1/65*cos(x)+8/65*sin(x)
0=/2/-/)2)%
z = eval(vectorize(y))%
plot(0!z)
M>todo sistema de EDs (usando ode45! solucin num>rica$
)rimero! se constru%e el M-file basado en1
$unction 0prime = ee(0!y)%
;
;
0prime=y(2)%*.6y(2)*26y())8co&(0)"%
Se e'ecuta1
0/=/ )"% ; condicione& iniciale&
t&pan=/!)"% ; intervalo
0!y"=ode45(:ee!t&pan!0/)%
plot(0!y(2!)))
Eransformadas de Laplace
Una de las m/s (tiles transformadas en matem/tica es la transformada de
Laplace# M:EL:O tiene rutinas built-in para calcular la Eransformada de
Laplace como su in*ersa# )or e'emplo! para computar la transformada de
f(t$2t
"
! simplemente tipee
&ym& t%
laplace(t^2)
(ns =
2/s)3
)ara in*ertir! di&amos! M(s$ 2 ;(6s$! tipee
&ym& &%
ilaplace()/()8&))
(ns =
exp(-)
!ro$lemas de contorno
)or di*ersas razones de m>rito discutible ma%or+a de los cursos de introduccin
a ecuaciones diferenciales ordinarias se centran principalmente en problemas
de *alores iniciales (?V)$# Otra clase de EDs que sur&en a menudo en las
aplicaciones son los problemas de contorno (OV)s$# -onsideremos! por
e'emplo! la ecuacin diferencial
%''- =% '6 "% 2 4 % (4$ 2 4 % ($ 2 4!
donde nuestras condiciones %(4$ 2 4 e %($ 2 4 se especifican en el l+mite del
inter*alo de inter>s 0 74! 8# (:unque nuestra solucin normalmente se
e0tiende m/s all/ de este inter*alo! la ma%or+a de los escenarios comunes en
los problemas de *alores en la frontera es el caso en el que slo estamos
interesados en los *alores de la *ariable independiente entre los puntos
e0tremos especificados#$
El primer paso en la solucin de este tipo de ecuacin es escribirlo como un
sistema de primer orden con %

2 % e %
"
2 %'! por lo cual tenemos
\rabamos este sistema en el M-file bvpe0ample-m#
$unction yprime = bvpe0ample(t!y)
;CDE>F,GE<>2 Di$$erential e7uation $or boundary value
;problem e0ample-
yprime=y(2)% *26y())836y(2)"%
Lue&o! escribimos las condiciones de contorno como el M-file bc-m! lo cual
re&istra los residuos de contorno#
$unction re&=bc(y/!y))
;C@2 >valuate& the re&idue o$ the boundary condition
re&=y/())%y)())*)/"%
)or re&iduo&! nos referimos a la parte izquierda de la condicin de frontera! una
*ez que Da sido puesta en 4#
En este caso! la se&unda condicin de contorno es %($ 2 4! de modo que su
residuo es %($ - 4! que se re&istra en el se&undo componente del *ector que
de*uel*e bc#m# Las *ariables %4 e % representan la solucin en 024 % en 02!
respecti*amente! mientras que el en el par>ntesis indica el primer
componente del *ector# En el caso de que la se&unda condicin de contorno
era % '($24! reemplazar+a a %($ - 4 con %("$ - 4#
:Dora estamos en condiciones de comenzar a resol*er el problema de
contorno# En el si&uiente cdi&o! en primer lu&ar se especifica una cuadr+cula
de *alores de 0 para resol*er en una estimacin inicial del *ector que se dar+a
para un problema de *alor inicial 7% (4$! % '(4$8# ()or supuesto! %(4$ conocido!
pero %'(4$ debe ser una con'etura# En t>rminos &enerales! M:EL:O *a a
resol*er una familia de problemas de *alores iniciales! buscando aquel para el
cual las condiciones de contorno se cumplen#$ @esol*emos el problema del
*alor l+mite con el resolutor built-in de M:EL:O bvp4c#
&ol=bvpinit(lin&pace(/!)!25)!/ )")%
&ol=bvp4c(:bvpe0ample!:bc!&ol)%
&ol-0
ans 2
-olumns tDrou&D ]
4 4#4AW 4#4V== 4#"B4 4#JJW 4#"4V= 4#"B44 4#"]W 4#====
-olumns 4 tDrou&D V
4#=WB4 4#AJW 4#ABV= 4#B444 4#BAW 4#BV== 4#J"B4 4#JJJW 4#W4V=
-olumns ] tDrou&D "B
4#WB44 4#W]W 4#V=== 4#VWB4 4#]JW 4#]BV= #4444
&ol-y
(ns =
Co$%*ns 1 +ro%,+ 9
0 0.0950 0.2022 0.3230 0.4587 0.6108 0.7808 0.9706 1.1821
2.1410 2.4220 2.7315 3.0721 3.4467 3.8584 4.3106 4.8072 5.3521
Co$%*ns 10 +ro%,+ 18
1.4173 1.6787 1.9686 2.2899 2.6455 3.0386 3.4728 3.9521 4.4805
5.9497 6.6050 7.3230 8.1096 8.9710 9.9138 10.9455 12.0742 13.3084
Co$%*ns 19 +ro%,+ 25
5.0627 5.7037 6.4090 7.1845 8.0367 8.9726 9.9999
14.6578 16.1327 17.7443 19.5049 21.4277 23.5274 25.8196
Obser*amos que en este caso! M:EL:O de*uel*e la solucin como una
estructura cu%o primer componente de la estructura &ol-0 simplemente contiene
slo los *alores de 0 especificados# El se&undo es &ol-y! que es una matriz que
contiene como primera fila los *alores de %(0$ en los puntos de la &rilla 0
especificada! % como se&unda fila los *alores correspondientes de % '(0$#
Mtodos %umricos
: pesar de que se pueden resol*er EDOs en M:EL:O sin nin&(n conocimiento
de los m>todos num>ricos que emplea! a menudo es (til para comprender los
principios b/sicos sub%acentes# En esta seccin se utilizar/ el teorema de
Ea%lor para obtener m>todos para apro0imar la solucin de una ecuacin
diferencial#
Mtodo de Euler
-onsideremos la ecuacin diferencial &eneral de primer orden
% supon&amos que queremos resol*er esta ecuacin en el inter*alo de *alores
de 0 70
4
! 0
n
8# .uestro ob'eti*o aspira a apro0imar el *alor de la solucin %(0$
en cada uno de los *alores de 0 en una particin ) 2 70
4
! 0

! 0
"
! ###! 0
n
8#
)uesto que %(0
4
$ est/ dado! el primer *alor que necesitamos estimar es
%(0

$# )or el Eeorema de Ea%lor! podemos escribir


donde c (0
4
! 0
4
$# Obser*ando desde nuestra ecuacin que %[(0
4
$ 2 f(0
4
! %(0
4
$$!
tenemos
Si nuestra particin ) tiene pequeHos subinter*alos! entonces 0

I 0
4
ser/
pequeHo % se puede considerar la cantidad pequeHa
como un t>rmino error# Esto es! tenemos
(J#"$
:Dora podemos calcular %(0
"
$ de una manera similar usando el teorema de
Ea%lor para escribir
Una *ez m/s! tenemos desde nuestra ecuacin que %'(0

$ 2 f(0

! %(0

$$! % as+
Si eliminamos el t>rmino
como un error! entonces tenemos
donde el *alor %(0

$ requerido aqu+ puede ser apro0imado por el *alor de (J#"$#


M/s &eneralmente! para cualquier G 2 ! "! ###! n - se puede apro0imar
%(0
G
6$ de la relacin
donde %(0
G
$ se conocer/n a partir del c/lculo anterior# :l i&ual que con los
m>todos num>ricos de la inte&racin! es Dabitual en la pr/ctica de tomar la
particin en subinter*alos de i&ual ancDura!
(En el estudio de m>todos num>ricos para ecuaciones diferenciales! esta
cantidad es a menudo denotada con h$ En este caso! tenemos la relacin
&eneral
Si decimos que los *alores de %
4
! %

! ###! %
n
denotan nuestras apro0imaciones
para y en los puntos 0
4
! 0

! ###! 0
n
(es decir! %
4
2 %(0
4
$! %

^ %(0

$! etc$! entonces
podemos apro0imar %(0$ sobre la particin de ) calculando iterati*amente
(J#=$
E'emplo1 Utilice el m>todo de Euler (J#=$ con n 2 4 para resol*er la ecuacin
diferencial
en el inter*alo 74! 8# Lle*aremos a cabo las primeras iteraciones en detalle! % a
continuacin *amos a escribir un arcDi*o de M:EL:O M-file para aplicar el
m>todo en su totalidad# En primer lu&ar! el *alor inicial %(4$ 2 nos da los
*alores 0
4
2 4 e %
4
24# Si nuestra particin se compone de subinter*alos de i&ual
ancDura! entonces 0

20 2 ;4 2 4#! % de acuerdo con (J#=$


:Dora tenemos el punto (0

! %

$ 2 (#!$! % podemos utilizar esto % (J#=$ para


calcular
:Dora tenemos (0
"
! %
"
$ 2 (4#"! =#W"B$! % podemos utilizar esto para calcular
M/s &eneralmente! podemos usar el M-file euler#m
$unction 0value&! yvalue&" = euler)($!0/!0n!y/!n)
;>H<>'2 G,(<,C $unction G*$ile that &olve the
;=D> y#=$! y(0/)=y/ on 0/!y/" u&inA a partition
;with n e7ually &paced &ubinterval&
d0 = (0n*0/)/n%
0()) = 0/%
y()) = y/%
$or I=)2n
0(I8))=0(I) 8 d0%
y(I8))= y(I) 8 $(0(I)!y(I))6d0%
end
0value& = 01%
yvalue& = y1%
)odemos implementar este arcDi*o con el si&uiente cdi&o! que crea la fi&ura
J##
$=inline(1&in(06y)1)%
0!y"=euler)($!/!)!pi!)/)%
plot(0!%$
-on 024#4
0!y"=euler)($!/!)!pi!)//)%
plot(0!%$
Resolutores ODE &vanados
:dem/s de los resolutores ODE ode23 % ode45! ambos basados en el m>todo
de @un&e-Putta! M:EL:O tiene otros resolutores adicionales! que aparecen
a continuacin 'unto con las su&erencias para su uso que da el M:EL:O-
Delp#
F @esolutores Multipaso
- ode))3# Si se utilizan tolerancias estrictas de error o la resolucin de un
arcDi*o ODE computacionalmente intensi*o#
F )roblemas stiff (*>ase m/s adelante$
- ode)5&# Si ode45 es lento porque el problema es stiff#
- ode23&# Si se est/ utilizando tolerancias de error crudas para resol*er
sistemas stiff % matriz de masa es constante#
- ode23t# Si el problema slo es moderadamente stiff % necesitas una
solucin sin amorti&uacin num>rica#
- ode23tb# Si se utilizan tolerancias de error crudas para resol*er sistemas
stiff#
EDs stiffr+&ido
-on EDs stiff nos referimos a una ED para la cual los errores num>ricos crecen
dram/ticamente en el tiempo# )or e'emplo! considere la ED ordinaria
% '2 -44% 6 44 t 6 ! %(4$ 2 #
9a que la *ariable dependiente! y! en la ecuacin est/ multiplicada por 44!
pequeHos errores en nuestra apro0imacin tender/n a ma&nificarse# En
&eneral! debemos tomar considerablemente pasos m/s pequeHos en
tiempo para resol*er EDs stiff! % esto puede alar&ar dram/ticamente el
tiempo de resolucin#
: menudo! las soluciones se puede calcular de manera m/s eficiente
usando uno de los resolutores diseHado para problemas stiff#
Ecuaciones diferenciales en derivadas parciales '!DE( en el espacio uni-
dimensional
)ara las )DE de *alores inicial-borde con tiempo t % una *ariable espacial 0!
M:EL:O tiene un resolutor built-in llamado pdepe#
Ecuaciones (nicas
E'emplo# Supon&amos! por e'emplo! que queremos resol*er la ecuacin del
calor
M:EL:O specifica tal )DE parablica en la forma
,as formas standard de una ecuacin diferencial
(l paso m,s importante en >preparaci&n? de una ecuaci&n diferencial para
los resolutores de Mathcad es ad0uirirla en la forma !tandard 0ue
entiendan los resolutotes* (l proceso es tomar la ecuaci&n diferencial y
liberarse de cual0uier derivada de orden m,s alto 0ue apare@ca, de$ando
s&lo primeras derivadas* !u ecuaci&n diferencial es entonces un sistema de
ecuaciones diferenciales de primer orden*
.or e$emplo, la ecuaci&n diferencial:
2
x
y x ( )
d
d
2
:
x
y x ( )
d
d
+ A y x ( ) 6 x
contiene una se%unda derivada la cual puede ser escrita como una primera
derivada:
2
x
y x ( )
d
d
2
x x
y x ( )
d
d

,
d
d

define dos funciones como:
y
3
x ( ) y x ( ) y
1
x ( )
x
y
3
x ( )
d
d
Bhora la ecuaci&n diferencial contiene dos funciones y es esencialmente un
sistema de dos ecuaciones diferenciales*
x
y
3
x ( )
d
d
y
1
x ( )
x
y
1
x ( )
d
d
6 x A y
3
x ( ) + : y
1
x ( )
(l pr&ximo paso es capturar esta informaci&n en una funci&n vector -nico
valuado D para usar con los resolutores de (cuaci&n Diferencial de
Mathcad:
DC x y , ( )
y
1
6 x A y
3
+ : y
1

,
:
Sistemas de ecuaciones diferenciales ordinarias
r*fixed(-, x1, x2, npoints, D) #etorna una matri@ en la cual (1) la primera
columna contiene los puntos en los cuales es evaluada la soluci&n y (2) las
columnas remanente contiene los valores correspondientes de la soluci&n y
sus primeras n11 derivadas*
Argumentos:
- debe ser o bien un vector de n valores inicales u un valor inicial
-nico*


x1, x2 son puntos extremos del intervalo sobre el cual la
soluci&n a las ecuaciones diferenciales ser, evaluada* +os valores
iniciales en y son los valores en x1*


npoints es el n-mero de puntos m,s all, del punto inicial para el
cual la soluci&n es aproximada* (sto controla el n-mero de filas
(1 D npoints) en la matri@ retornada por rkfixed*
D es una funci&n vector1valued n1element conteniendo las
primeras derivadas de las funciones desconocidas*
%otas#
rkfixed usa el mtodo #un%e1Eutta method de cuarto orden para
resolver una ecuaci&n diferencial de primer orden*
!e puede usar rkfixed para resolver una ecuaci&n diferencial as<
tambin como un sistema de ecuaciones diferenciales*
Fso de la funci&n rkfixed
.ara sistemas de ecuaciones diferenciales o por una 0ue no es lineal en el
trmino derivada de m,s alto orden, use rkfixed*
(l e$emplo de aba$o muestra c&mo usar rkfixed para evaluar la soluci&n de
una ecuaci&n diferencial de se%undo orden a puntos i%ualmente espaciados*
!olve y44 y4 2 y +
y 3 ( ) 1 y4 3 ( ) :
y
1
:

,
:
N- define las condiciones iniciales
N- primera deri*ada
D t y , ( )
y
1
y
1
2 y
3
+

,
:
N- se&unda deri*ada
G rkfixed y 3 , 3*5 , 633 , D , ( ) :
N- E*alua solucin en A44 puntos entre 4 % 4#B
G
4 "
4

"
=
A
B
J
W
V
]
4

"
=
A
B
4 =
#"B_4
-=
#44A "#]]]
"#B_4
-=
#44W "#]]V
=#WB_4
-=
#4 "#]]J
B_4
-=
#4B "#]]B
J#"B_4
-=
#4] "#]]A
W#B_4
-=
#4"" "#]]=
V#WB_4
-=
#4"J "#]]"
4#4 #4= "#]]
4#4 #4=A "#]V]
4#4= #4=W "#]VV
4#4A #4A "#]VW
4#4B #4AB "#]VJ
4#4J #4A] "#]VB
4#4V #4B" "#]VA
4#4] #4BJ "#]V"

Solucin usando tama.os de pasos adaptivos


#kadapt(y, x1, x2, npoints, D)
#etorna una matri@ en la cual: (1) la primera columna contiene los puntos
en los cuales es evaluada la soluci&n y (2) las columnas remanente contiene
los valores correspondientes de la soluci&n y sus primeras n11 derivadas*
Argumentos:
- debe ser o bien un vector de n valores inicales o un escalar*
x1, x2 son puntos extremos del intervalo sobre el cual la soluci&n
a las ecuaciones diferenciales ser, evaluada* +os valores iniciales
en y son los valores en x1*


npoints es el n-mero de puntos m,s all, del punto inicial para el
cual la soluci&n es aproximada* (sto controla el n-mero de filas
(1 D npoints) en la matri@ retornada por rkfixed*
D es una funci&n vector1valued n1element conteniendo las
primeras derivadas de las funciones desconocidas*
Hotes:
B diferencia de rkfixed la cual inte%ra en pasos de i%ual tama)o para
alcan@ar una soluci&n, Rkadapt examina cu,n r,pido una soluci&n
est, cambiando y adapta su tama)o de paso acordemente* Rkadapt
usar, tama)os de paso no uniformes unternamente cuando resuelve
la ecuaci&n diferencial, pero retornar, la soluci&n en puntos
i%ualmente espaciados*
Sistemas Alisados (Smoot/ s-stems"
0ulstoer(-, x1, x2, npoints, D) #etorna una matri@ en la cual: (1) la
primera columna contiene los puntos en los cuales es evaluada la soluci&n
y (2) las columnas remanente contiene los valores correspondientes de la
soluci&n y sus primeras n11 derivadas*
Argumentos:
- debe ser o bien un vector de n valores inicales o un escalar*
x1, x2 son puntos extremos del intervalo sobre el cual la soluci&n
a las ecuaciones diferenciales ser, evaluada* +os valores iniciales
en y son los valores en x1*
npoints es el n-mero de puntos m,s all, del punto inicial para el
cual la soluci&n es aproximada* (sto controla el n-mero de filas
(1 D npoints) en la matri@ retornada por Bulstoer*
D es una funci&n vector1valued n1element conteniendo las
primeras derivadas de las funciones desconocidas*
%otas#
Bulstoer usa el mtodo ulirsch1!toer el cual sera li%eramente m,s
preciso 0ue el mtodo #un%e1Eutta usado por rkfixed*
Fse la funci&n Bulstoer en ve@ de rkfixed cuando sepa 0ue la
soluci&n es alisada (smooth)
($emplo: Movimiento del .ndulo !imple
!e anali@ar, mediante la funci&n ulstoer, tambin para evaluar una
inte%ral para el per<odo del pndulo*
Ionsidrese un pndulo simple en movimiento en un plano sin resistencia
del aire ni fricci&n* !ea + la lon%itud de la varilla soporte, % la aceleraci&n
de la %ravedad y el ,n%ulo 0ue forma el alambre y la direcci&n de la
%ravedad* +a varilla soporte es r<%ida y sin masa*
+a ecuaci&n diferencial para el ,n%ulo (t) es:
+
2
t
t ( )
d
d
2
% sin t ( )
( )
+ 3 3 ( )
3
Jalores de los par,metros de entrada:
+ : m :
3

6
: % 9*83A
m
s
2

/ 7 :
.unto derecho extremo
D t K , ( )
K
1
%
+
sin K
3
( )

,
:
H 133 :
H-mero de pasos de tiempo
. ulstoer

3
3

,
3 , / , H , D ,

1
1
]
: n 3 1 , H .. :
3 1 2 : 6 5 7
theta
derivative of theta
1*:86
1*:86

6
.
1

( )
n
.
2

( )
n
7 3
.
3

( )
n
(l periodo del pndulo (tiempo re0uerido para una oscilaci&n completa) es
una inte%ral el<ptica completa sel primer tipo:
x sin

3
2

,
:
6
+
%

1
1 x
2
sin
( )
2

(
(
(

d :*716sec
Sistemas Stiff

Stiffb(-, x1, x2, npoints, D, 1)
Stiffr(2, x1, x2, npoints, D, 1)
Iada una de estas funciones retorna una matri@ en la cual: (1) la primera
columna contiene los puntos en los cuales es evaluada la soluci&n y (2) las
columnas remanentes contienen los valores correspondientes de la soluci&n
y sus primeras n11 derivadas*
Argumentos#
- debe ser o bien un vector de n valores inicales o un escalar*
x1, x2 son puntos extremos del intervalo sobre el cual la soluci&n
a las ecuaciones diferenciales ser, evaluada* +os valores iniciales
en y son los valores en x1*
npoints es el n-mero de puntos m,s all, del punto inicial para el
cual la soluci&n es aproximada* (sto controla el n-mero de filas
(1 D npoints) en la matri@ retornada por by tiffb or tiffr*
D es una funci&n vector1valued n1element conteniendo las
primeras derivadas de las funciones desconocidas*
1 es una funci&n 0ue retorna la matri@ n por (nD1) cuya primera
columna contiene derivadas y cuyas filas remanentes forman la
matri@ "acobiana para el sistema de ecuaciones diferenciales*
%otes#
tiffb usa el mtodo ulirsch1!toer para sistemas stiff* tiffr usa el
mtodo #osenbrock*
Fse uno de los dos resolutores de ecuaci&n diferencial
espec<ficamente dise)ados para sistemas stiff: tiffb y tiffr cuando
resuelva un sistema stiff*
!tiff Differential (0uations
B pesar de su xito, los mtodos de #un%e1Eutta tambin tienen sus fallas*
Fna clase particular de ecuaciones diferenciales problem,ticas son a0uellas
0ue exhiben stiffness* Ho hay una definici&n universalmente satisfactoria
de stiffness* (n la pr,ctica se aprender, a sospechar 0ue una 'D(
(ecuaci&n diferencial ordinaria) es stiff cuando un resolutor 'D( falla para
producir una soluci&n eficiente* +as sospechas ser,n confirmadas si
verdaderamente se obtienen me$ores resultados cuando se usa un mtodo
dise)ado para problemas stiff, tales como las rutinas de Matlab ode2:s u
ode15s*
($emplo de 'D( stiff
Fn e$emplo de modelo matem,tico, m,s 0ue una aplicaci&n pr,ctica es:
C4 t ( ) C t ( ) E C t ( ) e
t

( )
E > 1 >
C 3 ( ) 1 +
a0u< E es una constante %rande, di%amos 13
7
y es un n-mero dado
tama)o ordinario, di%amos L 1* +a soluci&n se conoce 0ue es:

C t ( ) e
E 1 + ( ) t
e
t
+
(n esta formula el primer trmino se desvanece r,pidamente a medida 0ue
la ecuaci&n diferencial fuer@a la soluci&n sobre la curva e
1t
*
C t ( ) e
E 1 + ( ) t
: t 13
A
13
A
13
A
+ , 3*331 .. :
3 2
.
13
7
6
.
13
7
7
.
13
7
8
.
13
7
3*5
1
3*935
3
C t ( )
13
5
1 13
A

t
Despus esta soluci&n cambia lentamente*
C t ( ) e
E 1 + ( ) t
e
t
+ : t 3*31 3*32 , 5 .. :
3 1 2 : 6 5
3*5
1
3*99
7*A:8 13
:

C t ( )
5 3*31 t
+a re%i&n corta de cambio r,pido es la capa frontera, la curva de variaci&n
lenta es conocida como la soluci&n estado estacionario* (ste
comportamiento es t<pico de problemas stiff*
&uando se desea slo el ultimo punto
!i no se est, interesado en ver todos los valores intermedios tomados por
una soluci&n, se puede ahorrar tiempo de procesamiento y reducir consumo
de memoria usando una de las funciones de aba$o*
stiffb y stiffr para sistemas stiff*
rkadapt para sistemas lentamente variables*
bulstoer para sistemas alisados (smooth)
B diferencia de sus e0uivalentes en may-sculas, no se debe especificar el
n-mero de puntos en el resultado* (n su lu%ar, debe especificar el nivel de
exactitud y permitir a estas funciones %enerar una soluci&n 0ue ten%a el
n-mero de elementos re0ueridos*
($emplo:
para x M 3
!olve y44
y
y

,
donde y(11)L1 e y(1)L2
para x N 3
D x y , ( )
y
1
x 3 < ( ) y
3
x 3 ( ) y
3
( ) +

1
1
]
: xf 3 :
M1 punto de dictontinuidad
v1
3
1 :
M 1 valor de intento para y(11)
v2
3
1 :
M 1 valor de intento para y(1)
M 1 y(11)
load1 x1 v1 , ( )
1
v1
3

,
:
M 1 valor de intento para y(11)
M 1 y(1)
load2 x2 v2 , ( )
2
v2
3

,
:
M 1 valor de intento para y(1)
score xf y , ( ) y :
M 1 indica a Mathcad i%ualar las dos mitades de la
soluci&n en xLxf
! bvalfit v1 v2 , 1 , 1 , 3 , D , load1 , load2 , score , ( ) :
! 3*392 3*7A8 ( )
M 1 contiene O y(11) y(1) =
Fso de valores intermedios para derivar condiciones iniciales
bvalfit(v1, v2, x1, x2, xf, D, load1, load2, score) #etorna un vector
conteniendo a0uellos valores iniciales de$ados sin especificar en x1*
!r"u#entos:
v1 es un vector de intento para valores iniciales de$ados sin
especificar en x1* v2 es un vector 0ue contiene intentos para valores
iniciales de$ados de especificar en x2*
x1, x2 son puntos terminales del intervalo sobre la cual la soluci&n a
ecuaciones diferenciales ser,n evaluadas*
xf es un punto entre x1 y x2 en los cuales la trayectorias de las
soluciones comien@an en x1 y a0uelllas 0ue comien@an en x2 est,n
constre)idas a ser i%ual*
D es una funci&n vector1valuada de n elementos conteniendo las
primeras derivadas de las funciones desconocidads*
load1 es una function vector1valuada cuyos n elementos
corresponden a los valores de las n funciones inc&%nitas en x1*
Bl%unos de estos valores ser,n constantes especificadas por sus
condiciones iniciales* !i un valor es desconocido se deber, usar el
valor de intento correspondiente desde v1*
load2 es an,lo%a a load1 pero los valores tomados las n funciones
inc&%nitas en x2*
score es una funci&n vector1valuada de n elementos usada para
especificar c&mo se desea 0ue las soluciones i%ualen a xf*
Fsualmente se desear, definir score(xf, y) :L y para hacer 0ue las
soluciones para todas las funciones inc&%nitas coincidan en xf*
Hotas:
bvalfit resuelve un problema de valores l<mites de dos puntos
>disparando? desde los puntos terminales y e0uiparando trayectorias
de la soluci&n y sus derivadas en el punto intermedio* (ste mtodo se
convierte en especialmente -til cuando la derivada tiene una
discontinuidad en al%una parte del intervalo de inte%raci&n*
sbval (v1, v2, x1, x2, D, load, score) #etorna un vector conteniendo
a0uellos valores iniciales de$ados sin especificar en x1*
!r"u#entos:
v1 es un vector de intento para valores iniciales de$ados sin
especificar en x1* v2 es un vector 0ue contiene intentos para valores
iniciales de$ados de especificar en x2*
x1, x2 son puntos terminales del intervalo sobre la cual la soluci&n a
ecuaciones diferenciales ser,n evaluadas*
D es una function vector1valuada de n elementos conteniendo las
primeras derivadas de las funciones desconocidads*
load es una funci&n vector1valuada cuyos n elementos corresponden
a los valores de las n funciones inc&%nitas en x1* Bl%unos de estos
valores ser,n constantes especificadas por sus condiciones iniciales*
!i un valor es desconocido se deber, usar el valor de intento
correspondiente desde v1*
score es una function vector1valuada 0ue tiene el mismo n-mero de
0ue v* Iada elemento es la diferencia entre una condici&n inicial en
x2, como ori%inalmente se especific&, y el estimado correspondiente
desde la soluci&n* (l vector store mide cu,n a$ustadamente una
soluci&n propuesta se adapta a las condiciones iniciales en x2* un
valor de 3 para cual0uier elemento indica una adaptaci&n perfecta*
Hotas:
sbval resuelve un problema de valores l<mites de dos puntos
>disparando? desde los puntos terminales y e0uiparando trayectorias
de la soluci&n y sus derivadas en el punto intermedio*
sbval computa los valores iniciales 0ue la soluci&n debe tener para
a$ustar al valor inicial 0ue se especific&* !e deben entonces tomar los
valores iniciales retornados por sbval y resolver el problema de valor
inicial resultante*
Iuando se cono@ca la soluci&n en x1 y en x2, y se ten%an n valores
conocidos, se deber, usar sbval para evaluar los valores iniciales
perdidos en x1* Fna ve@ 0ue se tienen estos valores iniciales
perdidods, se tendr, un problema con valores iniciales en ve@ de un
problema de valores l<mites de dos puntos*
Ecuacin de 3oisson
relax(a, b, c, d, e, f, u, r+ac) #etorna una matri@ cuadrada en la cual: (1)
una locaci&n de elemento en la matri@ corresponde a su locaci&n dentro de
la re%i&n cuadrada, y (2) su valor Bproxima el valor de la soluci&n en este
punto*
Argumentos:
a, b, c, d, e son matrices cuadradas todas del mismo tama)o
conteniendo los coeficientes de la ecuaci&n diferencial*


f es una matri@ cuadrada conteniendo el trmino fuente en cada
punto dentro del cuadrado*
u es una matri@ cuadrada conteniendo valores l<mites $unto con los
flancos de la re%i&n y los intentos iniciales para la soluci&n dentro de
la re%i&n*
r$a% es un radio spectral de la iteraci&n "acobi* (sto controla la
conver%encia del al%oritmo de rela$aci&n* .uede oscilar desde 3 a 1
pero su valor &ptimo depende de los detalles del problema*
%otas#
(sta function usa el mtodo de rela$aci&n para conver%er a la
soluci&n*
!e deber, usa la funci&n relax si se conoce el valor tomado por la
function desconocida u(x, -) sobre el total de los cuatro lados de una
re%i&n cuadrada*
!i la condici&n de contorno es cero sobre el total de los cuatro lados
del cuadrado dominio de inte%raci&n, use en su lu%ar la funci&n
#ulti"rid*
Fso de la funci&n relax
# :2 : M
:
#
6

#
6
,
1 :
M
# # ,
2 : M
#
8
#
2
,
2 :
i 3 :2 .. : k 3 :2 .. :
a
i k ,
1 : b a : d a : c a : e 6 a :
v
i k ,
3 : f M :
!1 relax a b , c , d , e , f , v , 3*95 , ( ) :
!1
Ecuacin de 3oisson con condiciones de contorno cero
multigrid(4, ncycle) #etorna una matri@ cuadrada en la cual: (1) una
locaci&n de elemento en la matri@ corresponde a su locaci&n dentro de la
re%i&n cuadrada, y (2) su valor aproxima el valor de la soluci&n en este
punto*
Argumentos:
4 es una matri@ cuadrada de 1D2Pn filas cuyos elementos
corresponden al trmino fuente en el correspondiente punto en el
dominio cuadrado*
n%y%le es el n-mero de ciclos en cada nivel de la iteraci&n #ulti"rid*
Fn valor de 2 dar, %eneralmente una uena aproximaci&n de la
soluci&n*
%otas#
!i u(x, -) es cero sobre los cuatro lados del cuadrado, use la funci&n
#ulti"rid* (sta function frecuentemente resolver, el problema m,s
r,pido 0ue relax*
Fso de multi%rid:
# :2 : M
# # ,
3 : M
:
#
6

#
6
,
1 :
M
#
8
#
2
,
2 :
M
#
6
: #
6
,
2 :
! multi%rid M 2 , ( ) :
!
QQQQQQQQQQQQQQQQQQQQQQQQ
M:EL:O contiene dos funciones para calcular soluciones num>rica de
ecuaciones diferenciales ordinarias, `ode"=` % `odeAB`#
: continuacin se describen los ar&umentos de los comandos M:EL:O ODE#
)*+,- . ode/0'1funci2n1+a+$+inicial(
Esta instruccin re&resa un con'unto de coordenadas J0J % JyJ que representan
a la funcin y=$(0)! los *alores se calculan a tra*>s de m>todos @un&e-Puta de
se&undo % tercer orden#
El nombre J$uncinJ! define una funcin que representa a una ecuacin
diferencial ordinaria! ODE"= proporciona los *alores de la ecuacin diferencial
%'2&(0!%$#
Los *alores JaJ % JbJ especifican los e0tremos del inter*alo en el cual se desea
e*aluar a la funcin y=$(0)#
El *alor inicial % 2 f(a$ especifica el *alor de la funcin en el e0tremo izquierdo
del inter*alo 7a!b8#
)*+,- . ode34'1funci2n1+a+$+inicial(
Esta instruccin re&resa un con'unto de coordenadas J0J % JyJ que representan
a la funcin y=$(0)! los *alores se calculan a tra*>s de m>todos @un&e-Puta de
cuarto % quinto orden#
El nombre J$uncinJ! define una funcin que representa a una ecuacin
diferencial ordinaria! ODEAB proporciona los *alores de la ecuacin diferencial
%'2&(0!%$#
Los *alores JaJ % JbJ especifican los e0tremos del inter*alo en el cual se desea
e*aluar a la funcin y=$(0)#
El *alor inicial % 2 f(a$ especifica el *alor de la funcin en el e0tremo izquierdo
del inter*alo 7a!b8#
Las instrucciones `ODE"=` % `ODEAB` contienen dos par/metros adicionales#
Se usa un quinto par/metro para especificar una tolerancia relacionada con el
tamaHo del paso, las tolerancias por omisin son 4#44 para ODE"= %
4#44444 para ODEAB#
E0iste un se0to par/metro que sir*e para solicitar que la funcin e0Diba
resultados intermedios! es decir! que realice rastreo, el *alor por omisin `4`
indica que no se desean rastrear los resultados#
-omo ilustracin de la funcin ODE de M:EL:O! se presentan los pasos para
calcular soluciones num>ricas de ecuaciones diferenciales! las si&uientes
instrucciones M:EL:O definen las funciones requeridas para e*aluar la
ecuacin diferencial deseada#
Se &raban las si&uientes instrucciones con su editor :S-?? fa*orito! en lo
particular %o uso el `editeur`! si Ud# desea usarlo tambi>n! esta disponible en la
si&uiente U@L,
Dttp1;;proton#uctin&#ud&#m0;sDare<are;editeur;editeur#zip
function d% 2 &(0!%$
S
S &
S esta funcin e*al(a una ODE
S ecuacin diferencial de primer &rado
S
d% 2 =30#5",
El si&uiente paso consiste en &rabar este arcDi*o como `&#m`! sobre al&(n
subdirectorio de traba'o *alido para el M:EL:O! las si&uientes instrucciones
resuel*en &(0!%$ dentro del inter*alo 7"!A8 con condicin inicial 4#B para %2f("$#
S Determinar la Solucin de la EDO
S
S d% 2 =30#5",
S
7t!%8 2 ode"=('&'!7"!A8!4#B$,
plot(t!%!'o'$!###
title('Solucin de la Ecuacin d% 2 =30#5"'$!###
0label('Eiempo'$!%label('% 2 f(t$'$!&rid
Sobre el subdirectorio de traba'o *alido se &raba este arcDi*o como `mat#m` %
se escribe mat! &ener/ndose la si&uiente solucin &r/fica#
Mat5cad.pdf
Las dos funciones m/s f/ciles de usar! =de&olve % Ede&olve! son usadas
dentro de Sol*e OlocGs# Qa% mucDas otras funciones que a%udan a relo*er
sistemas de ecuaciones diferenciales! inclu%endo ,dam&! ,dam&CD4! CD4!
Cul&toe&! bval$it! Kacob! multiArid! numol! 'adau! rela0! 'Iadapt! rI$i0ed! &bval!
&tate&pace! Lti$$b % Lti$$r#
La funcin =de&olve es usada en un Sol*e OlocG para resol*er una (nica
ecuacin diferencial (ED$ o un sistema de EDs# @etorna la solucin como una
funcin de la *ariable independiente# Qace esto sal*ando soluciones en un
n(mero espec+fico de puntos (npoints$ i&ualmente espaciados en el inter*alo
de la solucin! % lue&o interpolando entre estos puntos usando la funcin
l&pline# El Sol*e OlocG pone el *alor inicial o constreHimientos de l+mites# La
ODE debe ser lineal en su t>rmino deri*ado m/s alto! % el n(mero de
condiciones iniciales o en bordes debe ser i&ual al orden (u rdenes$ de la(s$
ODE(s$# La funcin tiene la forma =de&olve(vector"!0!b!npoint&")# Los
ar&umentos son como si&ue1
Dector es usado slo para sistemas de ODEs % es un *ector de nombres
de funcin (con nin&(n nombre de *ariable incluido$ como ellas
aparecen dentro del Sol*e OlocG#
0 es el nombre de la *ariable de inte&racin#
b es el punto final del inter*alo de la solucin# (El punto inicial del
inter*alo de la solucin es especificado por las condiciones iniciales$#
npoint& es opcional % es el n(mero entero de puntos equiespaciados
usados para interpolar la funcin solucin# El *alor por default es de
444# Si npoints es incrementado! lue&o la solucin interpolada es m/s
e0acta# El *alor default es usualmente adecuado! pero si se desea
resol*er sobre un &ran inter*alo! se debe poner a npoint& a un *alor
ma%or a 444# El incremento de npoint& lle*a ala incremento en el
tiempo de c/lculo#
-----
dsol*e - S%mbolic solution of ordinar% differential equations
S%nta0
dsol*e('eq'!'eq"'!###!'cond'!'cond"'!###!'*'$
dsol*e(###!'?&nore:nal%tic-onstraints'!*alue$
Descripcin
dsol*e('eq'!'eq"'!###!'cond'!'cond"'!###!'*'$ resuel*e simblicamente las EDs
ordinarias e7)! e72!--- usando v como la *ariable independiente# :qu+
cond)!cond2!--- especifica condiciones iniciales o en bordes o ambas# Eambi>n
se usa la si&uiente sinta0is1 dsol*e('eq! eq"'!###!'cond!cond"'!###!'*'$# La
*ariable independiente por default es t#
EDe letter D denotes differentiation <itD respect to tDe independent *ariable#
EDe primar% default is d;d0# EDe letter D follo<ed b% a di&it denotes repeated
differentiation# Mor e0ample! D" is d";d0"# :n% cDaracter immediatel% follo<in&
a differentiation operator is a dependent *ariable# Mor e0ample! D=% denotes tDe
tDird deri*ati*e of %(0$ or %(t$#
9ou can specif% initial and boundar% conditions b% equations liGe %(a$ 2 b or
D%(a$ 2 b! <Dere % is a dependent *ariable and a and b are constants# ?f tDe
number of tDe specified initial conditions is less tDan tDe number of dependent
*ariables! tDe resultin& solutions contain tDe arbitrar% constants -! -"!####
E'emplo1
ZZ dsol*e('D"%2-=3%'!'%(4$2'$

ans 2

-3sin(=5(;"$3t$6cos(=5(;"$3t$
9ou can input eacD equation or a condition as a separate s%mbolic equation#
EDe dsol*e command accepts up to " input ar&uments#
dsolve puede producir los si&uientes tres tipos de salida1
3 )ara una ecuacin % una salida! d&olve retorna la solucin resultante
con soluciones m(ltiples para una ecuacin no-lineal en un *ector simblico#
3 )ara *arias ecuaciones % un n(mero i&ual de salidas! d&olve ordena los
resultados alfab>ticamente % los asi&na a las salidas#
3 )ara *arias ecuaciones % una (nica salida! d&olve retorna una estructura
conteniendo las soluciones#
Si d&olve no puede encontrar una solucin closed-form (e0pl+cita$! intenta
buscar una solucin impl+cita# -uando d&olve retorna una solucin impl+cita!
indica una ad*ertencia# Si d&olve no puede encontrar una solucin ni impl+cita
ni e0pl+cita! da una ad*ertencia % retorna el s%m *ac+o# En tal caso! se puede
encontrar una solucin num>rica! usando las funciones M:EL:O ode23 u
ode45#
En al&unos casos in*olucrando ecuaciones no-lineales! la salida es una
ecuacin diferencial equi*alente de m/s ba'o orden o una inte&ral#
dsol*e(###!'?&nore:nal%tic-onstraints'!*alue$ acepta los si&uientes *alores1
3 *alue 2 'all' aplica simplificaciones puramente al&ebraicas a las
e0presiones sobre ambos lados de las ecuaciones# Estas simplificaciones
pueden no ser &eneralmente */lidas# El *alor default de esta opcin es all#
3 *alue 2 'none' resule*e EDs ordinarias sin suposiciones adicionales# Los
resultados obtenidos con esta opcin son correctos para todos los *alores de
los ar&umentos#
.ota1 )or default! el sol*er no &arantiza la correccin % completitud de los
resultados# Si no se pone la opcin MAnore,nalytic@on&traint& a none!siempre
*erifique los resultados retornados por el comando d&olve#
E0amples
Sol*in& Ordinar% Differential Equations S%mbolicall%
-so$.e(/0x = -(*x/)
(ns =
C2/exp((*)
Specif%in& tDe Dependent Variable
EDe follo<in& differential equation presents f as a dependent *ariable1
-so$.e(/0" = " + sin()/)
(ns =
C4*exp() - sin()/2 - cos()/2
Specif%in& tDe ?ndependent Variable
-so$.e(/(0y))2 + y)2 = 1/'/s/)
(ns =
1
-1
cos+(C7 + s*i)
cos+(C11 - s*i)
Settin& ?nitial and Ooundar% -onditions
-so$.e(/0y = (*y/' /y(0) = 1/)
(ns =
1*exp((*)
-so$.e(/02y = -()2*y/' /y(0) = 1/' /0y(pi/() = 0/)
(ns =
(1/exp((**i))/2 + exp((**i)/2
Sol*in& a S%stem of Differential Equations
! = -so$.e(/0x = y/' /0y = -x/)
! =
x& 21x1 sy*3
y& 21x1 sy*3
Enter z#0 and z#% to see tDe results1
!.x
(ns =
C20*cos() + C19*sin()
!.y
(ns =
C19*cos() - C20*sin()
Usin& tDe ?&nore:nal%tic-onstraints Option
O% default! tDe sol*er applies tDe set of purel% al&ebraic simplifications tDat are
not correct in &eneral! but tDat can result in simple and practical solutions1
y = -so$.e(/0y=1+y)2/'/y(0)=1/)
y =
(n(pi/4 + )
Eo obtain complete and &enerall% correct solutions! set tDe *alue of tDe option
?&nore:nal%tic-onstraints to none1
y = -so$.e(/0y=1+y)2/'/y(0)=1/'...
/#,nore4n($yicConsr(ins/'/none/)
y =
piece5ise(2C29 in 67' (n(pi/4 + + pi*C29)3)
EDe al&ebraic simplifications also allo< %ou to obtain solutions for tDe equations
tDat tDe sol*er cannot compute <Den it uses strict matDematical rules1
dsol*e('D*2]#J3*-4#44]J3*5"'!'*(4$2'$
ans 2
4444;(e0p(lo&(]]]]$ - (]V3t$;B$ 6 $
*ersus
dsol*e('D*2]#J3*-4#44]J3*5"'!'*(4$2'!###
'?&nore:nal%tic-onstraints'!'none'$
aarnin&1 )ossibl% spurious solutions 7sol*elib11cDecGSolutions8
ans 2
piece<ise(7-=V in Yb! ;(e0p(lo&(]]]]$ - (]V3t$;B 6###
"3pi3-=V3i$;4444 6 ;4444$8$
Dia&nostics
?f dsol*e cannot find an anal%tic solution for an equation! it prints tDe <arnin&1
aarnin&1 E0plicit solution could not be found#
and returns an empt% s%m ob'ect#
See :lso

Вам также может понравиться