You are on page 1of 43

Prctica 1.

Aproximacin de PVI mediante


MATLAB. El mtodo de Euler.
Introduccin terica.
Un problema de alor inicial! PVI! re"ponde al "i#uiente planteamiento #eneral$
( )
( )
[ ] b a t
x x
x t f x
! !
%
! &
%

'

'omo "e (a i"to en teor)a el e"tudio de la exi"tencia * unicidad de "olucione" para e"te
tipo de ecuacione" di+erenciale" re,uiere de (erramienta" dier"a" * debe (acer"e mu*
detenidamente.
Podr)a parecer! por lo i"to en la practica %! ,ue MATLAB no" permite re"oler
cual,uier problema de alor inicial ra-onable ,ue "eamo" capace" de plantearno". E"to
no e" cierto. Para ilu"trar la" di+icultade" con la" ,ue no" encontramo" amo" a
con"iderar el "i#uiente e.ercicio$
E.ercicio. Intentar re"oler la" "i#uiente" ecuacione" di+erenciale" * obtener la
re"pue"ta ,ue proporciona MATLAB. Tratar de dibu.ar la "olucin obtenida! "i e" ,ue
"e obtiene al#una.

( )

'

1 %
/ "in0 &
x
x x
!
( )

'


1 %
&
1
x
e x
t
( )

'

