<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Angelcf</id>
		<title>MateWiki - Contribuciones del usuario [es]</title>
		<link rel="self" type="application/atom+xml" href="https://mat.caminos.upm.es/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Angelcf"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/Angelcf"/>
		<updated>2026-04-30T15:42:46Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=1639</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=1639"/>
				<updated>2013-03-08T15:59:45Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot u=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h*k3x)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h*k3x)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2y;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3y;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}\dot x ^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Influencia del coeficiente &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran una serie de casos con valores de &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; comprendidos entre 0 y 5. Las gráficas muestran las trayectorias y el decrecimiento de la energía para cada uno de los casos:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1 &amp;lt;math&amp;gt;\mu=0&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
Caso limite sin amortiguamiento en el que la energía es constante&lt;br /&gt;
[[Archivo:4c0.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2 &amp;lt;math&amp;gt;\mu=0.5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c05.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 3 &amp;lt;math&amp;gt;\mu=1&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c1.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 4 &amp;lt;math&amp;gt;\mu=2&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c2.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 5 &amp;lt;math&amp;gt;\mu=3&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c3.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 6 &amp;lt;math&amp;gt;\mu=5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c5.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
La conclusión que se extrae en vista de las gráficas es que la influencia del coeficiente de amortiguamiento &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; es muy clara, cuanto mayor es este coeficiente más rapidamente decrece la energía pues la masa se estabiliza antes en torno a la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Usuario:Angelcf|Angelcf]] ([[Usuario discusión:Angelcf|discusión]]) 18:39 1 mar 2013 (CET)&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=771</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=771"/>
				<updated>2013-03-03T18:35:28Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: /* Método de Runge-Kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot u=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2y;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3y;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}\dot x ^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Influencia del coeficiente &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran una serie de casos con valores de &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; comprendidos entre 0 y 5. Las gráficas muestran las trayectorias y el decrecimiento de la energía para cada uno de los casos:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1 &amp;lt;math&amp;gt;\mu=0&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
Caso limite sin amortiguamiento en el que la energía es constante&lt;br /&gt;
[[Archivo:4c0.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2 &amp;lt;math&amp;gt;\mu=0.5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c05.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 3 &amp;lt;math&amp;gt;\mu=1&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c1.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 4 &amp;lt;math&amp;gt;\mu=2&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c2.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 5 &amp;lt;math&amp;gt;\mu=3&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c3.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 6 &amp;lt;math&amp;gt;\mu=5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c5.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
La conclusión que se extrae en vista de las gráficas es que la influencia del coeficiente de amortiguamiento &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; es muy clara, cuanto mayor es este coeficiente más rapidamente decrece la energía pues la masa se estabiliza antes en torno a la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Usuario:Angelcf|Angelcf]] ([[Usuario discusión:Angelcf|discusión]]) 18:39 1 mar 2013 (CET)&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=742</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=742"/>
				<updated>2013-03-03T18:04:17Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: /* Método de Runge-Kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot u=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2y;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3y;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}\dot x ^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Influencia del coeficiente &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran una serie de casos con valores de &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; comprendidos entre 0 y 5. Las gráficas muestran las trayectorias y el decrecimiento de la energía para cada uno de los casos:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1 &amp;lt;math&amp;gt;\mu=0&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
Caso limite sin amortiguamiento en el que la energía es constante&lt;br /&gt;
[[Archivo:4c0.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2 &amp;lt;math&amp;gt;\mu=0.5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c05.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 3 &amp;lt;math&amp;gt;\mu=1&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c1.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 4 &amp;lt;math&amp;gt;\mu=2&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c2.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 5 &amp;lt;math&amp;gt;\mu=3&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c3.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 6 &amp;lt;math&amp;gt;\mu=5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c5.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
La conclusión que se extrae en vista de las gráficas es que la influencia del coeficiente de amortiguamiento &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; es muy clara, cuanto mayor es este coeficiente más rapidamente decrece la energía pues la masa se estabiliza antes en torno a la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Usuario:Angelcf|Angelcf]] ([[Usuario discusión:Angelcf|discusión]]) 18:39 1 mar 2013 (CET)&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=741</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=741"/>
				<updated>2013-03-03T18:02:52Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot u=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2x;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3x;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}\dot x ^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Influencia del coeficiente &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran una serie de casos con valores de &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; comprendidos entre 0 y 5. Las gráficas muestran las trayectorias y el decrecimiento de la energía para cada uno de los casos:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1 &amp;lt;math&amp;gt;\mu=0&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
Caso limite sin amortiguamiento en el que la energía es constante&lt;br /&gt;
[[Archivo:4c0.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2 &amp;lt;math&amp;gt;\mu=0.5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c05.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 3 &amp;lt;math&amp;gt;\mu=1&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c1.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 4 &amp;lt;math&amp;gt;\mu=2&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c2.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 5 &amp;lt;math&amp;gt;\mu=3&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c3.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 6 &amp;lt;math&amp;gt;\mu=5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c5.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
La conclusión que se extrae en vista de las gráficas es que la influencia del coeficiente de amortiguamiento &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; es muy clara, cuanto mayor es este coeficiente más rapidamente decrece la energía pues la masa se estabiliza antes en torno a la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Usuario:Angelcf|Angelcf]] ([[Usuario discusión:Angelcf|discusión]]) 18:39 1 mar 2013 (CET)&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=619</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=619"/>
				<updated>2013-03-03T11:15:58Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot u=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;:&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2x;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3x;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}\dot x ^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Influencia del coeficiente &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran una serie de casos con valores de &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; comprendidos entre 0 y 5. Las gráficas muestran las trayectorias y el decrecimiento de la energía para cada uno de los casos:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1 &amp;lt;math&amp;gt;\mu=0&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
Caso limite sin amortiguamiento en el que la energía es constante&lt;br /&gt;
[[Archivo:4c0.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2 &amp;lt;math&amp;gt;\mu=0.5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c05.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 3 &amp;lt;math&amp;gt;\mu=1&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c1.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 4 &amp;lt;math&amp;gt;\mu=2&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c2.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 5 &amp;lt;math&amp;gt;\mu=3&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c3.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 6 &amp;lt;math&amp;gt;\mu=5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c5.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
La conclusión que se extrae en vista de las gráficas es que la influencia del coeficiente de amortiguamiento &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; es muy clara, cuanto mayor es este coeficiente más rapidamente decrece la energía pues la masa se estabiliza antes en torno a la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Usuario:Angelcf|Angelcf]] ([[Usuario discusión:Angelcf|discusión]]) 18:39 1 mar 2013 (CET)&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=567</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=567"/>
				<updated>2013-03-02T18:32:07Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;:&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2x;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3x;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}\dot x ^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Influencia del coeficiente &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran una serie de casos con valores de \mu comprendidos entre 0 y 5. Las gráficas muestran las trayectorias y el decrecimiento de la energía para cada uno de los casos:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1 &amp;lt;math&amp;gt;\mu=0&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
Caso limite sin amortiguamiento en el que la energía es constante&lt;br /&gt;
[[Archivo:4c0.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2 &amp;lt;math&amp;gt;\mu=0.5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c05.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 3 &amp;lt;math&amp;gt;\mu=1&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c1.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 4 &amp;lt;math&amp;gt;\mu=2&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c2.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 5 &amp;lt;math&amp;gt;\mu=3&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c3.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 6 &amp;lt;math&amp;gt;\mu=5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c5.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
La conclusión que se extrae en vista de las gráficas es que la influencia del coeficiente de amortiguamiento &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt; es muy clara, cuanto mayor es este coeficiente más rapidamente decrece la energía pues la masa se estabiliza antes en torno a la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Usuario:Angelcf|Angelcf]] ([[Usuario discusión:Angelcf|discusión]]) 18:39 1 mar 2013 (CET)&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=530</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=530"/>
				<updated>2013-03-01T17:39:43Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;:&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2x;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3x;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}\dot x ^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Influencia del coeficiente &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran una serie de casos con valores de \mu comprendidos entre 0 y 5. Las gráficas muestran las trayectorias y el decrecimiento de la energía para cada uno de los casos:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1 &amp;lt;math&amp;gt;\mu=0&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
Caso limite sin amortiguamiento en el que la energía es constante&lt;br /&gt;
[[Archivo:4c0.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2 &amp;lt;math&amp;gt;\mu=0.5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c05.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 3 &amp;lt;math&amp;gt;\mu=1&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c1.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 4 &amp;lt;math&amp;gt;\mu=2&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c2.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 5 &amp;lt;math&amp;gt;\mu=3&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c3.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 6 &amp;lt;math&amp;gt;\mu=5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c5.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
La conclusión que se extrae en vista de las gráficas es que la influencia del coeficiente de amortiguamiento \mu es muy clara, cuanto mayor es este coeficiente más rapidamente decrece la energía pues la masa se estabiliza antes en torno a la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Usuario:Angelcf|Angelcf]] ([[Usuario discusión:Angelcf|discusión]]) 18:39 1 mar 2013 (CET)&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=529</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=529"/>
				<updated>2013-03-01T17:30:42Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;:&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2x;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3x;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}\dot x ^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Influencia del coeficiente &amp;lt;math&amp;gt;\mu&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A continuación se muestran una serie de casos con valores de \mu comprendidos entre 0 y 5. Las gráficas muestran las trayectorias y el decrecimiento de la energía para cada uno de los casos:&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1 &amp;lt;math&amp;gt;\mu=0&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
Caso limite sin amortiguamiento en el que la energía es constante&lt;br /&gt;
[[Archivo:4c0.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2 &amp;lt;math&amp;gt;\mu=0.5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c05.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 3 &amp;lt;math&amp;gt;\mu=1&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c1.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 4 &amp;lt;math&amp;gt;\mu=2&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c2.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 5 &amp;lt;math&amp;gt;\mu=3&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c3.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 6 &amp;lt;math&amp;gt;\mu=5&amp;lt;/math&amp;gt;&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:4c5.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
La conclusión que se extrae en vista de las gráficas es que la influencia del coeficiente de amortiguamiento \mu es muy clara, cuanto mayor es este coeficiente más rapidamente decrece la energía pues la masa se estabiliza antes en torno a la posición de equilibrio.&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:4c5.png&amp;diff=528</id>
		<title>Archivo:4c5.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:4c5.png&amp;diff=528"/>
				<updated>2013-03-01T17:25:42Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:4c3.png&amp;diff=527</id>
		<title>Archivo:4c3.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:4c3.png&amp;diff=527"/>
				<updated>2013-03-01T17:24:23Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:4c2.png&amp;diff=526</id>
		<title>Archivo:4c2.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:4c2.png&amp;diff=526"/>
				<updated>2013-03-01T17:23:47Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:4c1.png&amp;diff=525</id>
		<title>Archivo:4c1.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:4c1.png&amp;diff=525"/>
				<updated>2013-03-01T17:23:17Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:4c05.png&amp;diff=524</id>
		<title>Archivo:4c05.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:4c05.png&amp;diff=524"/>
				<updated>2013-03-01T17:22:48Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:4c0.png&amp;diff=523</id>
		<title>Archivo:4c0.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:4c0.png&amp;diff=523"/>
				<updated>2013-03-01T17:21:57Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=522</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=522"/>
				<updated>2013-03-01T17:02:47Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;:&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2x;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3x;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}\dot x ^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
El&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=521</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=521"/>
				<updated>2013-03-01T17:02:09Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    &lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h*k1u;&lt;br /&gt;
    k2y=vv(n)+1/2*h*k1v;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h*k1x)+k2/m1*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h*k1x)-((k2+k3)/m2)*(yy(n)+1/2*k1y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h*k2u;&lt;br /&gt;
    k3y=vv(n)+1/2*h*k2v;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h*k2x)+k2/m1*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h*k2x)-((k2+k3)/m2)*(yy(n)+1/2*k2y*h);&lt;br /&gt;
    &lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h*k3u;&lt;br /&gt;
    k4y=vv(n)+h*k3v;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3y*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3y*h);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;:&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Para aplicar el método a la ecuación diferencial vuelve a ser necesario reducir el orden hasta uno. Aplicando el mismo cambio de variable que para Newmark el codigo de MATLAB que aproxima la solución es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=yy(n);&lt;br /&gt;
    k1y=(-c*yy(n)-k1*xx(n))/m1;&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=yy(n)+1/2*h*k1y;&lt;br /&gt;
    k2y=(-c*(yy(n)+1/2*k1y*h)-k1*(xx(n)+1/2*h*k1x))/m1;&lt;br /&gt;
    %Tercera k&lt;br /&gt;
    k3x=yy(n)+1/2*h*k2x;&lt;br /&gt;
    k3y=(-c*(yy(n)+1/2*k2y*h)-k1*(xx(n)+1/2*h*k2x))/m1;&lt;br /&gt;
    %Cuarta K&lt;br /&gt;
    k4x=yy(n)+h*k3x;&lt;br /&gt;
    k4y=(-c*(yy(n)+k3y*h)-k1*(xx(n)+h*k3x))/m1;&lt;br /&gt;
    &lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Energía del sistema===&lt;br /&gt;
En el primer caso al no existir rozamiento la energía del sistema permanece constante. Pero la presencia de un amortiguador viscoso hace que el sistema se vaya frenando y, por lo tanto, perdiendo energía. La ecuación de la energía del sistema es::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;E=\frac{1}{2}m_{1}(\dot x)^2+ \frac{1}{2}k_{1}x^2&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Enerlog.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
El&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Enerlog.png&amp;diff=520</id>
		<title>Archivo:Enerlog.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Enerlog.png&amp;diff=520"/>
				<updated>2013-03-01T17:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ener4.png&amp;diff=518</id>
		<title>Archivo:Ener4.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ener4.png&amp;diff=518"/>
				<updated>2013-03-01T16:45:06Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Run4.png&amp;diff=517</id>
		<title>Archivo:Run4.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Run4.png&amp;diff=517"/>
				<updated>2013-03-01T16:35:36Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=516</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=516"/>
				<updated>2013-03-01T16:14:47Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
[[Archivo:Muellemasa.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h;&lt;br /&gt;
    k2y=vv(n)+1/2*h;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h)+k2/m1*(yy(n)+1/2*k1u*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h)-((k2+k3)/m2)*(yy(n)+1/2*k1v*h);&lt;br /&gt;
&lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h;&lt;br /&gt;
    k3y=vv(n)+1/2*h;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h)+k2/m1*(yy(n)+1/2*k2u*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h)-((k2+k3)/m2)*(yy(n)+1/2*k2v*h);&lt;br /&gt;
&lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h;&lt;br /&gt;
    k4y=vv(n)+h;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3u*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3v*h);&lt;br /&gt;
&lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
==Muelle y amortiguador==&lt;br /&gt;
En algunos casos el sistema presenta, además de la masa y el resorte, un amortiguador viscoso. El efecto de este amortiguador va reduciendo la amplitud de la oscilación hasta que la masa se estabiliza nuevamente en la posición de equilibrio.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Mra.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
Aplicando de nuevo la segunda ley de Newton al sistema y tomando u(t)=0 obtenemos la ecuación diferencial:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;m_{1}\ddot x+c \dot x +k_{1}x=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando los parámetros anteriores::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\mu=c=1&amp;lt;/math&amp;gt;:&lt;br /&gt;
La ecuación se resuelve en MATLAB aplicando los metodos de Newmark y de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Al ser la ecuación de orden dos es necesario reducir el orden en uno. Aplicando el cambio de variable &amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt; resulta un sistema de ecuaciones diferenciales de orden uno::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot y=-cy-k_{1}x&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% sistema masa-muelle con amortiguador viscoso&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
&lt;br /&gt;
%datos&lt;br /&gt;
k1=4;&lt;br /&gt;
m1=2;&lt;br /&gt;
c=1;&lt;br /&gt;
 &lt;br /&gt;
%condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=0;&lt;br /&gt;
 &lt;br /&gt;
%parametros newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
N=1000;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
 &lt;br /&gt;
%primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
 &lt;br /&gt;
%vector solucion&lt;br /&gt;
S=[x(1) ; y(1)];&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+beta*(k1/m1)*h^2 , beta*(c/m1)*h^2 ; ...&lt;br /&gt;
        h*gamma*k1/m1 , 1+h*gamma*c/m1 ];&lt;br /&gt;
    B=[1-(1/2-beta)*k1/m1*h^2 , h-(1/2-beta)*c/m1*h^2 ; ...&lt;br /&gt;
        -h*(1-gamma)*k1/m1 , 1-h*(1-gamma)*c/m1 ];&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
axis([0,5,0,10])&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
legend('Masa m1','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New4.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:New4.png&amp;diff=515</id>
		<title>Archivo:New4.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:New4.png&amp;diff=515"/>
				<updated>2013-03-01T16:13:37Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Mra.png&amp;diff=510</id>
		<title>Archivo:Mra.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Mra.png&amp;diff=510"/>
				<updated>2013-03-01T15:52:13Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Muellemasa.png&amp;diff=509</id>
		<title>Archivo:Muellemasa.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Muellemasa.png&amp;diff=509"/>
				<updated>2013-03-01T15:40:46Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=498</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=498"/>
				<updated>2013-03-01T15:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: /* Efecto de la velocidad inicial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h;&lt;br /&gt;
    k2y=vv(n)+1/2*h;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h)+k2/m1*(yy(n)+1/2*k1u*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h)-((k2+k3)/m2)*(yy(n)+1/2*k1v*h);&lt;br /&gt;
&lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h;&lt;br /&gt;
    k3y=vv(n)+1/2*h;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h)+k2/m1*(yy(n)+1/2*k2u*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h)-((k2+k3)/m2)*(yy(n)+1/2*k2v*h);&lt;br /&gt;
&lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h;&lt;br /&gt;
    k4y=vv(n)+h;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3u*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3v*h);&lt;br /&gt;
&lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial en la trayectoria===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=497</id>
		<title>Sistema resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistema_resorte-masa&amp;diff=497"/>
				<updated>2013-03-01T15:13:33Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: Página creada con «Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas.  ==Introducción== El caso considerado está formado por tres muelles y dos masas, unidos a dos ...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Muchos modelos de vibraciones se modelizan con sistemas de muelles y masas. &lt;br /&gt;
==Introducción==&lt;br /&gt;
El caso considerado está formado por tres muelles y dos masas, unidos a dos paredes separadas 9 metros, que se deslizan sin rozamiento sobre un plano horizontal.&lt;br /&gt;
&lt;br /&gt;
==Ecuaciones diferenciales==&lt;br /&gt;
La solución del un sistema resorte-masa se obtiene de resolver las ecuaciones diferenciales obtenidas al aplicar la segunda ley de Newton a las dos masas (en adelante '''m1''' y '''m2'''). Los grados de libertad usados son '''x''' e '''y''', siendo estos la distancia de cada masa a su posición de equilibrio. Con este criterio las ecuaciones obtenidas son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}m_{1}\ddot x=k_{2}(y-x)-k_{1}x\\m_{2}\ddot y=-k_{3}y-k_{2}(y-x)\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Resolucion==&lt;br /&gt;
Para resolver este sistema de ecuaciones diferenciales se van a realizar dos aproximaciones con métodos numéricos iterativos en MATLAB:&lt;br /&gt;
*Método de Newmark para sistemas de orden 2&lt;br /&gt;
*Método de Runge-Kutta de cuarto orden&lt;br /&gt;
Los valores constantes usados para la resolución son los siguientes::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}=2~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}=1~[kg]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{1}=4~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{2}=2~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;k_{3}=1~[N/m]&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
Para poder aplicar el metodo es necesario reducir el orden de la ecuación en uno, de manera que realizamos el cambio de variable::&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Una vez realizado el cambio de variable el sistema resultante es::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
Con las condiciones iniciales &amp;lt;math&amp;gt;x_{0}=1~[m]&amp;lt;/math&amp;gt; e &amp;lt;math&amp;gt;y_{0}=1,5~[m]&amp;lt;/math&amp;gt; el código en MATLAB del método es:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
 &lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
 &lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
 &lt;br /&gt;
% Parametros Newmark&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
 &lt;br /&gt;
% Primeros valores del vector solucion&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
u(1)=u0;&lt;br /&gt;
v(1)=v0;&lt;br /&gt;
 &lt;br /&gt;
% Vector solucion S&lt;br /&gt;
S=[x(1);y(1);u(1);v(1)];&lt;br /&gt;
 &lt;br /&gt;
% Metodo de Newmark&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Matrices de coeficientes&lt;br /&gt;
    A=[1+beta*((k1+k2)/m1)*h^2 , -beta*(k2/m1)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        -beta*(k2/m2)*h^2 , 1+beta*((k2+k3)/m2)*h^2 , 0 , 0 ; ...&lt;br /&gt;
        h*gamma*((k2+k1)/m1) , -h*gamma*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        -h*gamma*(k2/m2) , h*gamma*((k2+k3)/m2) , 0 , 1];&lt;br /&gt;
    &lt;br /&gt;
    B=[1-(1/2-beta)*((k2+k1)/m1)*h^2, (1/2-beta)*(k2/m1)*h^2 , h , 0 ; ...&lt;br /&gt;
        (1/2-beta)*(k2/m2)*h^2 , 1-(1/2-beta)*((k2+k3)/m2)*h^2 , 0 , h ; ...&lt;br /&gt;
        -h*(1-gamma)*((k2+k1)/m1) , h*(1-gamma)*(k2/m1) , 1 , 0 ; ...&lt;br /&gt;
        h*(1-gamma)*(k2/m2) , -h*(1-gamma)*((k3+k2)/m2) , 0 , 1];&lt;br /&gt;
&lt;br /&gt;
    % Sistema&lt;br /&gt;
    S=A\(B*S);&lt;br /&gt;
    x(n+1)=S(1);&lt;br /&gt;
    y(n+1)=S(2);&lt;br /&gt;
    u(n+1)=S(3);&lt;br /&gt;
    v(n+1)=S(4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Representacion&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
figure(1)&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Newmark')&lt;br /&gt;
plot(x+2,t,'-')&lt;br /&gt;
plot(y+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:New2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Runge-Kutta===&lt;br /&gt;
Al igual que con el metodo de Newmark, para aplicar Runge-Kutta al problema es necesario reducir el orden de la ecuacion, por lo que realizamos el mismo cambio de variable y, por consiguiente, obtenemos el mismo sistema de ecuaciones::&lt;br /&gt;
&amp;lt;math&amp;gt;m_{1}\dot x=-(k_{1}+k_{2})x+k_{2}y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;m_{2}\dot v=k_{2}x-(k_{2}+k_{3})y&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
El código en MATLAB resulta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Sistema de 2 masas y 3 muelles&lt;br /&gt;
clear all&lt;br /&gt;
% Intervalo de tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Datos&lt;br /&gt;
k1=4;&lt;br /&gt;
k2=2;&lt;br /&gt;
k3=1;&lt;br /&gt;
m1=2;&lt;br /&gt;
m2=1;&lt;br /&gt;
%Condiciones iniciales&lt;br /&gt;
x0=1;&lt;br /&gt;
y0=1.5;&lt;br /&gt;
u0=0;&lt;br /&gt;
v0=0;&lt;br /&gt;
&lt;br /&gt;
N=1000; % Pasos&lt;br /&gt;
h=(tN-t0)/N; % Intervalo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Primeros valores&lt;br /&gt;
xx(1)=x0;&lt;br /&gt;
yy(1)=y0;&lt;br /&gt;
uu(1)=u0;&lt;br /&gt;
vv(1)=v0;&lt;br /&gt;
&lt;br /&gt;
% Metodo de Runge-Kutta&lt;br /&gt;
&lt;br /&gt;
for n=1:N&lt;br /&gt;
    % Primera K&lt;br /&gt;
    k1x=uu(n);&lt;br /&gt;
    k1y=vv(n);&lt;br /&gt;
    k1u=-(k2+k1)/m1*xx(n)+k2/m1*yy(n);&lt;br /&gt;
    k1v=k2/m2*xx(n)-((k2+k3)/m2)*yy(n);&lt;br /&gt;
    % Segunda K&lt;br /&gt;
    k2x=uu(n)+1/2*h;&lt;br /&gt;
    k2y=vv(n)+1/2*h;&lt;br /&gt;
    k2u=-(k2+k1)/m1*(xx(n)+1/2*h)+k2/m1*(yy(n)+1/2*k1u*h);&lt;br /&gt;
    k2v=k2/m2*(xx(n)+1/2*h)-((k2+k3)/m2)*(yy(n)+1/2*k1v*h);&lt;br /&gt;
&lt;br /&gt;
    % Tercera K&lt;br /&gt;
    k3x=uu(n)+1/2*h;&lt;br /&gt;
    k3y=vv(n)+1/2*h;&lt;br /&gt;
    k3u=-(k2+k1)/m1*(xx(n)+1/2*h)+k2/m1*(yy(n)+1/2*k2u*h);&lt;br /&gt;
    k3v=k2/m2*(xx(n)+1/2*h)-((k2+k3)/m2)*(yy(n)+1/2*k2v*h);&lt;br /&gt;
&lt;br /&gt;
    % Cuarta K&lt;br /&gt;
    k4x=uu(n)+h;&lt;br /&gt;
    k4y=vv(n)+h;&lt;br /&gt;
    k4u=-(k2+k1)/m1*(xx(n)+h)+k2/m1*(yy(n)+k3u*h);&lt;br /&gt;
    k4v=k2/m2*(xx(n)+h)-((k2+k3)/m2)*(yy(n)+k3v*h);&lt;br /&gt;
&lt;br /&gt;
    xx(n+1)=xx(n)+(h/6)*(k1x+2*k2x+2*k3x+k4x);&lt;br /&gt;
    yy(n+1)=yy(n)+(h/6)*(k1y+2*k2y+2*k3y+k4y);&lt;br /&gt;
    uu(n+1)=uu(n)+(h/6)*(k1u+2*k2u+2*k3u+k4u);&lt;br /&gt;
    vv(n+1)=vv(n)+(h/6)*(k1v+2*k2v+2*k3v+k4v);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
axis([0,9,0,10])&lt;br /&gt;
hold on&lt;br /&gt;
title('Runge-Kutta')&lt;br /&gt;
plot(xx+2,t,'-')&lt;br /&gt;
plot(yy+4,t,'-r')&lt;br /&gt;
plot(2,t,'-g')&lt;br /&gt;
plot(4,t,'-g')&lt;br /&gt;
legend('Masa m1','Masa m2','Posicion de equilibrio')&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Run2.png|marco|centro]]&lt;br /&gt;
&lt;br /&gt;
===Efecto de la velocidad inicial===&lt;br /&gt;
En el caso anterior ambas masas partían de una posición distinta a la del equilibrio pero no tenían velocidad inicial impuesta. En este apartado se estudia el movimiento que describen las masas en 2 casos&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en el mismo sentido.&lt;br /&gt;
* Velocidades iniciales de 1 m/s para ambas masas en sentidos opuestos.&lt;br /&gt;
Estableciendo las condiciones iniciales:&lt;br /&gt;
&amp;lt;math&amp;gt; Caso~1=\begin{cases} \dot x=1~[m/s]\\ \dot y=1~[m/s] \end{cases} &amp;lt;/math&amp;gt;:&amp;lt;math&amp;gt; Caso~2=\begin{cases} \dot x=1~[m/s] \\ \dot y=-1~[m/s] \end{cases} &amp;lt;/math&amp;gt;&lt;br /&gt;
Las masas describen estos movimientos:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 1&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3a.png|marco|centro]]&lt;br /&gt;
'''&amp;lt;big&amp;gt;Caso 2&amp;lt;/big&amp;gt;'''&lt;br /&gt;
[[Archivo:New3b.png|marco|centro]]&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:New3b.png&amp;diff=491</id>
		<title>Archivo:New3b.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:New3b.png&amp;diff=491"/>
				<updated>2013-03-01T15:08:08Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:New3a.png&amp;diff=490</id>
		<title>Archivo:New3a.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:New3a.png&amp;diff=490"/>
				<updated>2013-03-01T15:07:57Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Run2.png&amp;diff=474</id>
		<title>Archivo:Run2.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Run2.png&amp;diff=474"/>
				<updated>2013-03-01T14:47:30Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:New2.png&amp;diff=473</id>
		<title>Archivo:New2.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:New2.png&amp;diff=473"/>
				<updated>2013-03-01T14:47:01Z</updated>
		
		<summary type="html">&lt;p&gt;Angelcf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Angelcf</name></author>	</entry>

	</feed>