Oscilaciones
Oscilaciones
Oscilaciones
UNAH-VS
Herramientas Computacionales Para Fı́sica
Osciladores
Guı́a elaborada por: Ms.C. Marco Antonio Reyes Pagoada
1. Objetivos
1. Estudiar el sistema oscilatorio masa-resorte.
d2 x k d2 x
2
= − x, = −ω 2 x (2)
dt m dt2
1
La ecuación (2) es la ecuación dinámica o ecuación caracterı́stica del movimiento armónico
simple (M.A.S.), esta es una ecuación diferencial ordinaria lineal de segundo orden, la solución
de esta ecuación x = x(t) es una función que nos permite predecir la posición de la masa para
cualquier tiempo, es natural que la solución sea una función sinusoidal, ya que estas funciones
son periódicas, una posible solución es
2
las gráficas de x vr t, v vs t, a vs t, (c) muestre gráficamente como cambia la energı́a cinética
y potencial ası́ como la energı́a total en un periodo completo. El siguiente script, realiza todos
los cálculos
1 clc,clear;
2 disp(’==========================================================’)
3 disp(’Exploracion del movimiento armonico simple’);
4 disp(’del sistema masa-resorte, resorte que obedece’);
5 disp(’la ley de Hooke’);
6 disp(’===========================================================’);
7 disp(’Condiciones iniciales y valores de las constantes: ’);
8 xo=input(’Ingrese la posicion inicial de la masa: ’);
9 vo=input(’Ingrese la velocidad inicial inicial de la masa: ’);
10 k=input(’Ingrese la constante del resorte: ’);
11 m=input(’Ingrese la masa: ’);
12 disp(’============================================================’);
13 disp(’Resultados:’);
14 w=sqrt(k/m); % frecuencia angular
15 A=sqrt(xo*xo+(vo/w)^2); % amplitud
16 phi=atan(-vo/(w*xo));
17 E=0.5*k*A^2.;
18 T=(2*pi)/w;
19 fprintf(’La frecuencia angular es w=%5.3f rad/s\n’,w);
20 fprintf(’El periodo es T=%5.3f seg\n’,T);
21 fprintf(’La amplitud es A=%5.3f metros\n’,A);
22 fprintf(’El angulo de fase es phi=%5.3f rad\n’,phi);
23 fprintf(’x=x(t), es x=%5.3f cos(%5.3f t+%5.3f)metros\n’,A,w,phi);
24 fprintf(’vx=vx(t), es vx=-%5.3f sen(%5.3f t+%5.3f)m/s\n’,A*w,w,phi);
25 fprintf(’ax=ax(t), es ax=-%5.3f cos(%5.3f t+%5.3f)m/s^2\n’,A*w*w,w,phi);
26 fprintf(’La energia mecanica es E=%5.3f J\n’,E);
27 disp(’===============================================================’);
28 t=0:0.02:T;
29 x=A*cos(w*t+phi);
30 vx=-A*w*sin(w*t+phi);
31 ax=-A*w*w*cos(w*t+phi);
32 Ek=0.5*m*vx.^2;
33 Ep=0.5*k*x.^2;
34 Et=Ek+Ep;
35 subplot(2,2,1)
36 plot(t,x)
37 xlabel(’Tiempo (seg)’);
38 ylabel(’x (metros)’);
39 title(’Posicion vs tiempo’);
40 subplot(2,2,2)
41 plot(t,vx)
42 xlabel(’ Tiempo (seg)’);
43 ylabel(’Velocidad (m/s)’);
44 title(’Velocidad vs tiempo’);
45 subplot(2,2,3)
46 plot(t,ax)
47 xlabel(’Tiempo (seg)’);
48 ylabel(’a (m/s^{2})’);
3
49 title(’Aceleracion vs tiempo’);
50 subplot(2,2,4)
51 plot(t,Ek,t,Ep,t,Et)
52 xlabel(’Tiempo (seg)’);
53 ylabel(’Ek, Ep, Et (Joule)’);
54 legend(’Ek’,’Ep’,’Et’);
55 title(’ Ek vs t, Ep vs t, Et vs t’);
al correr al programa nos vamos a la ventana de comando en Octave e ingresamos las condicio-
nes iniciales y las constantes, inmediatamente, el programa genera lo siguiente:
===========================================================
Exploracion del movimiento armonico simple
del sistema masa-resorte, resorte que obedece
la ley de Hooke
===========================================================
Condiciones iniciales y valores de las constantes:
Ingrese la posicion inicial de la masa: 1
Ingrese la velocidad inicial inicial de la masa: 2
Ingrese la constante del resorte: 20
Ingrese la masa: 5
============================================================
Resultados:
La frecuencia angular es w=2.000 rad/s
El periodo es T=3.142 seg
La amplitud es A=1.414 metros
El angulo de fase es phi=-0.785 rad
x=x(t), es x=1.414 cos(2.000 t+-0.785)metros
vx=vx(t), es vx=-2.828 sen(2.000 t+-0.785)m/s
ax=ax(t), es ax=-5.657 cos(2.000 t+-0.785)m/s^2
La energia mecanica es E=20.000 J
===============================================================
4
En las gráficas de las energı́as, se puede apreciar como cambian las energı́a, cuando la cinéti-
ca crece la potencial disminuye, pero su suma permanece constante.
3. Oscilador Amortiguado
El movimiento del oscilador armónico simple discutido en la sección anterior es idealizado,
en realidad el resorte tiene masa ası́ como fricción interna. Un resorte real no es un cuerpo
puramente elástico, ası́ algo de la energı́a del sistema es disipada por fricción internamente.
Adicionalmente el aire que rodea a la masa, es una fuente de fricción y provoca que la energı́a
mecánica no se conserve. Pensemos que el resorte no tiene masa y la masa de estudio esta
sumergida en un fluido, figura 2, la masa en el fluido experimenta una fuerza retardadora pro-
porcional a la velocidad Fa = −bv
d2 x dx
max = −kx − bvx , m 2
= −kx − b (11)
dt dt
La frecuencia para el sistema anterior es
r
k b2
ωa = − (12)
m 4m2
De la ecuación (12) nos damos cuenta que hay varias posibilidades con este oscilador.
3.1. Sub-amortiguamiento
Esto ocurre cuando k/m > b2 /4m2 , la solución general para este caso es
5
Ejemplo 2: Consideremos una masa de 0.05 kg que se mueve en un fluido que tiene asociada
una constante de amortiguamiento de b=0.08 kg/s, la masa esta conectada a un resorte con
constante de fuerza k = 1 N/m. Al inicio x = 1 m y v = 5 m/s. Encontremos la ecuación de
posición x = x(t) y graficar la ecuación.
El siguiente programa, le solicita las condiciones iniciales y las constantes, al correr el programa
se genera un reporte y la gráfica de x = x(t)
1 clc,clear
2 display(’======================================================’);
3 display(’Se estudia el movimiento oscilatorio amortiguado’);
4 display(’======================================================’);
5 display(’Condiciones iniciales y constantes: ’);
6 xo=input(’Ingrese la posicion inicial, xo: ’);
7 vo=input(’Ingrese la velocidad inicial, vo: ’);
8 m=input(’Ingrese la masa, m: ’);
9 k=input(’Ingrese la constante del resorte, k: ’);
10 b=input(’Ingrese la constante de amortiguamiento, b: ’);
11 display(’=========================================================’);
12 display(’Resultados: ’);
13 wo=sqrt(k/m);
14 gama=b/(2*m);
15 disc=wo^2-gama^2;
16 t=0:0.05:6;
17 if (disc>0)
18 wa=sqrt(disc);
19 a1=sqrt(xo^2+((vo+gama*xo)/wa)^2);
20 theta=atan((wa*xo)/(vo+gama*xo));
21 display(’el oscilador es sub-amortiguado: ’);
22 fprintf(’x=x(t) es x=%5.3f exp(-%5.3f t)sen(%5.3f t+%5.3f) \n’,a1,gama,wa,theta);
23 x=a1*exp(-gama*t).*sin(wa*t+theta);
24 plot(t,x)
25 xlabel(’t (seg)’);
26 ylabel(’ x (m) ’);
27 title(’x vs t del oscilador subamortiguado’);
28 return
29 elseif (disc<0)
20 gama1=gama-sqrt(gama^2-wo^2);
21 gama2=gama+sqrt(gama^2-wo^2);
22 c1=xo-(vo+gama1*xo)/(gama1-gama2);
23 c2=(vo+gama1*xo)/(gama1-gama2);
24 display(’El oscilador esta sobre-amortiguado’);
25 fprintf(’x=x(t) es x=%5.3f exp(-%5.3f t)+%5.3f exp(-%5.3f t)\n’,c1,gama1,c2,gama2);
26 x=c1*exp(-gama1*t)+c2*exp(-gama2*t);\
27 plot(t,x)
28 xlabel(’t (seg)’);
29 ylabel(’ x (m) ’);
30 title(’x vs t del oscilador sobreamortiguado’);
31 return
32 elseif (disc==0)
33 b1=xo;
34 b2=vo+gama*xo;
35 display(’El oscilador esta criticamente amortiguado’);
6
36 fprintf(’x=x(t) es x=%5.3f exp(-%5.3f t)+%5.3f t exp(-%5.3f t)\n’,b1,gama,b2,gama);
37 x=b1*exp(-gama*t).+b2*t.*exp(-gama*t);
38 plot(t,x)
39 xlabel(’t (seg)’);
40 ylabel(’ x (m) ’);
41 title(’x vs t del oscilador criticamente amortiguado’);
42 return
43 else
44 end
45 fprintf(’La frecuencia natural es %5.2f\n’,wo);
46 display(’=========================================================’);
después de correr el programa nos vamos a la ventana de comando, ahı́ se nos preguntan las
condiciones iniciales y las constantes y a continuación se genera un reporte que incluye la ecua-
ción de posición y la gráfica de posición vs tiempo
======================================================
Se estudia el movimiento oscilatorio amortiguado
======================================================
Condiciones iniciales y constantes:
Ingrese la posicion inicial, xo: 1
Ingrese la velocidad inicial, vo: 5
Ingrese la masa, m: 0.05
Ingrese la constante del resorte, k: 1
Ingrese la constante de amortiguamiento, b: 0.08
=========================================================
Resultados:
el oscilador es sub-amortiguado:
x=x(t) es x=1.655 exp(-0.800 t)sen(4.400 t+0.649)
7
3.2. Amortiguamiento crı́tico
Esto ocurre cuando k/m = b2 /(4m2 ), la solución general es
c1 = x 0 , c2 = v0 + γx0 (17)
Ejemplo 3: una masa de 0.25 kg, esta conectada a un resorte que tiene una constante de
fuerza, k = 4 N/m, y la fuerza de amortiguamiento es Fa = −2v. Si la masa inicialmente esta
en la posición de equilibrio y se mueve hacia la izquierda con 3 m/s. Encontrar la ecuación de
posición y su gráfica.
Con el mismo programa del ejemplo 2 se trabaja, al correr el programa con las condiciones
iniciales y constantes del problema se obtiene.
======================================================
Se estudia el movimiento oscilatorio amortiguado
======================================================
Condiciones iniciales y constantes:
Ingrese la posicion inicial, xo: 0
Ingrese la velocidad inicial, vo: -3
Ingrese la masa, m: 0.25
Ingrese la constante del resorte, k: 4
Ingrese la constante de amortiguamiento, b: 2
=========================================================
Resultados:
El oscilador esta criticamente amortiguado
x=x(t) es x=0.000 exp(-4.000 t)+-3.000 t exp(-4.000 t)
8
3.3. Sobre-amortiguamiento
En este caso se cumple que k/m < b2 /(4m2 ), la solución de la ecuación diferencial es
x(t) = a1 e−γ1 t + a2 e−γ2 t (18)
con
s 2 s 2
b b k b b k
γ1 = − − , γ2 = + − (19)
2m 2m m 2m 2m m
y a1 y a2 , se obtienen con las condiciones iniciales
(v0 + γ1 x0 ) v0 + γ1 x0
a1 = x 0 − , a2 = (20)
γ1 − γ2 γ1 − γ2
Ejemplo 4: consideremos que el oscilador tiene una masa de 0.05 kg, k = 1 N/m, b =0.5 kg/s,
x0 = 1, v0 = 5 m/s. Determinar el tipo de amortiguamiento, la ecuación de posición de la masa
y la gráfica de x vs t.
Utilizamos el mismo programa, con el cual se obtiene lo siguiente:
======================================================
Se estudia el movimiento oscilatorio amortiguado
======================================================
Condiciones iniciales y constantes:
Ingrese la posicion inicial, xo: 1
Ingrese la velocidad inicial, vo: 5
Ingrese la masa, m: 0.05
Ingrese la constante del resorte, k: 1
Ingrese la constante de amortiguamiento, b: 0.5
=========================================================
Resultados:
El oscilador esta sobre-amortiguado
x=x(t) es x=2.736 exp(-2.764 t)+-1.736 exp(-7.236 t)
9
4. Oscilador Forzado
El motor gira con una frecuencia angular impulsora ω = ωi y esta fuerza externa puede ser
aproximada como Fe xt = F0 cos(ωi t + θ), donde θ es un ángulo que depende de las condiciones
iniciales
d2 x dx
m 2
= −kx − b + F0 cos(ωi t + θ) (21)
dt dt
al resolver la ecuación diferencial, se obtiene lo siguiente
xp = Bcos(ωi t + ϕ) (22)
La ecuación (22) es la solución asociada a la fuerza externa y se le suele llamar solución parti-
r
k
cular, donde A depende de la frecuencia impulsora y la frecuencia natural del sistema ω0 =
m
(F0 /m)
B=p (23)
(2γwi )2 + (ω02 − ωi2 )
y ϕ es
−1 2γωi
ϕ = θ − tan (24)
ω0 − ωi2
2
donde θ, esta determinada por la ecuación (15), la solución de la ecuación (21) asociada a la
fuerza del resorte y la fuerza de amortiguamiento, considerando subamortiguamiento, ya sabe-
mos cual es la solución, esto es la ecuación (13) y se le llama solución de la parte homogénea.
La solución general es
1 T
Z
AF0 ωi
Pmed = P (t)dt = sen(φ), donde φ=θ−ϕ (27)
T 0 2
Ejemplo 5: consideremos un oscilador con una masa de 0· 55 kg, constante del resorte 0· N/m,
amortiguamiento con b = 0· 5 kg/s, la masa esta conectada a un motor, la amplitud de esta
fuerza externa es F0 = 0· 5 N y su frecuencia es ωi = 0· rad/s. Calculemos las cantidades aso-
ciadas a la solución general, la gráfica de posición versus tiempo y la potencia media absorbida
10
por el sistema.
El siguiente programa, realiza todos los cálculos
1 clc,clear;
2 disp(’=============================================================’)
3 disp(’Exploracion del sistema oscilatorio: masa-resorte’);
4 disp(’con amortiguamiento, y conectado a un motor que proporciona’);
5 disp(’una fuerza impulsora periodica, Fe=Fo cos(wi*t+theta)’);
6 disp(’===========================================================’);
7 disp(’Condiciones iniciales y valores de las constantes: ’);
8 xo=input(’Ingrese xo: ’);
9 vo=input(’ Ingrese vo: ’);
10 k=input(’Ingrese la constante del resorte: ’);
11 m=input(’Ingrese la masa: ’);
12 b=input(’Ingrese la constante de amortiguamiento: ’);
13 Fo=input(’Ingrese la amplitud de la fuerza impulsora: ’);
14 wi=input(’La frecuencia de la fuerza impulsora: ’);
15 disp(’============================================================’);
16 disp(’Resultados:’);
17 wo=sqrt(k/m); % frecuencia angular
18 gama=b/(2*m);
19 disc=wo^2-gama^2;
20 wa=sqrt(disc); % frecuencia con amortiguamiento
21 if disc<=0;
22 disp(’b debe ser mas pequena’);
23 return;
24 end
25 theta=atan(wa*xo/(vo+gama*xo));
26 B=sqrt(xo^2+(vo+gama*xo)^2/wa^2);
27 A=(Fo/m)/sqrt((2*gama*wi)^2+(wo^2-wi^2)^2); % amplitud
28 phi=theta-atan(b*wi/(m*(wo^2-wi^2)));
29 dang=atan(b*wi/(m*(wo^2-wi^2)));% diferencia de angulos
30 Pm=0.5*A*Fo*wi*sin(dang);
31 fprintf(’La frecuencia natural es wo=%5.3f rad/s\n’,wo);
32 fprintf(’La frecuencia del oscilador amortiguado es wa=%5.3f rad/s\n’,wa);
33 fprintf(’La amplitud es A=%5.3f metros\n’,A);
34 fprintf(’El angulo de fase del termino transitorio: theta=%5.3f rad\n’,theta);
35 fprintf(’El angulo de fase del termino estable: phi=%5.3f rad\n’,phi);
36 fprintf(’x=x(t), es x=%5.3f exp(-%5.3f t) sen(%5.3f t+%5.3f)+%5.3f cos(%5.3f t+%5.3f)
38 disp(’===============================================================’);
39 dt=0.01;
40 ni=200;
41 xt=@(t)B*exp(-gama*t)*sin(wa*t+theta);
42 xe=@(t)A*cos(wi*t+phi);
43 for i=1:ni
44 t(i)=(i-1)*(150/ni);
45 x(i)=xt(t(i))+xe(t(i));
46 x2(i)=xe(t(i));
47 x1(i)=xt(t(i));
48 end
49 subplot(2,2,1)
11
50 plot(t,x1)
51 xlabel(’t (seg)’);
52 ylabel(’x_{t} (m)’);
53 title(’Solucion transitoria: x_{t} vs t’);
54 subplot(2,2,2)
55 plot(t,x2)
56 xlabel(’t (seg)’);
57 ylabel(’ x_{F} (m)’);
58 title(’Solucion asociada a la fuerza impulsora: x_{F} vs t’)
59 subplot(2,2,3)
60 plot(t,x)
61 xlabel(’t (seg)’);
62 ylabel(’ x (m)’);
63 title(’Solucion general: x=x_{t}+x_{F} vs t’)
al correr el programa, nos vamos a la ventana de comando, donde se solicita las condiciones
iniciales, ası́ como las constantes
=============================================================
Exploracion del sistema oscilatorio: masa-resorte
con amortiguamiento, y conectado a un motor que proporciona
una fuerza impulsora periodica, Fe=Fo cos(wi*t+theta)
===========================================================
Condiciones iniciales y valores de las constantes:
Ingrese xo: 1
Ingrese vo: 5
Ingrese la constante del resorte: 0.5
Ingrese la masa: 0.5
Ingrese la constante de amortiguamiento: 0.1
Ingrese la amplitud de la fuerza impulsora: 0.5
La frecuencia de la fuerza impulsora: 0.1
============================================================
Resultados:
La frecuencia natural es wo=1.000 rad/s
La frecuencia del oscilador amortiguado es wa=0.995 rad/s
La amplitud es A=1.010 metros, del termino estable
El angulo de fase del termino transitorio: theta=0.193 rad
El angulo de fase del termino estable: phi=0.172 rad
x=x(t), es x=5.222 exp(-0.100 t) sen(0.995 t+0.193)+1.010 cos(0.100 t+0.172)
La potencia media transmitida a la masa es 0.001 watt
===============================================================
12
Al tener una fuerza impulsora, existe la posibilidad que se de el fenómeno de la resonancia,
este ocurre cuando la frecuencia
p de la fuerza externa (impulsora) se acerca a la frecuencia
natural del sistema (ω = k/m en el caso del sistema masa-resorte), en este caso la amplitud
crece y crece, en principio, si el amortiguamiento es cero y la frecuencia impulsora es igual a
la frecuencia natural, la amplitud tiende a infinito, lo cual significa que el sistema mecánico
colapsa. El amortiguamiento puede ayudar a controlar las amplitudes a mayor amortiguamiento
las amplitudes disminuyen, el siguiente programa nos muestra gráficamente como cambia la
amplitud del oscilador al variar el amortiguamiento.
1 clc,clear;
2 m=1.2;
3 k=3;
4 Fo=0.5;
5 wo=sqrt(k/m);
6 wmin=0.1;
7 wmax=2.0;
8 np=200;
9 w=[wmin:wmax/np:wmax];
10 hold on
11 bmin=0.1;
12 bmax=(2*m*wo)/sqrt(2);
13 bpaso=(bmax-bmin)/5;
14 for b=bmin:bpaso:bmax,
15 d1=(k-m*w.^2).^2+(b.^2)*w.^2;
16 A=Fo./sqrt(d1);
17 plot(w,A);
18 wr=sqrt(wo^2-(b^2)/(2*m*m));
19 Amax=Fo/(b*sqrt(wo*wo-(b*b)/(4*m*m)));
20 str=cat(2,’b=’,num2str(b,2));
21 text(wr+0.1,Amax-0.06,str);
22 endfor
23 title(’Amplitud vs frecuencia impulsora’)
13
24 xlabel(’\omega_{i}’,’FontSize’,14);
25 ylabel(’A(\omega_{i})’,’FontSize’,14);
5. Enfoque Numérico
En las secciones anteriores estudiamos el oscilador trabajando la solución de la ecuación
diferencial del movimiento de forma exacta, ası́ obtenı́amos la ecuación de posición de la masa
que oscila para todos los casos. Sin embargo hay muchos osciladores que no son armónicos, co-
mo las ecuaciones dinámicas de los péndulos para ángulos grandes, y otros tipos de osciladores
que son gobernados por ecuaciones diferenciales no lineales. La mayor parte de las ecuaciones
diferenciales no lineales no se pueden resolver de forma exacta, en este tipo de situaciones es
natural aproximar las soluciones de manera numérica, existen muchos esquemas numéricas para
resolver ecuaciones diferenciales de valores iniciales, en nuestro caso vamos a utilizar el método
de Runge-Kutta de orden cuatro. El siguiente programa resuelve la ecuación (21) de forma
numérica con RK4, al correr el programa se le solicita al usuario las condiciones iniciales y las
constantes de interés, el programa genera una tabla de algunos valores de posición, velocidad,
aceleración para diversos tiempos ademas de las gráficas de las mismas cantidades
1 clear,clc
2 disp(’====================================================’);
3 disp(’Con este programa, calculamos la velocidad y ’);
4 disp(’posicion, dada la aceleracion, la cual puede ’);
5 disp(’depender de t, x, vx’);
6 disp(’Se genera una tabla y graficas de interes’);
7 disp(’La aceleracion se integra con RK4’);
8 disp(’=====================================================’);
9 x(1)=input(’Ingrese la posicion inicial: ’);
10 t(1)=0.0;
11 v(1)=input(’Ingrese la velocidad inicial: ’);
12 tmax=input(’Ingrese el tiempo maximo: ’);
13 m=input(’Ingrese la masa: ’);
14 k=input(’Ingrese la constante k, del resorte: ’);
15 b=input(’Ingrese la constante de amortiguamiento, b: ’);
14
16 Fo=input(’Ingrese la amplitud de la fuerza externa, Fo: ’);
17 wi=input(’Ingrese la frecuencia de la fuerza impulsora, wi: ’);
18 a=@(t,x,v)-(k/m)*x-(b/m)*v+(Fo/m)*cos(wi*t); % la aceleracion
19 n=500;
20 nt=20;
21 h=tmax/n;
22 ax(1)=a(t(1),x(1),v(1));
23 fprintf(’ t x vx ax \n’);
24 fprintf(’%7.3f %9.3f %10.3f %10.3f \n’,t(1),x(1),v(1),ax(1));
25 for i=1:n+1
26 k1v=a(t(i),x(i),v(i))*h;
27 k1x=v(i)*h;
28 k2v=a(t(i)+h/2,x(i)+k1x/2,v(i)+k1v/2)*h;
29 k2x=(v(i)+k1v/2)*h;
30 k3v=a(t(i)+h/2,x(i)+k2x/2,v(i)+k2v/2)*h;
31 k3x=(v(i)+k2v/2)*h;
32 k4v=a(t(i)+h,x(i)+k3x,v(i)+k3v)*h;
33 k4x=(v(i)+k3v/2)*h;
34 v(i+1)=v(i)+(1/6)*(k1v+2*k2v+2*k3v+k4v);
35 x(i+1)=x(i)+(1/6)*(k1x+2*k2x+2*k3x+k4x);
36 t(i+1)=t(i)+h;
37 ax(i+1)=a(t(i),x(i),v(i));
38 if(mod(i,nt)==0)
39 fprintf(’%7.3f %9.3f %10.3f %10.3f \n’,t(i+1),x(i+1),v(i+1),ax(i+1));
40 end;
41 end
42 disp(’=========================================================’);
43 subplot(2,2,1)
44 plot(t,x)
45 xlabel(’Tiempo’)
46 ylabel(’Posicion’)
47 title(’Posicion vs tiempo’);
48 subplot(2,2,2)
49 plot(t,v)
50 xlabel(’Tiempo’)
51 ylabel(’V_{x}’)
52 title(’Velocidad vs tiempo’);
53 subplot(2,2,3)
54 plot(t,ax)
55 xlabel(’Tiempo’)
56 ylabel(’Aceleracion’)
57 title(’Aceleracion vs tiempo’);
====================================================
Con este programa, calculamos la velocidad y
posicion, dada la aceleracion, la cual puede
depender de t, x, vx
Se genera una tabla y graficas de interes
La aceleracion se integra con RK4
=====================================================
15
Ingrese la posicion inicial: 1
Ingrese la velocidad inicial: 5
Ingrese el tiempo maximo: 180
Ingrese la masa: 0.5
Ingrese la constante k, del resorte: 0.5
Ingrese la constante de amortiguamiento, b: 0.1
Ingrese la amplitud de la fuerza externa, Fo: 0.5
Ingrese la frecuencia de la fuerza impulsora, wi: 0.1
t x vx ax
0.000 1.000 5.000 -1.000
7.200 2.867 1.447 -1.847
14.400 1.618 -0.512 -1.531
21.600 -0.135 -0.818 -0.523
28.800 -1.115 -0.419 0.090
36.000 -1.136 -0.015 0.221
43.200 -0.517 0.167 0.129
50.400 0.292 0.165 0.022
57.600 0.888 0.078 -0.028
64.800 1.015 -0.020 -0.031
72.000 0.638 -0.088 -0.015
79.200 -0.047 -0.107 0.000
86.400 -0.703 -0.074 0.009
93.600 -1.008 -0.008 0.012
100.800 -0.813 0.061 0.009
108.000 -0.216 0.099 0.002
115.200 0.488 0.088 -0.005
122.400 0.950 0.034 -0.010
129.600 0.940 -0.037 -0.010
136.800 0.464 -0.090 -0.005
144.000 -0.243 -0.098 0.002
151.200 -0.829 -0.057 0.008
158.400 -1.004 0.012 0.010
165.600 -0.680 0.075 0.007
172.800 -0.019 0.101 0.001
180.000 0.651 0.077 -0.006
=========================================================
16
El programa anterior esta listo para resolver exclusivamente la ecuación (21), pero se puede
adecuar para resolver cualquier ecuación diferencial de segundo orden de valores iniciales.
1 clear,clc
2 disp(’====================================================’);
3 disp(’Con este programa, resolvemos una ecuacion diferencial’);
4 disp(’de segundo d2x/dt2=f(x,dx/dt,t) con el metodo de RK4, ’);
5 disp(’se encuentra x, dx/dt, para diferentes t’);
6 disp(’Se genera una tabla y graficas de interes’);
7 disp(’Se le solicita al usuario los valores iniciales’);
8 disp(’=====================================================’);
9 x(1)=input(’Ingrese la x inicial: ’);
10 t(1)=0.0;
11 v(1)=input(’Ingrese dx/dt inicial: ’);
12 tmax=input(’Ingrese el t maximo: ’);
13 a=@(t,x,v)-0.5*(x.^2-1)*v-x; % la ecuacion diferencial
14 n=500;
15 nt=20;
16 h=tmax/n;
17 ax(1)=a(t(1),x(1),v(1));
18 fprintf(’ t x vx ax \n’);
19 fprintf(’%7.3f %9.3f %10.3f %10.3f \n’,t(1),x(1),v(1),ax(1));
20 for i=1:n+1
21 k1v=a(t(i),x(i),v(i))*h;
22 k1x=v(i)*h;
23 k2v=a(t(i)+h/2,x(i)+k1x/2,v(i)+k1v/2)*h;
17
24 k2x=(v(i)+k1v/2)*h;
25 k3v=a(t(i)+h/2,x(i)+k2x/2,v(i)+k2v/2)*h;
26 k3x=(v(i)+k2v/2)*h;
27 k4v=a(t(i)+h,x(i)+k3x,v(i)+k3v)*h;
28 k4x=(v(i)+k3v/2)*h;
29 v(i+1)=v(i)+(1/6)*(k1v+2*k2v+2*k3v+k4v);
30 x(i+1)=x(i)+(1/6)*(k1x+2*k2x+2*k3x+k4x);
31 t(i+1)=t(i)+h;
32 ax(i+1)=a(t(i),x(i),v(i));
33 if(mod(i,nt)==0)
34 fprintf(’%7.3f %9.3f %10.3f %10.3f \n’,t(i+1),x(i+1),v(i+1),ax(i+1));
35 end;
36 end
37 disp(’=========================================================’);
38 subplot(2,2,1)
39 plot(t,x)
40 xlabel(’t’)
41 ylabel(’x’)
42 title(’x vs t’);
43 subplot(2,2,2)
44 plot(t,v)
45 xlabel(’t’)
46 ylabel(’dx/dt’)
47 title(’dx/dt versus t’);
48 subplot(2,2,3)
49 plot(t,ax)
50 xlabel(’t’)
51 ylabel(’d^{2}x/dt^{2}’)
52 title(’d^{2}x/dt^{2} versus t’);
=====================================================
Con este programa, resolvemos una ecuacion diferencial
de segundo d2x/dt2=f(x,dx/dt,t) con el metodo de RK4,
se encuentra x, dx/dt, para diferentes t
Se genera una tabla y graficas de interes
Se le solicita al usuario los valores iniciales
=====================================================
Ingrese la x inicial: 1
Ingrese dx/dt inicial: 1
Ingrese el t maximo: 20
t x vx ax
0.000 1.000 1.000 -1.000
0.800 1.382 -0.094 -1.366
1.600 0.934 -0.986 -0.998
2.400 -0.170 -1.750 -0.751
3.200 -1.504 -1.151 2.150
4.000 -1.741 0.421 1.374
4.800 -1.061 1.243 0.970
5.600 0.268 2.069 0.798
6.400 1.743 1.070 -2.812
18
7.200 1.849 -0.565 -1.224
8.000 1.089 -1.319 -0.948
8.800 -0.305 -2.157 -0.793
9.600 -1.807 -1.025 2.970
10.400 -1.871 0.602 1.175
11.200 -1.091 1.338 0.943
12.000 0.319 2.178 0.783
12.800 1.823 1.007 -3.001
13.600 1.874 -0.612 -1.161
14.400 1.088 -1.344 -0.944
15.200 -0.328 -2.183 -0.774
16.000 -1.829 -0.996 3.008
16.800 -1.873 0.617 1.154
17.600 -1.084 1.348 0.945
18.400 0.335 2.186 0.765
19.200 1.832 0.986 -3.009
20.000 1.871 -0.621 -1.149
=========================================================
La linea 13, es donde se define la ecuación diferencial, esa es la única linea que se modifica del
programa.
19
Del diagrama puede verse que el péndulo oscila debido a dos momentos de torsión de res-
titución, el peso tiene un brazo de palanca de Lsenθ y la fuerza que ejerce el resorte depende
del estiramiento del resorte, x, el cual tiene un brazo de palanca de hcosθ
Al aplicar la segunda ley de Newton se tiene
X
τi = Iα = −M gLsenθ − FR hcosθ = Iα
d2 θ
−M ghsenθ − k(hsenθ)hcosθ = M L2
dt2
al simplificar
d2 θ gh kh2
= − senθ − senθcosθ (29)
dt2 L2 M L2
La ecuación (29) es la ecuación dinámica para cualquier angulo que tome el péndulo, para
ángulos pequeños, senθ ≈ θ y cosθ ≈ 1, la ecuación diferencial se simplifica a
d2 θ M gL + kh2
=− θ = −ω 2 θ (30)
dt2 M L2
La ecuación (30), es la ecuación diferencial caracterı́stica del movimiento armónico simple con
una frecuencia angular ω
r
M gL + kh2
ω=
M L2
Modificamos la linea 13, ahı́ ingresamos la segunda derivada, de la siguiente forma:
a=@(t,x,v)-((9.8*0.5)/(.7^2))*sin(x)-((120*0.5^2)/(4*0.7^2))*sin(x)*cos(x);
====================================================
Con este programa, resolvemos una ecuacion diferencial
de segundo d2x/dt2=f(x,dx/dt,t) con el metodo de RK4,
se encuentra x, dx/dt, para diferentes t
Se genera una tabla y graficas de interes
20
Se le solicita al usuario los valores iniciales
=====================================================
Ingrese la x inicial: pi/4
Ingrese dx/dt inicial: 0
Ingrese el t maximo: 8
t x vx ax
0.000 0.785 0.000 -14.724
0.320 0.110 -3.650 -4.196
0.640 -0.767 -0.869 14.456
0.960 -0.323 3.361 8.892
1.280 0.694 1.744 -13.594
1.600 0.517 -2.786 -12.191
1.920 -0.565 -2.579 11.603
2.240 -0.673 2.002 14.019
2.560 0.381 3.291 -7.877
2.880 0.780 -1.091 -14.793
3.200 -0.152 -3.749 2.302
3.520 -0.827 0.109 14.984
3.840 -0.104 3.823 4.126
4.160 0.807 0.911 -14.760
4.480 0.360 -3.460 -9.654
4.800 -0.715 -1.936 13.788
5.120 -0.584 2.725 13.123
5.440 0.547 2.897 -11.209
5.760 0.753 -1.751 -14.676
6.080 -0.308 -3.652 6.119
6.400 -0.850 0.654 15.137
6.720 0.019 3.994 1.130
7.040 0.863 0.499 -15.115
7.360 0.285 -3.771 -8.237
7.680 -0.785 -1.676 14.502
8.000 -0.560 3.021 12.867
=========================================================
21
6. Referencias
1. Javier E. Hasbun, Warren Wright. Classical Mechanics with Matlab applications. Jones-
Bartlet. 2009.
2. Dennis Zill. Ecuaciones diferenciales con problemas con valores en la frontera. Cengage
Learning. Octava edición 2013.
3. Sears, Zemanky, Young y Freedman. Fı́sica universitaria, volumen 1. Pearson edición 13,
2013.
4. Raymond Serway, John Jewett. Fı́sica para ciencias e ingenierı́a, volumen 1. Cengage
Learning, séptima edición, 2008.
7. Ejercicios
En los siguientes ejercicios utilice los programas suministrados en esta guı́a. Es importante
recordar la convención de signos, para asignar los valores iniciales e interpretar como se mueve la
partı́cula en cualquier tiempo. En el movimiento de un oscilador vertical, arriba de la referencia
la posición la vamos a tomar negativa, abajo de la referencia positivo, si la masa se mueve hacia
abajo la velocidad es positiva, si se mueve hacia arriba negativa, la siguiente figura ilustra la
convención.
22
En el caso que la masa se mueva sobre una recta horizontal,la convención, es, si esta la masa
a la derecha de la referencia (x = 0) la posición es positiva, si se mueve hacia la derecha la
velocidad es positiva, como se ilustra en la siguiente gráfica.
1. Una masa que pesa 25 libras alarga 8 pulgadas un resorte. La masa se libera al inicio
desde el reposo en un punto 8 pulgadas abajo de la posición de equilibrio. a) Encuentre
la ecuación la posición para cualquier tiempo, b) construya la gráfica de x versus t, c)
muestre gráficamente como cambia la energı́a cinética y la energı́a potencial.
2. Una fuerza de 420 N alarga 2.2 m un resorte. Una masa de 50 kg se une al extremo del
resorte y se libera inicialmente desde la posición de equilibrio con una velocidad ascendente
de 10 m/s. a) Encuentre la ecuación de movimiento, b) la gráfica de x versus t
3. Una masa de 1.2 kg se fija a un resorte cuya constante es 16 N/m y luego el sistema
completo se sumerge en un liquido que imparte una fuerza amortiguadora igual a 9 veces
la velocidad instantánea. Determine las ecuaciones de movimiento si:
a) al inicio la masa se libera desde un punto situado 1 metro abajo de la posición de
equilibrio. b) la masa se libera inicialmente desde un punto 1 metro abajo de la posición
de equilibrio con una velocidad ascendente de 10 m/s.
23
4. Una fuerza de 2.2 libras alarga 1 pie un resorte. Una masa que pesa 3 libras se une al resorte
y luego se sumerge el sistema en un medio que ofrece una fuerza de amortiguamiento igual
a 0.5 veces la velocidad instantánea.
a) Encuentre la ecuación de movimiento si inicialmente se libera la masa desde el reposo
en un un punto situado a 1 pie por encima de la posición de equilibrio, b) construya la
gráfica de x versus t.
5. Después de que una masa de 10 libras se sujeta a un resorte de 5 pies, este llega a medir
7 pies. Se retira la mas y se sustituye con una de 8 libras. Luego se coloca al sistema en
un medio que ofrece una fuerza de amortiguamiento igual a la velocidad instantánea.
a) Encuentre la ecuación de movimiento si la masa se libera inicialmente desde el reposo de
un punto situado 0.5 pie arriba de la posición de equilibrio con una velocidad ascendente
de 1 pie/s.
b) Trace la gráfica de la ecuación de movimiento.
8
6. Una masa que pesa 16 libras alarga pie un resorte. La masa se libera inicialmente
3
desde el reposo desde un punto 2 pies abajo de la posición de equilibrio y el movimiento
posterior ocurre en un medio que ofrece una fuerza de amortiguamiento igual a 0.5 de la
velocidad instantánea. Encuentre la ecuación de movimiento si se aplica a la una fuerza
externa igual a f (t) = 10cos(3t).
7. Una masa de 1 slug esta unida a un resorte cuya constante es 5 lb/pie. Al inicio la masa se
libera 1 pie abajo de la posición de equilibrio con una velocidad descendente de 5 pies/s y
el movimiento posterior toma lugar en un medio que ofrece una fuerza de amortiguamiento
igual a dos veces la velocidad instantánea.
Si a fuerza externa que actúa sobre la masa es igual a f (t) = 12cos2t + 3sen2t. Trace la
gráfica de las soluciones transitorias y de estado estable en los mismos ejes de coordenadas.
9. Cuando una masa de 2 kilogramos se une a un resorte cuya constante es 32 N/m, este
llega al reposo en la posición de equilibrio. Comenzando en t = 0, una fuerza igual a
f (t) = 50e−2t cos(4t) se aplica al sistema. Trace x versus t, comente el comportamiento
del sistema.
2
+ 4x = −5sen(2t) + 3cos(2t), x(0) = −1, x (0) = 1
dt
b)
d2 x ′
2
+ 9x = 5sen(2t), x(0) = 2, x (0) = 0
dt
c)
d2 x ′
2
+ x = 0· 5cos(0· 8t), x(0) = 0, x (0) = 0
dt
d)
d2 x dx ′
2
+ 0· 125 + x = 3cos(2t), x(0) = 2, x (0) = 0
dt dt
24