+
% / % 0 &
1 %
% / "in0 & &
x
x
x x
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:edi"a
clear all
%daos de enrada
%#rograma principal
$%dsol&e'(D$%sin'$)(*($'+)%!(),
%salida
ezplo'$*-+*2+.)
Al e.ecutar e"te pro#rama! MATLAB intenta e"bo-ar una #r+ica de una 2"olucin3 ,ue
cuanto meno" e" inmane.able! por lo ,ue con"idero ,ue no merece la pena pla"marla.
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:edi"b
clear all
%daos de enrada
%#rograma principal
$%dsol&e'(D$%e$p'-/2)(*($'+)%!(),
%salida
ezplo'$*-+*2+.)
En e"te ca"o tambin da re"ultado! en +uncin de un +actor ,ue MATLAB tiene de+inido
* de"cono-co.
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:edi"c
clear all
%daos de enrada
%#rograma principal
$%dsol&e'(D2$0sin'$)%+(*($'+)%!(*(D$'+)%+(),
%salida
ezplo'$*-+*2+.)
Al e.ecutar el pro#rama da error! no e" capa- de encontrar "olucin.
En la re"olucin de e"to" PVI no "olamente +alla MATLAB "ino ,ue tambin lo (acen
el re"to de pro#rama" de clculo "imblico e inclu"o la ma*or)a de e"to" problema" no
admiten una re"olucin adecuada utili-ando la" tcnica" terica" u"uale".
La tcnica b"ica m" utili-ada para la re"olucin numrica de lo" PVI e" el mtodo de
Euler. E"te mtodo "e ba"a en eliminar el l)mite de lo" PVI a cambio de con"iderar un
pa"o ( pe,ue4o. E" decir! en lu#ar de con"iderar el PVI

( )
( )
[ ] b a t
x x
x t f x
! !
%
! &
%

'


tomamo" la expre"in e,uialente
( )
( )
( )

'

%
%
%
!
/ 0
lim
x x
x t f
h
t x h t x
h
de la ,ue! con"iderando ,ue ( e" "u+icientemente pe,ue4o! podemo" eliminar el l)mite *
,uedarno" con
( )
( )
( )

'

+
%
%
!
/ 0
x x
x t f
h
t x h t x

expre"in e"ta de la ,ue podemo" de"pe.ar
( ) h t x +
$
( ) ( ) ( )
( )

'

+ +
%
%
!
x x
x t hf t x h t x
E"ta +orma de proceder no" permite #enerar una "uce"in de alore" ,ue "e aproximan a
la "olucin del PVI de partida. E"ta "uce"in "e con"tru*e con"iderando en primer lu#ar
un ( determinado. A continuacin "e determina el n5mero de punto"
h
a b
N

*
+inalmente "e con"tru*e la "uce"in
( )

'

+
+
dado x
x t hf x x
i i i i
%
1
!
cu*o" alore" aproximarn a la "olucin exacta! e" decir
i i
x t x / 0
para lo" alore" de
tiempo
. !...! 1 ! % ! N i ih a t
i
+
Ejemplos de aplicacin del mtodo de Euler.
Vamo" a empe-ar a ilu"trar la aplicacin del mtodo de Euler a ecuacione" ,ue
podemo" re"oler tericamente. E"to no" po"ibilitar comparar con la "olucin exacta.
'on"iderar el PVI
1
01/ 1
x
x

'

con
61! 78 t
En primer lu#ar (emo" de (acer un e"tudio terico de e"te PVI para e"tar "e#uro" de ,ue
la "olucin e"t bien de+inida * e" 5nica.
E.ercicio. 9u"ti+icar de manera terica ,ue el PVI anterior tiene "olucin 5nica.
E+ectiamente! la +uncin ( ) ! 1. f t x
e" continua en la banda en ,ue e"t de+inida el
problema! 61!78xR por lo ,ue aplicando Peano tenemo" #arant)a de exi"tencia local de
"olucin. La deriada re"pecto de x de f(t,x) e" nula! * por tanto triialmente continua *
acotada! por lo ,ue aplicando lo" teorema" de Picard! primero local * #lobal de"pu"
tenemo" a"e#urada! .unto con lo anterior! la exi"tencia de "olucin #lobal 5nica.
Una e- e"tablecido por procedimiento" terico" ,ue la "olucin de e"te PVI exi"te * e"
5nica amo" a aplicar el mtodo de Euler
( )
1
%
!
1
i i i i
x x hf t x
x
+
+

'

con ( ) ! 1. f t x
Un e.emplo de pro#rama ,ue implementa e"te procedimiento e" el "i#uiente
1
$
1
En el siguiente programa se define la funcin f en trminos de 2 ariables, aun!ue en realidad en este
caso es una constante. "e puede definir sin ning#n problema funciones como "%1')-/2.2 Es
coneniente sin embargo mantener la definicin de f como funcin de dos ariables en preisin de !ue
posteriormente podamos usar la orden ode2$. El uso de esta orden se ilustra en las p%ginas siguientes.
%M3odo de 4uler para la resoluci5n apro$imada del problema
% $(%!, $'!)%2 en el iner&alo -!*6.
clear all %recordar 7ue esa senencia es imprescindible siempre

%daos
a%!,
b%6,
8%+2!,
N%'b-a)98,
'!)%a,
$'!)%2,
"%1'*$)-!., %4sos son nuesros daos de enrada2 4s con&eniene
%adopar siempre esa noaci5n2
%N5ese 7ue para cambiar
%por e:emplo el iner&alo basa con cambiar el &alor de a o
%b al principio* por ano se pueden 8acer cambios
% en los daos sin cambiar el cuerpo del programa2
%#ara modi"icar el &alor de " basa con de"inirla de ora
%"orma2
%programa
"or ;%!:N
';0!)%';)08,
$';0!)%$';)08<"'';)*$';)),
end
%salida
8old on
plo'*$*(<() % soluci5n apro$imada
z%dsol&e'(Dz%!(*(z'!)%2(), %soluci5n e$aca
ezplo'z*-a*b.)
8old o""
:b"re"e ,ue "e calcula la ariable
t
en el mi"mo bucle ,ue la ariable x
1
.
:b"re"e tambin ,ue en e"te ca"o * excepcionalmente la "olucin exacta coincide con
la aproximada. E" decir en al#uno" ca"o" el error cometido al aplicar el mtodo de Euler
e" cero. El re"ultado de e"te pro#rama e" la "i#uiente #r+ica.
1
Esto no es obligatorio pero s& !ue es coneniente para asegurar !ue ambas ariables se almacenan en
ectores de la misma dimensin !ue posteriormente puedan ser representados conjuntamente con la
orden plot.
1 1.5 2 2.5 3 3.5 4 4.5 5
2
2.5
3
3.5
4
4.5
5
5.5
6
t
t+1
E.ercicio$ ;e"oler
<
mediante el al#oritmo de Euler el "i#uiente PVI$

( )

'

