Resolviendo el oscilador de Van der Pol con el m´etodo de Runge-Kutta de 4o orden. Cruz Daniel Garc´ıa Molina Departamento de F´ısica
1
Resumen
En este trabajo se resolver´a y analizar´a brevemente el problema de Van Der Pol implemetando el m´etodo de Runge Kutta IV escrito en FORTRAN 90.
2
Introducci´ on
La ecuaci´on de Van der Pol la plante´o un f´ısico e ingeniero Holand´es de nombre Balthasar Van der Pol, quien naci´o en Utrecht, en 1889 y muri´o en Wassenar en 1959. Van der Pol descubri´o una forma para describir una amplia variedad de sistemas din´amicos que presentan oscilaciones. Por ejemplo: el ondear de una bandera en el viento, el sonido producido por una gota de agua, la recurrencia peri´odica de fen´omenos sociales, el latido del coraz´on, etc. En general, la ecuaci´on que lleva su nombre describe un sistema oscilatorio con amortiguamiento no lineal, dicha ecuaci´on es la siguiente: dx d2 x − µ(1 − x2 ) + x = 0 2 dt dt
(1)
donde: x es la posici´on dependiente del tiempo t µ es un par´ametro escalar que indica el factor de amortiguamiento no lineal.
1
3
Caracter´ısticas del oscilador de relajaci´ on de van der Pol y sus soluciones
Como se comentaba en la introducci´on la ecuaci´on de Van der Pol aparece en la soluci´on de sistemas din´amicos oscilatorios amortiguados. Es decir, la ecuaci´on de Van der Pol sirve para describir pr´acticamente todos los sistemas oscilantes que se presentan en la naturaleza. El par´ametro µ se llama coeficiente de amortiguamiento no lineal porque este t´ermino es un indicador de como disminuye la rapidez con la que se mueve la part´ıcula oscilante, de aqu´ı lo de amortiguamiento, adem´as como en la ecuaci´on µ multiplica a (1 − x2 ), µ es entonces el “coeficiente de amortiguamiento no lineal” del oscilador. Por otro lado, es importante destacar que cuando µ = 0 se tiene el caso de un oscilador arm´onico, esto es: d2 x +x=0 (2) dt2 Cuya soluci´on es frecuentemente analizada en f´ısica por tener soluci´on algebr´aica y ser un buen modelo para representar inumerables sistemas f´ısicos de inter´es.
4
Metodolog´ıa para resolver la ecuaci´ on de van der Pol
Ahora, para resolver la ecuaci´on (1) se emplear´a el m´etodo de Runge Kutta de IV: Para un sistema de dos ecuaciones diferenciales de primer orden con condiciones iniciales dadas por: dy = f (x, y) dt y(to ) = yo
(3) (4)
El m´etodo esta dado por las siguientes ecuaciones: 1 yn+1 = yn + h(k1 + 2k2 + 2k3 + k4 ); xn+1 = xn + h 6 2
(5)
donde yn+1 es el valor de RK4 de y(xn+1 ) k1 = f (xn , yn ) 1 1 k2 = f (xn + h, yn + k1 h) 2 2 1 1 k3 = f (xn + h, yn + k2 h) 2 2 k4 = f (xn + h, yn + k3 h)
(6) (7) (8) (9)
donde: k1 es la pendiente al principio del intervalo; k2 es la pendiente en el punto medio del intervalo, usando la pendiente k1 para determinar el valor de y en el punto tn + h2 usando el m´etodo de Euler k3 es la pendiente del punto medio, pero ahora usando k2 para determinar el valor de y k4 es la pendiente al final del intervalo, con el valor de y determinado por k3 Al promediar las cuatro pendientes, la mayor parte del peso recae en el punto medio: La pendiente= 61 (k1 + 2k2 + 2k3 + k2 ) Como ya se pudo ver, para poder implementar dicho m´etodo, primero hay que separar la ecuaci´on diferencial de segundo orden en dos ecuaciones de primer orden, para ´esto: f1 = x ;
f2 = v =
dx dt
(10)
rescribiendo la ecuaci´on (1): dv = µ(1 − x2 )v − x dt
(11)
Luego de aqu´ı tenemos dX dy d = = dt dt dt
x v
!
f1 (x, v) f2 (x, v)
=
!
=
v µ(1 − x2 )v − x
!
(12)
La siguiente ecuaci´on es lo que se utiliza en el algoritmo: x=
x1 x2
!
=
x v
!
v µ(1 − x2 )v − x
=
3
!
=
dx dt
(13)
5
Resultados y discusi´ on
Las figuras (al final del documento) se obtuvieron al graficar los resultados obtenidos al aplicar el m´etodo analizado en la secci´on anterior antes mostrado mediante el programa en FORTRAN que puede revisarse en el Ap´endice. En las figuras (1), (3) y (5), se pueden apreciar curvas muy parecidas, en el sentido de que pr´aticamente todas las curavs son abiertas y convergen a una curva cerrada cuyo centro est´a en el origen. De ´esto se podr´ıa decir que cualquier movimiento oscilatorio frena los movimientos muy r´apidos y de grandes amplitudes y acelera los movimientos de peque˜ nas velocidades y amplitudes.
6
Conclusiones
Como se pudo observar el metodo de Runge Kutta de 4o orden sirve para resolver la ecuaci´on de Van der Pol. Es decir con este m´etodo se puede resolver en general cualquier problema oscilatorio con o sin amortiguaci´on. Aunque cabe de mencionar que resolver un sistema como el del oscilador arm´onico ser´ı desperdiciar el sistema de c´omputo.
4
7
Bibliograf´ıa
Comunidad Modificada por u ´ ltima vez 11 de noviembre de 2010 a las 18:25 Runge-Kutta methods - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Euler-Cromer_algorithm
Comunidad Modificada por u ´ ltima vez 30 de Octubre de 2010 a las 20:56. Van der Pol oscillator - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Van_der_Pol_oscillator
Special Symbols http://www.noao.edu/noaoprop/help/symbols/
Comunidad Evitar que LaTeX corte palabras al final de la l´ınea [Solucionado] u ´ ltima aportaci´on 29 de noviembre de 2008 http://www.esdebian.org/foro/27158/evitar-que-latex-cortepalabras-final-linea
5
Ap´ endice I (C´ odigo del programa en FORTRAN 90)
6
8
Ap´ endice I (C´ odigo del programa en FORTRAN 90)
Program rungekutta !metodo de runge kutta de orden 4 IMPLICIT NONE integer n, nstep, I, k real t, h REAL, DIMENSION(2) :: X character(9) :: nombredelarchivo n=2 t=0.0 h=0.01 nstep=10000 print*, "Condiciones iniciales x,v" read*, x print*, "nombre del archivo donde voy a guardar los datos" read*, nombredelarchivo open(15,file=nombredelarchivo,STATUS="UNKNOWN",ACTION="WRITE")
!
CALL RK4SYS(N,T,X,H,NSTEP) STOP CLOSE (15) END SUBROUTINE XPSYS(X,F) REAL :: MU REAL, DIMENSION (2) :: X,F MU = 5. F(1) = X(2) F(2) = MU * (1-X(1)**2)*X(2)-X(1) RETURN END SUBROUTINE RK4SYS(N,T,X,H,NSTEP) 7
DIMENSION X(2),Y(2),F1(2),F2(2),F3(2),F4(2) real t,h, h2,start integer k,n,i,nstep PRINT 7,T,(X(I),I=1,N) H2 = 0.5*H START = T DO 6 K = 1,NSTEP CALL XPSYS(X,F1) DO 2 I = 1,N Y(I) = X(I) + H2*F1(I) 2 CONTINUE CALL XPSYS(Y,F2) DO 3 I = 1,N Y(I) = X(I) + H2*F2(I) 3 CONTINUE CALL XPSYS(Y,F3) DO 4 I = 1,N Y(I) = X(I) + H*F3(I) 4 CONTINUE CALL XPSYS(Y,F4) DO 5 I = 1,N X(I) = X(I) + H*(F1(I) + 2.0*(F2(I) + F3(I)) + F4(I))/6.0 5 CONTINUE T = START + REAL(K)*H write (*,*) T,(X(I),I = 1,N) WRITE (15,*) T,(X(I),I = 1,N) ! CLOSE (15) 6 CONTINUE 7 FORMAT(2X,’T,X:’,E10.3,5(2X,E22.14)) RETURN CLOSE (15) END
8
Ap´ endice II (Instrucciones para elaborar las gr´ aficas)
9
9
Ap´ endice II (Instrucciones para elaborar las gr´ aficas)
Para elaborar las gr´aficas presentadas en el apartado de resultados y discusi´on basta con correr el programa que se encuentra escrito en el ap´endice anterior y dar diferentes condiciones iniciales al Problema. Una vez hecho esto, entrar a alg´ un programa graficador, por ejemplo el GNUPLOT y graficar los valores obtenidos en el programa. En el caso del GNUPLOT: directorio_donde_estan_los_datos$$$ gnuplot G N U P L O T Version 4.2 patchlevel 6 last modified Sep 2009 System: Linux 2.6.32-25-generic Copyright (C) 1986 - 1993, 1998, 2004, 2007 - 2009 Thomas Williams, Colin Kelley and many others Type ‘help‘ to access the on-line reference manual. The gnuplot FAQ is available from http://www.gnuplot.info/faq/ Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot> Terminal type set to ’wxt’ gnuplot> plot "./datos11", "./datos31" with dots gnuplot> set xlabel "tiempo (s)" gnuplot> set ylabel "Posicion (rad)" gnuplot> set title "Van der Pol mu=1 (X vs t)" gnuplot> set output "VanderPolmu1Xvst.eps" gnuplot> set term epslatex Terminal type set to ’epslatex’ Options are ’ leveldefault monochrome blacktext \ dashed dashlength 1.0 linewidth 1.0 butt \ palfuncparam 2000,0.003 \ noheader "" 11 ’ gnuplot> replot 10
warning: Resetting primary output file to ada.tex, PostScript output to ada.eps gnuplot> exit
Y ahora hay que repetir el proceso para cada una de los conjuntos de datos que arroj´o el programa en FORTRAN
11
Gr´ aficas
12
Figure 1: Van Der Pol,V vs X, Âľ = 0.2
13
Figure 2: Van Der Pol,X vs t, Âľ = 0.2
14
Figure 3: Van Der Pol,V vs X, Âľ = 1
15
Figure 4: Van Der Pol,X vs t, Âľ = 1
16
Figure 5: Van Der Pol,V vs X, Âľ = 5
17
Figure 6: Van Der Pol,X vs t, Âľ = 5
18