Oscilador Armónico desde el punto de vista de la mecánica clásica

Gráficas paramétricas

Antes de trabajar con el oscilador armónico, vamos a hacer unas gráficas paramétricas ya que trabajaremos en el espacio fase.

Para hacer gráficas paramétricas se utiliza el comando ParametricPlot[{x(t),y(t)},{t,inicio,final}]. En donde debemos tener dos funciones que dependen de un mismo parámetro. En este ejemplo hemos usado a (x, y) que dependen del parámetro t.

A continuación se tienen varios ejemplos para generar gráficas paramétricas

ParametricPlot[{Cos[teta],Sin[teta]},{teta,0,2Pi},AspectRatio->1]

ParametricPlot[{3Cos[teta]^3,3Sin[teta]^3},{teta,0,2Pi},AspectRatio->1]

ParametricPlot[{Cos[teta],Cos[teta]Sin[teta]},{teta,0,2Pi},AspectRatio->1]

La versión 6.0 de Mathematica permite realizar gráficas en donde se puede variar una variable y ver de manera instantánea su impacto sobre la gráfica. Para hacer esto se usa el comando Manipulate. A continuación haremos una gráfica donde la varible a representa el valor máximo que puede tomar el parámetro t.

Manipulate[ParametricPlot[{3(t-Sin[t]),3(1-Cos[t])},{t,0,a},AspectRatio->0.4,PlotRange->{{0,60},{0,6}}],
{a,0.01,25}]

Manipulate[ParametricPlot[{Exp[t]Cos[t],Exp[t]Sin[t]},{t,0,a},PlotRange->{{-40,900},{-200,1000}}],{a,.1,8}]

Ejercicio :

Si un cuerpo se mueve con v0x = 10 m/s, x0 = 0, v0y = 20 m/s, y0 = 10 en ausencia del aire. Haga una gráfica de y vs x para un intervalo de tiempo de 30 s.

Oscilador Armónico

Lo primero que haremos será resolver las ecuaciones de Newton cuando la fuerza es F = -k*x. A continuación usaremos el parámetro w0 que definimos en la clase de teoría

solucion=DSolve[{x''[t]+w0^2*x[t]==0,x[0]==x0,x'[0]==v0},x[t],t]

Simplify[solucion]

Con esta solcució definiremos una función, x, que por conveniencia dependerá del tiempo (t), la w0, la posición inicial(x0) y la velocidad inicial (v0)

x[t_,w0_,x0_,v0_]=x0 Cos[t w0]+((v0 Sin[t w0])/w0)

Por supuesto que la velocidad se obtiene directamente al derivar la posición con respecto al tiempo

velocidad=D[x[t,w0,x0,v0],t]

y con esto definimos a la función que representa la velocidad del móvil

v[t_,w0_,x0_,v0_]=v0 Cos[t w0]-w0 x0 Sin[t w0]

Hagamos las gráficas de la posición y la velocidad suponiendo que k = 1, m = 1, x0=0.1 y v0=0

k=1.;
m=1.;
Plot[x[t,Sqrt[k/m],0.1,0],{t,0,3Pi},AxesLabel->{"t","x"}]

Plot[v[t,Sqrt[k/m],0.1,0],{t,0,3Pi},AxesLabel->{"t","v"}]

Evidentemente el comportamiento de estas funciones dependerá de los diferentes valores que tenga w0

Manipulate[Plot[x[t,w0,x0,v0],{t,0,6Pi},AxesLabel->{"t","x"},PlotRange->{-1,1}],{w0,0.1,2},{x0,0,1},{v0,0,1}]

Manipulate[Plot[v[t,w0,x0,v0],{t,0,6Pi},AxesLabel->{"t","v"},PlotRange->{-1,1}],{w0,0.1,2},{x0,0,1},{v0,0,1}]

Es claro que podemos estar interesados en una gráfica de v vs x, para lo cual el comando ParametricPlot es muy útil

ParametricPlot[{x[t,Sqrt[k/m],0.1,0.],v[t,Sqrt[k/m],0.1,0.]},{t,0,2Pi},AspectRatio->1,AxesLabel->{"x","v"}]

De acuerdo a lo discutido en la clase de teoría podemos encontrar las componentes de la energía al multiplicar las ecuaciones de Newton por la velocidad e integrar el resultado con respecto al tiempo

Clear[k,m]

energia=Integrate[x'[t]*(m*x''[t]+k*x[t]),t]

De este resultado definimos a la función que representa a la energía cinética

cinetica[t_,w0_,x0_,v0_]=(1/2)* m*v[t,w0,x0,v0]^2

y a la que representa a la energía potencial

potencial[t_,w0_,x0_,v0_]=(1/2)*k*x[t,w0,x0,v0]^2

Con esto podemos ver cómo varian estas componentes de la energía con respecto al tiempo

m=1.;k=1.;

Plot[cinetica[t,Sqrt[k/m],0.1,0],{t,0,2*Pi}]

Plot[potencial[t,Sqrt[k/m],0.1,0],{t,0,2*Pi}]

Sin embargo, también podemos hacer un gráfico de cinética vs velocidad

ParametricPlot[{v[t,Sqrt[k/m],0.1,0],cinetica[t,Sqrt[k/m],0.1,0]},{t,0,2*Pi},AspectRatio->0.4,AxesLabel->{"v","E Cinetica"}]

ParametricPlot[{x[t,Sqrt[k/m],0.1,0],potencial[t,Sqrt[k/m],0.1,0]},{t,0,2*Pi},AspectRatio->0.4,AxesLabel->{"x","E Potencial"}]

ParametricPlot[{cinetica[t,Sqrt[k/m],0.1,0],potencial[t,Sqrt[k/m],0.1,0]},{t,0,2*Pi},AxesLabel->{"E Cinetica","E Potencial"}]