1 %
&
x
t x
con
[ ]. < ! % t
Tomar (=%.7. >ibu.ar en una mi"ma #r+ica la "olucin exacta ,ue proporciona la orden
d"ole * la "olucin aproximada en la mi"ma #r+ica. ?E" en e"te ca"o cero el error
cometido@ ?E" apreciable la di+erencia entre la "olucin exacta * la aproximada@
A

7
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:eulera
clear all
%daos
a%+,
b%=,
8%+26,
N%'b-a)98,
'!)%a,
$'!)%!,
"%1'*$)-.,
%programa
"or ;%!:N
';0!)%';)08,
$';0!)%$';)08<"'';)*$';)),
end
%salida
8old on
plo'*$*(<() % soluci5n apro$imada
z%dsol&e'(Dz%(*(z'+)%!(), %soluci5n e$aca
ezplo'z*-a*b.)
8old o""
<
'esoler en este caso !uiere decir plantear el algoritmo a partir del ()I * desarrollar el programa
+,-.,/ !ue permite calcular la solucin aproximada. 0ibujar posteriormente la solucin en el
interalo considerado.
A
Es mu* coneniente ser cuidadoso cuando se aproecha un programa correspondiente a un problema
para resoler otro. ,dem%s de modificar la funcin f ha* !ue ajustar de nueo el interalo, el paso, el
dato inicial, la orden para obtener la solucin exacta,1.
7
2n comentario interesante es !ue +,-.,/ no permite definir la componente cero de un ector, por
tanto no se puede escribir x(3)45 sino !ue tendremos !ue escribir x(5)45 para introducir el dato inicial.
(or tanto, dentro del programa +,-.,/, lo !ue aparece dentro del parntesis no es el alor
del tiempo sino el alor de la componente del ector x donde se almacena la cantidad deseada.
E" apreciable ,ue el error no e" nulo * ,ue "e puede ob"erar la di+erencia a "imple i"ta
entre la aproximacin por Euler * la "olucin exacta.
E.ercicio$ Bacer lo mi"mo ,ue en el e.ercicio anterior con el PVI$
"in0 /
0%/ 1
x t
x

'

con
6%! 1 8 t
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:eulerb
clear all
%daos
a%+,
b%2<pi,
8%+26,
N%'b-a)98,
'!)%a,
$'!)%!,
"%1'*$)-sin').,
%programa
"or ;%!:N
';0!)%';)08,
$';0!)%$';)08<"'';)*$';)),
end
%salida
8old on
plo'*$*(<() % soluci5n apro$imada
z%dsol&e'(Dz%sin')(*(z'+)%!(), %soluci5n e$aca
ezplo'z*-a*b.)
8old o""
E.ercicio$ Bacer lo mi"mo ,ue en lo" e.ercicio" anteriore" con el PVI$
1
"in0 /
0%/ 1
x t
x

'

con
6%! 1 8 t
?Ce obtiene al#5n men"a.e de error en la con"ola@?A ,u e" debido@ ?Dunciona el
mtodo de Euler@?Dunciona la orden d"ole@
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:eulerc
clear all
%daos
a%+,
b%2<pi,
8%+26,
N%'b-a)98,
'!)%a,
$'!)%!,
"%1'*$)-sin'/2).,
%programa
"or ;%!:N
';0!)%';)08,
$';0!)%$';)08<"'';)*$';)),
end
%salida
8old on
plo'*$*(<() % soluci5n apro$imada
z%dsol&e'(Dz%sin'/2)(*(z'+)%!(), %soluci5n e$aca
ezplo'z*-a*b.)
8old o""
E+ectiamente! aparece un error por pantalla. El mtodo de Euler +unciona! pue" al
comentar la parte ,ue a+ecta al clculo * repre"entacin de la "olucin exacta "e obtiene
re"ultado del pro#rama un con.unto catico de punto" 2cerca3 de lo" cuale" deber)a
pa"ar la #r+ica!
Cin embar#o! el problema "e blo,uea al intentar (allar la "olucin exacta! ,ue por otro
lado ob"eramo" ,ue el anli"i" terico no" a"e#ura ,ue exi"te * e" 5nica. MATLAB no
e" capa- de re"oler la ecuacin di+erencial exactamente.
67u hacer cuando no funciona la orden dsole8
Vamo" a e"tudiar detenidamente el 5ltimo e.ercicio de la p#ina anterior$
1
"in0 /
0%/ 1
x t
x

'

con
6%! 1 8 t
La primera ob"eracin e" ,ue la orden d"ole de MATLAB no e" capa- de obtener la
"olucin exacta de e"te "i"tema.
En e"to" ca"o" MATLAB no" proporciona un procedimiento para aproximar
numricamente la "olucin. E"te nueo procedimiento iene dado por la orden Eode1<F
* proporciona aproximacione" de PVI muc(o m" preci"a" ,ue el mtodo de Euler
G
.
Utili-aremo" e"te procedimiento con do" ob.etio"$ El primero e" di"poner de una orden
MATLAB ,ue no" aproxima rpidamente * de +orma mu* preci"a la "olucin de PVI
,ue no pueden "er re"uelto" con la orden Ed"oleF. Por otro lado no" permitir tener una
(erramienta preci"a con la ,ue comparar lo" re"ultado" obtenido" de utili-ar mtodo" de
ba.a preci"in como e" el mtodo de Euler.
Vamo" a ilu"trar la orden EodeF con el e.emplo
1
"in0 /
0%/ 1
x t
x

'

con
6%! 1 8 t
Para ello ba"ta introducir en MATLAB la orden
ode1<0E+uncinF!FinteraloF!Fdato inicialF/
G
0e hecho la orden 9ode2$: utili;a un algoritmo de 'unge<=utta de cuarto orden !ue explicaremos m%s
adelante.
Veamo" como "e utili-a la orden ode1<
H
en el "i#uiente pro#rama. Al e.ecutar
clear all
"%1'*$)-sin'/2).,
ode2='"*-+*2<pi.* !)
obtenemo" la #r+ica
I

E.ercicio$ ;e"oler mediante el al#oritmo de Euler el "i#uiente PVI$

1
"in0 /
0%/ 1
x t
x

'

con
6%! 1 8 t
Tomar (=%.7. >ibu.ar en una mi"ma #r+ica la "olucin aproximada obtenida por el
mtodo de Euler * la "olucin tambin aproximada ,ue proporciona MATLAB
H
Ntese !ue aun!ue la funcin del ()I enga dada en trminos de una sola ariable la funcin !ue ha*
!ue introducir en la orden ode2$ ha de haber sido definida en trminos de 2 ariables.
I
Ntese !ue al ejecutar la orden ode2$ +,-.,/ elige autom%ticamente el paso * llea a cabo la
gr%fica.
mediante la orden ode1<. ?E" apreciable la di+erencia entre la "olucin exacta * la
aproximada@ ?Ju pa"a "i ba.amo" el pa"o (@
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:eulode!
clear all
%daos
a%+,
b%2<pi,
8%+26,
N%'b-a)98,
'!)%a,
$'!)%!,
"%1'*$)-sin'/2).,
%programa
"or ;%!:N
';0!)%';)08,
$';0!)%$';)08<"'';)*$';)),
end
%salida
8old on
plo'*$*(<() % soluci5n apro$imada
ode2='"*-+*2<pi.* !),
8old o""
En ro.o tenemo" lo" punto" ,ue no" da el mtodo de Euler. Ci ba.amo" el pa"o a (=%.1
0no copio el cdi#o al "er exactamente i#ual "alo el dato del pa"o/! obtenemo" la
#r+ica
:b"eramo" ,ue (emo" obtenido una aproximacin m" preci"a
E.ercicio +inal$ Aproximar la "olucin del PVI
1
0%/ 1
x x
x

'

con
6%! 18 t
Mediante un al#oritmo de Euler. Tomar (=%.1. 'omparar la "olucin obtenida tanto con
la "olucin exacta como con la "olucin ,ue proporciona la orden ode1<.
?'mo "e interpreta la #r+ica obtenida@ ?Con Elido"F lo" re"ultado" obtenido"@
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:eulode2
clear all
%daos
a%+,
b%2,
8%+22,
N%'b-a)98,
'!)%a,
$'!)%!,
"%1 '*$) -$/2.,
%programa
"or ;%!:N
';0!)%';)08,
$';0!)%$';)08<"'';)*$';)),
end
%salida
8old on
plo'*$*(r<() % soluci5n apro$imada
ode2='"*-+*2.* !),
z%dsol&e'(Dz%z/2(*(z'+)%!(), %soluci5n e$aca
ezplo'z*-a*b.)
8old o""
>e nueo en punto" ro.o" la aproximacin ,ue da Euler! con c)rculo" la ,ue da la orden
ode1< * en tra-o continuo la "olucin exacta.
Ce ob"era ,ue como el e"tudio (a comen-ado en %! la" aproximacione" numrica" (an
tendido a "e#uir la rama i-,uierda de la (iprbola! a la ,ue "e (ab)an aproximado de"de
un primer momento. >e a() ,ue no podamo" +iarno" dema"iado de la aproximacin
numrica una e- no" acercamo" a la di"continuidad. :b"eramo" tambin ,ue la dada
por la ode1< e" una aproximacin muc(o me.or ,ue la obtenida por el mtodo de Euler.
,plicacin del mtodo de Euler a ecuaciones
diferenciales de segundo orden.
E" mu* (abitual en +)"ica e in#enier)a con"iderar ecuacione" di+erenciale" de "e#undo
orden. A continuacin amo" a er como aproximar al#una" de la" ecuacione"
di+erenciale" de "e#undo orden m" intere"ante" tanto de"de el punto de i"ta +)"ico
como matemtico$
El oscilador armnico.
'on"ideremo" el "i#uiete PVI$
%
0%/ %
0%/ 1
x x
x
x
+

'

con
6%! 1 8 t

A e"ta ecuacin "e la conoce con el nombre de :"cilador Armnico * modeli-a por
e.emplo la ibracin de un muelle.
Para re"oler e"te PVI (emo" de pa"ar de una ecuacin de "e#undo orden a do"
ecuacione" de primer orden. Llamando
0 / x * x x *

Por tanto el "i"tema de ecuacione" di+erenciale"
x *
* x

'

e,uialente a % x x + .
La" condicione" iniciale" "e tran"+orman de la "i#uiente +orma$

0%/ % 0%/ %
0%/ 1 0%/ 1
x x
x *

' '


Una idea e" aplicar la aproximacin de Euler a la" do" ecuacione" obtenida" por
"eparado$

'

1 / % 0
% / % 0
&
&
*
x
x *
* x
,ue #eneran lo" do" al#oritmo" "i#uiente"$

'


+
+
+
1
% !
% 1
% 1
* hx * *
x h* x x
i i i
i i i
,ue (an de re"oler"e a la e-.
Podemo" con"iderar el "i#uiente pro#rama$
%Aplicamos el m3odo de 4uler a la resoluci5n apro$imada del problema:
% $((0$%+, $'+)%+, $('+)%!2 >scilador arm5nico2
clear all
%daos
a%+,
b%2<pi,
8%+2+6,
N%'b-a)98,
'!)%a,
$'!)%+,
y'!)%!,
%programa
"or ;%!:N
';0!)%';)08,
$';0!)%$';)08<y';),
y';0!)%y';)-8<$';),
end
%salida
8old on
plo'*$*(r()
z%dsol&e'(D2$0$%+(*($'+)%+(*(D$'+)%!()
ezplo'z*-+*2<pi.)
8old o""
E.ecutamo" * tenemo" la" "i#uiente" #r+ica"$
0 1 2 3 4 5 6
-1
-0.5
0
0.5
1
t
sin(t)
Vamo" a dibu.ar a(ora el dia#rama de la" +a"e"! ,ue puede (acer"e dibu.ando
i
x
contra
.
i
*
%Diagrama de las "ases del oscilador armonico2
clear all
%daos
a%+,
b%2<pi,
8%+2+6,
N%'b-a)98,
'!)%a,
$'!)%+,
y'!)%!,
%programa
"or ;%!:N
';0!)%';)08,
$';0!)%$';)08<y';),
y';0!)%y';)-8<$';),
end
%salida
8old on
plo'$*y*(r()
8old o""
:btenemo" la #r+ica$
-1.5 -1 -0.5 0 0.5 1 1.5
-1.5
-1
-0.5
0
0.5
1
1.5
E"ta #r+ica no "e cierra por lo" errore" numrico"! "in embar#o tomando el pa"o ( m"
pe,ue4o obtenemo" ,ue la circun+erencia lle#a a cerrar"e.
E.ercicio$ :btener por tanteo un alor del pa"o ( tal ,ue e"ta #r+ica "e cierre.
Cimplemente o* ariando el alor del pa"o h! por lo ,ue no copio el cdi#o.
:b"eramo" ,ue para h43.335!

