Sei sulla pagina 1di 4

% - k*y = m*y''

% entonces tenemos que la ecuacion diferencial es:

% y'' = -(k/m)*y

% p(t)=0 , q(t)=-k/m , r(t)=0

disp('Datos para realizar el M.A.S ');


fprintf('\n');
m=input('Masa del bloque (kg) : ');
fprintf('\n');
k=input('Constante de elasticidad del resorte (N/m) : ');
fprintf('\n');
A=input('En que posicion se suelta el bloque : ');
fprintf('\n');

periodo=2*pi*(m/k)^(1/2);
fprintf('El periodo es : %5.3f segundos\n\n',periodo);

tiempo=input('En que tiempo calculamos los datos : ');


fprintf('\n');

g=10;
dis=(m*g)/k;

f=fix(tiempo/periodo)+1;

a1=0;
b1=f*(2*pi*(m/k)^(1/2)); % 1 periodo
N=f*2000;
h=(b1-a1)/(N+1);
alfa=A;
beta=A;
x=[a1];
x(2)=a1+h;
a=[0];
b=[0];
c=[0];
d=[0];
l=[0];
u=[0];
z=[0];
Ec=[0];
Ek=[0];
Epg=[0];

p_x=0;
q_x=-k/m;
r_x=0;

a(2)=2+(h^2)*(q_x);
b(2)=-1+(h/2)*(p_x);
d(2)=(-1*(h^2))*(r_x)+(1+(h/2)*(p_x))*alfa;

for i=3:N

x(i)=x(i-1)+h;
a(i)=2+(h^2)*(q_x);
b(i)=-1+(h/2)*(p_x);
c(i)=-1-(h/2)*(p_x);
d(i)=-1*(h^2)*(r_x);

end

x(N+1)=b1-h;
a(N+1)=2+(h^2)*(q_x);
c(N+1)=-1-(h/2)*(p_x);
d(N+1)=-1*(h^2)*(r_x)+(1-(h/2)*(p_x))*beta;

l(2)=a(2);
u(2)=b(2)/a(2);
z(2)=d(2)/l(2);

for i=3:N

l(i)=a(i)-c(i)*u(i-1);
u(i)=b(i)/l(i);
z(i)=(d(i)-c(i)*z(i-1))/l(i);

end

l(N+1)=a(N+1)-c(N+1)*u(N);
z(N+1)=(d(N+1)-c(N+1)*z(N))/l(N+1);

w=[alfa];
w(N+2)=beta;
w(N+1)=z(N+1);

for i=N:-1:2

w(i)=z(i)-u(i)*w(i+1);

end

x=[a1];

for i=2:N+2

x(i)=x(i-1)+h;

end

%aca calculamos las energias presentes en el MAS:


E=(1/2)*k*(A+dis)^2;

for i=1:N+2

Ek(i)=(1/2)*k*(w(i)+dis)^2;
Epg(i)=m*g*(A-w(i));
Ec(i)=E-Ek(i)-Epg(i);

end

hold on

fprintf(' La energia total es : %5.1f \n\n',E);

for i=1:N+2

dif=abs(tiempo-x(i));

if(dif<0.009)

fprintf(' (t) y(t) Epg Ec


Ek\n');
fprintf(' %5.3f %5.3f %5.3f %5.3f
%5.3f\n',x(i),w(i), Epg(i), Ec(i),Ek(i));
plot(x(i),w(i),'b--o');

break

end

if i==N+2

disp('cambiar el N');

end
end

a=i; % hasta donde nos da la grafica

fprintf('\n (i) (t) y(t) Epg Ec Ek\n');

for i=1:a

fprintf(' %2.f %5.3f %5.3f %5.3f %5.3f


%5.3f\n',i,x(i),w(i), Epg(i), Ec(i),Ek(i));

end
x1=[0];
w1=[0];

for i=1:a

x1(i)=x(i);
w1(i)=w(i);

end

plot(x1,w1); % graficamos la posicion del objeto

Potrebbero piacerti anche