:tra opcin para llear a cabo el mtodo de Euler ,ue re"ulta m" "i"temtica e" utili-ar
una notacin ectorial.
En e+ecto! con"ideremo" de nueo el o"cilador armnico e"crito en +orma de "i"tema$
&
&
0%/ %
0%/ 1
x *
* x
x
*

'

Podemo" e"cribir el "i"tema en +orma matricial$


( )
( )
&
% 1
1 %
%
%
1 %
x x
* *
x
*
_ _ _

, , ,
_
_




,
,
o e,uialentemente
( )
&
%
%
1
> ,>
>

_
'

,
con

,
_

*
x
>
*
% 1
1 %
,
_

,
Al aplicar el mtodo de Euler expl)cito a e"te "i"tema obtenemo"
!
1 i i i
h,> > > +
+
o e,uialentemente
( ) .
1 i i
> h, I > +
+
Podemo" utili-ar el "i#uiente pro#rama para llear a cabo e"ta aproximacin numrica
en +orma matricial$
%4uler maricial
clear all
%daos
a%+,
b%!+, %?omamos por e:emplo en iner&alo emporal -+*!+.
'!)%a,
A%-+*!,-!*+.,
@'!*!)%+,
@'2*!)%!,
8%+2!,
N%'b-a)98,
%programa
"or i%!:N
'i0!)%'i)08,
@':*i0!)%'eye'2)08<A)<@':*i)
end
8old on
plo'*@'!*:)) % esa es la gr"ica de la soluci5n $
plo'*@'2*:)*(r()%esa es la gr"ica de la deri&ada de la soluci5n y2
%4n ese caso 8emos opado por dibu:ar ambas pares
%de la soluci5n en la misma gr"ica2
8old o""
,ue no" llea a la "i#uiente #r+ica.
E.ercicio$ Bacer un pro#rama MATLAB ,ue compare la "olucin obtenida! "olo x! en el
e.emplo anterior con la "olucin exacta ,ue proporciona la orden d"ole.
'omparar po"teriormente tambin con la "olucin ,ue proporciona la orden ode1<.
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:eulerma
clear all
%daos
a%+,
b%!+,
'!)%a,
A%-+*!,-!*+.,
@'!*!)%+,
@'2*!)%!,
8%+2!,
N%'b-a)98,
%programa
"or i%!:N
'i0!)%'i)08,
@':*i0!)%'eye'2)08<A)<@':*i),
end
z%dsol&e'(D2$0$%+(*($'+)%+(*(D$'+)%!(),
%salida
8old on
plo'*@'!*:)*(r()
ezplo'z*-a*b.)
8old o""
:bteniendo al e.ecutarlo!
Para comparar el re"ultado obtenido por el mtodo matricial de Euler con el dado por la
orden ode 1< u"amo" el "i#uiente pro#rama!
Le introdu-co el "i"tema en una +uncin aparte! en un +ic(ero .m! para de"pu" llamarla
de"de el pro#rama principal$
"uncion -z.%sis'*y)
z%zeros'2*!),
z'!)%y'2),
z'2)%-y'!),
El pro#rama principal e"!
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica: !
%nombre del programa: odeABeul
clear all
%daos
a%+,
b%2<pi,
'!)%a,
A%-+*!,-!*+.,
@'!*!)%+,
@'2*!)%!,
8%+2!, %e&io 8Cs ms pe7ueDos para 7ue la di"erencia sea apreciable
N%'b-a)98,
%programa
"or i%!:N
'i0!)%'i)08,
@':*i0!)%'eye'2)08<A)<@':*i),
end
-m*n.%ode2='1sis*-+*2<pi.*-+,!.),
%salida
8old on
plo'*@'!*:)) % en azul soluci5n 4uler
plo'm*n':*!)*(r() %en ro:o soluci5n ode2=
8old o""
0 1 2 3 4 5 6 7
-1.5
-1
-0.5
0
0.5
1
1.5
El oscilador armnico amortiguado
E.ercicio$ 'on"ideremo" a(ora el "i"tema$
%.1 %
0%/ 7
0%/ %
x x x
x
x
+ +

'

con
6%! < 8 t

Jue "e conoce con el nombre de o"cilador armnico amorti#uado o con di"ipacin.
Proceder i#ual ,ue en el ca"o del o"cilador armnico * aplicar el mtodo de Euler 0en
+orma matricial/ para obtener una repre"entacin de la "olucin
x
.
Po"teriormente (acer otro pro#rama ,ue permita obtener el dia#rama de la" +a"e"
utili-ando el mtodo de Euler.
Tomar di+erente" alore" del pa"o (
K
* comentar lo" re"ultado" obtenido".
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:>AA
clear all
%daos
a%+,
b%=<pi,
'!)%a,
A%-+*!,-!*-+2!.,
@'!*!)%6,
@'2*!)%+,
8%+26,
N%'b-a)98,
%programa
"or i%!:N
'i0!)%'i)08,
@':*i0!)%'eye'2)08<A)<@':*i),
end
8old on
plo'*@'!*:))
8old o""
K
Tomar por e.emplo (=%.7! (=%.%7 * (=%.%%1.
Clo modi+icando la l)nea del cdi#o anterior plo'*@'!*:)) por
plo'@'!*:)*@'2*:)) obtenemo" el dia#rama de +a"e".
Modi+ico el alor del pa"o ( por lo" indicado" * obten#o la" "i#uiente" #r+ica" de
"olucin aproximada * dia#rama de +a"e" re"pectiamente$
h43.3?
h43.335
:b"eramo" cmo al (acer tender ( a % tenemo" una me.ora en la "uaidad * la
preci"in del al#oritmo! pue" MATLAB di"pone de m" punto" intermedio" para
di"e4ar la repre"entacin de la "olucin numrica.
@scilador armnico for;ado.
Ce conoce con e"te nombre a un "i"tema como el "i#uiente$
%.1 "in01 /
0%/ 7
0%/ %
x x x t
x
x
+ +

'


6%! < 8 t

E.ercicio$ Proceder i#ual ,ue en el e.ercicio anterior.
Ce pre"enta la "olucin del mtodo de Euler * lo" dia#rama" de +a"e" corre"pondiente".
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica:!
%nombre del programa:>AE
clear all
%daos
a%+,
b%=<pi,
'!)%a,
A%-+*!,-!*-+2!.,
@'!*!)%6,
@'2*!)%+,
8%inpu '(Dame el 8 (),
N%'b-a)98,
%programa
"or i%!:N
'i0!)%'i)08,
@'!*i0!)%'-! +.08<-+ !.)<@':*i),
@'2*i0!)%'-+ !.08<--! -+2!.)<@':*i)08<sin'2<'i)),
end
plo'*@'!*:))
Anlo#amente a como "e (i-o ante"! repre"entamo" la primera +ila de la matri- +rente a
la "e#unda para obtener el dia#rama de +a"e"!
(=%.7
0 1 2 3 4 5 6 7 8 9
-15
-10
-5
0
5
10
15
20
-15 -10 -5 0 5 10 15 20
-25
-20
-15
-10
-5
0
5
10
15
Tomando di"tinto" alore" de ( obtenemo" nuea" repre"entacione"! en principio m"
exacta" ,ue la" i"ta" anteriormente * ,ue pueden cambiar muc(o la apariencia del
dia#rama$
(=%.%7
0 1 2 3 4 5 6 7 8 9 10
-5
-4
-3
-2
-1
0
1
2
3
4
5
-5 -4 -3 -2 -1 0 1 2 3 4 5
-6
-4
-2
0
2
4
6
(=%.%%1
0 1 2 3 4 5 6 7 8 9 10
-5
-4
-3
-2
-1
0
1
2
3
4
5
-5 -4 -3 -2 -1 0 1 2 3 4 5
-5
-4
-3
-2
-1
0
1
2
3
4
5
El oscilador de )an der (ol
Ce conoce con e"te nombre el o"cilador
1
01 / %
0%/
0%/ %
x x x x
x
x

+ +

'


6%! < 8 t
E.ercicio$ Proceder i#ual ,ue en el e.ercicio anterior tomando %.1 .
1%
*
1.
MATLAB no e" capa- de re"oler e"te "i"tema mediante la orden d"ole! por lo ,ue
para comparar con el mtodo de Euler 0en e"te ca"o! no el matricial "ino el expl)cito/
o* a meter la "olucin dada por ;un#e Lutta mediante la orden ode1<
Para ello debo empe-ar de+iniendo en un arc(io .m independiente el "i"tema
"uncion -z.%sis!'*y)
z%zeros'2*!),
z'!)%y'2),
z'2)%-y'!)02!<y'2)<'y'!)/2-!),
M ten#o mi pro#rama principal
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo: A2
%Nmero de la prcica: !
%nombre del programa: Ad#
clear all
%daos
a%+,
b%=<pi,
'!)%a,
$'!)%!,
y'!)%+,
8%inpu'(Dame el 8 (),
N%'b-a)98,
%programa
"or i%!:N
'i0!)%'i)08,
$'i0!)%$'i)08<y'i),
y'i0!)%y'i)08<'-$'i)02!<y'i)<'$'i)/2-!)),
end
-m*n.%ode2='1sis!*-+*=<pi.*-!,+.),
%salida
8old on
plo'*$) %soluci5n 4uler en azul
plo'm*n':*!)*(g(),%soluci5n ode2= en &erde
8old o""
1%
Ntese !ue el oscilador de )an der (ol inclu*e un par%metro, !ue hemos denotado por
!
de forma
!ue si % este oscilador se reduce al oscilador armnico. , medida !ue tomamos un alor del
par%metro ma*or amos obteniendo un comportamiento del osicilador m%s asimtrico.
>ando como re"ultado para (=%.7
0 1 2 3 4 5 6 7 8 9 10
-3
-2
-1
0
1
2
3
4
5
6
:b"eramo" ,ue la aproximacin de Euler e" mu* mala! pue" no" con"ta del e"tudio
terico ,ue la dada por ;un#e Lutta e" muc(o me.or * la de Euler ,ueda mu* ale.ada.
Veamo" "i di"minu*endo el pa"o me.ora la "ituacin!
(=%.%7
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
E+ectiamente la aproximacin dada por Euler me.ora * "e acerca a la "olucin
(=%.%%1
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
En e"te ca"o "on ca"i indi"tin#uible".
;epre"entando x contra * obtenemo" lo" dia#rama" de +a"e". >e nueo para lo" alore"
de ( %.7! %.%7 * %.%%1.

-3 -2 -1 0 1 2 3 4 5 6
-20
-15
-10
-5
0
5
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
E.ercicio$ >ibu.ar el dia#rama de la" +a"e" para el o"cilador de Van der Pol de +orma
,ue "e obten#a "imultneamente la #r+ica de aria" "olucione" particulare"! e" decir
al#o "imilar a la "i#uiente #r+ica
11
$
-3 -2 -1 0 1 2 3 4 5
-4
-3
-2
-1
0
1
2
3
4
11
Ntese !ue para obtener la figura se han utili;ado los alores iniciales (5,3) (2,3) ($,3) * (?,3) * se ha
dibujado para cada dato inicial la tra*ectoria correspondiente a la solucin !ue empie;a en este punto.
Tomar lo" ca"o"
%! %.1! %.7
* 1 * llear a cabo lo" dia#rama" de la" +a"e" en
#r+ica" "eparada".
El pro#rama ,ue permite dibu.ar el dia#rama de +a"e" del o"cilador de Van der Pol e"
%Nombre del alumno: Mario Daz-Romeral Ruiz
%Curso y grupo:A2
%prcica: !
%nombre del programa: Ad#2
clear all
%daos
a%+,
b%=<pi,
8%+2++!,
N%'b-a)98,
au$%(B(,
;%+,
F8ile 'G'au$%%(N())
$';0!*!)%inpu'(Dame la abscisa condici5n inicial (),
$';02*!)%+,
;%;02,
au$%inpu'(Huieres dar oro &alor inicial para represenar
simulneameneI B9N (),
end
e%inpu'(Da el 4psilon (),
%programa
"or i%!:;
'!)%a,
i" mod'i*2)%%!
"or :%!:N
':0!)%':)08,
$'i*:0!)%$'i*:)08<$'i0!*:),
$'i0!*:0!)%$'i0!*:)-8<'$'i*:)0e<$'i0!*:)<'$'i*:)/2-!) ),
end
end
end
%salida
"ormao%-(g(*(y(*(b(*(r(*(c(*(m(*(;(.,%&ecor au$iliar para 7ue &aya
omando colores
8old on
"or i%!:;
i" mod'i*2)%%!
plo'$'i*:)*$'i0!*:)*"ormao'mod''i0!)92*J)))
end
end
8old o""
Vo* metiendo lo" dato" numrico" en una matri-! en la ,ue la" +ila" impare" "on la"
ab"ci"a" * la" pare" la" ordenada" corre"pondiente" a la" ab"ci"a" de la +ila
inmediatamente anterior. Lue#o la" o* pintando do" a do" tomando di"tinto" colore".
'omo e.emplo! tomo el dia#rama en ,ue pinto ab"ci"a" iniciale" 1!1!<!A! para lo"
Ep"ilon "u#erido"
-5 -4 -3 -2 -1 0 1 2 3 4 5
-5
-4
-3
-2
-1
0
1
2
3
4
5
-3 -2 -1 0 1 2 3 4
-4
-3
-2
-1
0
1
2
3
-3 -2 -1 0 1 2 3 4
-2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5

You might also like