<?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=Alvarocr</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=Alvarocr"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/Alvarocr"/>
		<updated>2026-05-03T16:37:07Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1475</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1475"/>
				<updated>2013-03-05T10:57:58Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Método Runge-Kutta */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
===Comparación===&lt;br /&gt;
A pesar de la diferente disposición de las gráficas en el método de Newmark y en el de Runge-Kutta, es apreciable con la propia vista que el resultado obtenido por ambos métodos es muy parecido, aun así hemos planteado un código de Matlab de tal forma que se superpongan ambas gráficas. Al realizar esto se puede apreciar que hasta que no ampliamos la imagen hasta obtener escalas centesimales no se parecia la variación, por lo que ambos métodos dan resultados muy similares. Además, con el fin de asegurarnos de realizar una comparación precisa, se ha planteado en el código un cociente entre las posiciones obtenidas según ambos métodos, obteniéndose como resultado siempre la unidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
 &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
 &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
 &lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.}}&lt;br /&gt;
Al activar el código aquí se planteado se obtienen las siguientes gráficas:&lt;br /&gt;
[[Archivo:Comparacion.jpg|marco|centro|Posiciones de ambas masas obtenidas por los dos métodos superpuestas]]&lt;br /&gt;
[[Archivo:Comparacionzoom.jpg|marco|centro|Al hacer zoom en la gráfica se acaba apreciando una separación entre ellas]]&lt;br /&gt;
[[Archivo:Cociente.jpg|marco|centro|Cociente entre las posiciones de la masa 1 según ambos métodos]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A partir de ambos métodos se obtienen semejantes gráficas de la velocidad y posición que es la siguiente:&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
%lo que vamos a hacer es crear un bucle que me va a coger 10 valores de mu,&lt;br /&gt;
%desde 1 hasta 5, aumentando de 0.5 en 0.5&lt;br /&gt;
g=5;&lt;br /&gt;
for i=1:0.5:g&lt;br /&gt;
M=[0,1;-2,-i/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
   y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
subplot(g*2,3,1+(((i*2)-1)*3)) %el desplazamiento lo colocamos en la primera columna&lt;br /&gt;
plot(t,y(1,:),'red');&lt;br /&gt;
subplot(g*2,3,2+(((i*2)-1)*3))%la velocidad en la segunda columna&lt;br /&gt;
plot(t,y(2,:),'green');&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v));&lt;br /&gt;
subplot(g*2,3,3+(((i*2)-1)*3))%la energia en la tercera&lt;br /&gt;
plot(t,E)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se muestran a continuación los cambios que produce la μ en la posición, la velocidad y la energía:&lt;br /&gt;
[[Archivo:Comparacionmu.jpg|marco|centro|Desplazamiento, velocidad y energía aumentando μ de 1 a 5 en intervalos de 0,5]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Discusi%C3%B3n:P%C3%A1gina_principal&amp;diff=1474</id>
		<title>Discusión:Página principal</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Discusi%C3%B3n:P%C3%A1gina_principal&amp;diff=1474"/>
				<updated>2013-03-05T10:39:35Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Comentarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Comentarios =&lt;br /&gt;
Somos el grupo 18 y nuestro trabajo Sistemas resorte-masa no aparece en la página principal. Gracias.&lt;br /&gt;
Añade un comentario debajo si tu artículo no aparece en la portada. Indica el nombre de tu artículo, y no te olvides de firmar (mira el icono con la pluma/lápiz al editar esta página). --[[Usuario:Herraiz|Herraiz]] ([[Usuario discusión:Herraiz|discusión]]) 23:09 4 mar 2013 (CET)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1471</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1471"/>
				<updated>2013-03-05T10:31:08Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Influencia de μ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
===Comparación===&lt;br /&gt;
A pesar de la diferente disposición de las gráficas en el método de Newmark y en el de Runge-Kutta, es apreciable con la propia vista que el resultado obtenido por ambos métodos es muy parecido, aun así hemos planteado un código de Matlab de tal forma que se superpongan ambas gráficas. Al realizar esto se puede apreciar que hasta que no ampliamos la imagen hasta obtener escalas centesimales no se parecia la variación, por lo que ambos métodos dan resultados muy similares. Además, con el fin de asegurarnos de realizar una comparación precisa, se ha planteado en el código un cociente entre las posiciones obtenidas según ambos métodos, obteniéndose como resultado siempre la unidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
 &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
 &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
 &lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.}}&lt;br /&gt;
Al activar el código aquí se planteado se obtienen las siguientes gráficas:&lt;br /&gt;
[[Archivo:Comparacion.jpg|marco|centro|Posiciones de ambas masas obtenidas por los dos métodos superpuestas]]&lt;br /&gt;
[[Archivo:Comparacionzoom.jpg|marco|centro|Al hacer zoom en la gráfica se acaba apreciando una separación entre ellas]]&lt;br /&gt;
[[Archivo:Cociente.jpg|marco|centro|Cociente entre las posiciones de la masa 1 según ambos métodos]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A partir de ambos métodos se obtienen semejantes gráficas de la velocidad y posición que es la siguiente:&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
%lo que vamos a hacer es crear un bucle que me va a coger 10 valores de mu,&lt;br /&gt;
%desde 1 hasta 5, aumentando de 0.5 en 0.5&lt;br /&gt;
g=5;&lt;br /&gt;
for i=1:0.5:g&lt;br /&gt;
M=[0,1;-2,-i/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
   y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
subplot(g*2,3,1+(((i*2)-1)*3)) %el desplazamiento lo colocamos en la primera columna&lt;br /&gt;
plot(t,y(1,:),'red');&lt;br /&gt;
subplot(g*2,3,2+(((i*2)-1)*3))%la velocidad en la segunda columna&lt;br /&gt;
plot(t,y(2,:),'green');&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v));&lt;br /&gt;
subplot(g*2,3,3+(((i*2)-1)*3))%la energia en la tercera&lt;br /&gt;
plot(t,E)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se muestran a continuación los cambios que produce la μ en la posición, la velocidad y la energía:&lt;br /&gt;
[[Archivo:Comparacionmu.jpg|marco|centro|Desplazamiento, velocidad y energía aumentando μ de 1 a 5 en intervalos de 0,5]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Comparacionmu.jpg&amp;diff=1470</id>
		<title>Archivo:Comparacionmu.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Comparacionmu.jpg&amp;diff=1470"/>
				<updated>2013-03-05T10:28:52Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Comparación de los desplazamientos, velocidades y energías&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comparación de los desplazamientos, velocidades y energías&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1469</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1469"/>
				<updated>2013-03-05T10:27:12Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Método de Newmark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
===Comparación===&lt;br /&gt;
A pesar de la diferente disposición de las gráficas en el método de Newmark y en el de Runge-Kutta, es apreciable con la propia vista que el resultado obtenido por ambos métodos es muy parecido, aun así hemos planteado un código de Matlab de tal forma que se superpongan ambas gráficas. Al realizar esto se puede apreciar que hasta que no ampliamos la imagen hasta obtener escalas centesimales no se parecia la variación, por lo que ambos métodos dan resultados muy similares. Además, con el fin de asegurarnos de realizar una comparación precisa, se ha planteado en el código un cociente entre las posiciones obtenidas según ambos métodos, obteniéndose como resultado siempre la unidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
 &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
 &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
 &lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.}}&lt;br /&gt;
Al activar el código aquí se planteado se obtienen las siguientes gráficas:&lt;br /&gt;
[[Archivo:Comparacion.jpg|marco|centro|Posiciones de ambas masas obtenidas por los dos métodos superpuestas]]&lt;br /&gt;
[[Archivo:Comparacionzoom.jpg|marco|centro|Al hacer zoom en la gráfica se acaba apreciando una separación entre ellas]]&lt;br /&gt;
[[Archivo:Cociente.jpg|marco|centro|Cociente entre las posiciones de la masa 1 según ambos métodos]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
A partir de ambos métodos se obtienen semejantes gráficas de la velocidad y posición que es la siguiente:&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
%lo que vamos a hacer es crear un bucle que me va a coger 10 valores de mu,&lt;br /&gt;
%desde 1 hasta 5, aumentando de 0.5 en 0.5&lt;br /&gt;
g=5;&lt;br /&gt;
for i=1:0.5:g&lt;br /&gt;
M=[0,1;-2,-i/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
   y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
subplot(g*2,3,1+(((i*2)-1)*3)) %el desplazamiento lo colocamos en la primera columna&lt;br /&gt;
plot(t,y(1,:),'red');&lt;br /&gt;
subplot(g*2,3,2+(((i*2)-1)*3))%la velocidad en la segunda columna&lt;br /&gt;
plot(t,y(2,:),'green');&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v));&lt;br /&gt;
subplot(g*2,3,3+(((i*2)-1)*3))%la energia en la tercera&lt;br /&gt;
plot(t,E)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1468</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1468"/>
				<updated>2013-03-05T10:26:02Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Comparación */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
===Comparación===&lt;br /&gt;
A pesar de la diferente disposición de las gráficas en el método de Newmark y en el de Runge-Kutta, es apreciable con la propia vista que el resultado obtenido por ambos métodos es muy parecido, aun así hemos planteado un código de Matlab de tal forma que se superpongan ambas gráficas. Al realizar esto se puede apreciar que hasta que no ampliamos la imagen hasta obtener escalas centesimales no se parecia la variación, por lo que ambos métodos dan resultados muy similares. Además, con el fin de asegurarnos de realizar una comparación precisa, se ha planteado en el código un cociente entre las posiciones obtenidas según ambos métodos, obteniéndose como resultado siempre la unidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
 &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
 &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
 &lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.}}&lt;br /&gt;
Al activar el código aquí se planteado se obtienen las siguientes gráficas:&lt;br /&gt;
[[Archivo:Comparacion.jpg|marco|centro|Posiciones de ambas masas obtenidas por los dos métodos superpuestas]]&lt;br /&gt;
[[Archivo:Comparacionzoom.jpg|marco|centro|Al hacer zoom en la gráfica se acaba apreciando una separación entre ellas]]&lt;br /&gt;
[[Archivo:Cociente.jpg|marco|centro|Cociente entre las posiciones de la masa 1 según ambos métodos]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
%lo que vamos a hacer es crear un bucle que me va a coger 10 valores de mu,&lt;br /&gt;
%desde 1 hasta 5, aumentando de 0.5 en 0.5&lt;br /&gt;
g=5;&lt;br /&gt;
for i=1:0.5:g&lt;br /&gt;
M=[0,1;-2,-i/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
   y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
subplot(g*2,3,1+(((i*2)-1)*3)) %el desplazamiento lo colocamos en la primera columna&lt;br /&gt;
plot(t,y(1,:),'red');&lt;br /&gt;
subplot(g*2,3,2+(((i*2)-1)*3))%la velocidad en la segunda columna&lt;br /&gt;
plot(t,y(2,:),'green');&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v));&lt;br /&gt;
subplot(g*2,3,3+(((i*2)-1)*3))%la energia en la tercera&lt;br /&gt;
plot(t,E)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1467</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1467"/>
				<updated>2013-03-05T10:25:33Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Influencia de μ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
===Comparación===&lt;br /&gt;
A pesar de la diferente disposición de las gráficas en el método de Newmark y en el de Runge-Kutta, es apreciable con la propia vista que el resultado obtenido por ambos métodos es muy parecido, aun así hemos planteado un código de Matlab de tal forma que se superpongan ambas gráficas. Al realizar esto se puede apreciar que hasta que no ampliamos la imagen hasta obtener escalas centesimales no se parecia la variación, por lo que ambos métodos dan resultados muy similares. Además, con el fin de asegurarnos de realizar una comparación precisa, se ha planteado en el código un cociente entre las posiciones obtenidas según ambos métodos, obteniéndose como resultado siempre la unidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
 &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
 &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
 &lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.}}&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
%lo que vamos a hacer es crear un bucle que me va a coger 10 valores de mu,&lt;br /&gt;
%desde 1 hasta 5, aumentando de 0.5 en 0.5&lt;br /&gt;
g=5;&lt;br /&gt;
for i=1:0.5:g&lt;br /&gt;
M=[0,1;-2,-i/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
   y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
subplot(g*2,3,1+(((i*2)-1)*3)) %el desplazamiento lo colocamos en la primera columna&lt;br /&gt;
plot(t,y(1,:),'red');&lt;br /&gt;
subplot(g*2,3,2+(((i*2)-1)*3))%la velocidad en la segunda columna&lt;br /&gt;
plot(t,y(2,:),'green');&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v));&lt;br /&gt;
subplot(g*2,3,3+(((i*2)-1)*3))%la energia en la tercera&lt;br /&gt;
plot(t,E)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Cociente.jpg&amp;diff=1466</id>
		<title>Archivo:Cociente.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Cociente.jpg&amp;diff=1466"/>
				<updated>2013-03-05T10:25:27Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Cociente entre las posiciones de x&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cociente entre las posiciones de x&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1465</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1465"/>
				<updated>2013-03-05T10:21:05Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
===Comparación===&lt;br /&gt;
A pesar de la diferente disposición de las gráficas en el método de Newmark y en el de Runge-Kutta, es apreciable con la propia vista que el resultado obtenido por ambos métodos es muy parecido, aun así hemos planteado un código de Matlab de tal forma que se superpongan ambas gráficas. Al realizar esto se puede apreciar que hasta que no ampliamos la imagen hasta obtener escalas centesimales no se parecia la variación, por lo que ambos métodos dan resultados muy similares. Además, con el fin de asegurarnos de realizar una comparación precisa, se ha planteado en el código un cociente entre las posiciones obtenidas según ambos métodos, obteniéndose como resultado siempre la unidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
 &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
 &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
 &lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.}}&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN; &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Comparacionzoom.jpg&amp;diff=1464</id>
		<title>Archivo:Comparacionzoom.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Comparacionzoom.jpg&amp;diff=1464"/>
				<updated>2013-03-05T10:18:50Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Zoom de las comparaciones&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zoom de las comparaciones&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1463</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1463"/>
				<updated>2013-03-05T10:18:10Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Influencia de μ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
===Comparación===&lt;br /&gt;
A pesar de la diferente disposición de las gráficas en el método de Newmark y en el de Runge-Kutta, es apreciable con la propia vista que el resultado obtenido por ambos métodos es muy parecido, aun así hemos planteado un código de Matlab de tal forma que se superpongan ambas gráficas. Al realizar esto se puede apreciar que hasta que no ampliamos la imagen hasta obtener escalas centesimales no se parecia la variación, por lo que ambos métodos dan resultados muy similares. Además, con el fin de asegurarnos de realizar una comparación precisa, se ha planteado en el código un cociente entre las posiciones obtenidas según ambos métodos, obteniéndose como resultado siempre la unidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
 &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
 &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
 &lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.}}&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN; &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.&lt;br /&gt;
&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Comparacion.jpg&amp;diff=1462</id>
		<title>Archivo:Comparacion.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Comparacion.jpg&amp;diff=1462"/>
				<updated>2013-03-05T10:18:08Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Superposición de las gráficas siguiendo Newmark y Runge-Kutta&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Superposición de las gráficas siguiendo Newmark y Runge-Kutta&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1461</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1461"/>
				<updated>2013-03-05T10:17:35Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Aproximación de la posición mediante métodos numéricos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
===Comparación===&lt;br /&gt;
A pesar de la diferente disposición de las gráficas en el método de Newmark y en el de Runge-Kutta, es apreciable con la propia vista que el resultado obtenido por ambos métodos es muy parecido, aun así hemos planteado un código de Matlab de tal forma que se superpongan ambas gráficas. Al realizar esto se puede apreciar que hasta que no ampliamos la imagen hasta obtener escalas centesimales no se parecia la variación, por lo que ambos métodos dan resultados muy similares. Además, con el fin de asegurarnos de realizar una comparación precisa, se ha planteado en el código un cociente entre las posiciones obtenidas según ambos métodos, obteniéndose como resultado siempre la unidad.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
 &lt;br /&gt;
%RUNGE-KUTTA&lt;br /&gt;
y=[1;0;1.5;0];&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%NEWMARK&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
S=[1;1.5;0;0]; &lt;br /&gt;
 &lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
 &lt;br /&gt;
for n=1:N&lt;br /&gt;
    S(:,n+1)= A\(B*S(:,n));&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
%COMPARACION DE DESPLAZAMIENTOS&lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
S(2,:)=S(2,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(S(1,:),t,'red');&lt;br /&gt;
plot(S(2,:),t,'red');&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
figure(2)&lt;br /&gt;
z=y(1,:)/S(1,:);&lt;br /&gt;
plot(t,z);&lt;br /&gt;
%como podemos ver el la gráfica que nos divide las x de rk con las de&lt;br /&gt;
%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere&lt;br /&gt;
%decir que la diferencia entre ambos métodos en prácticamente nula.&lt;br /&gt;
 &lt;br /&gt;
%NOTA:se podría hacer lo mismo comparando las velocidades y saldría&lt;br /&gt;
%lo mismo.}}&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;br /&gt;
{{matlab|codigo=%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;t0=0; tN=10; N=400; h=(tN-t0)/N;t=t0:h:tN;%RUNGE-KUTTAy=[1;0;1.5;0];M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; for n=1:N    k1=M*y(:,n);    k2=M*(y(:,n)+1/2*k1*h);    k3=M*(y(:,n)+1/2*k2*h);    k4=M*(y(:,n)+k3*h);   y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);end%NEWMARKbeta=1/4;gamma=1/2;S=[1;1.5;0;0]; A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1] for n=1:N    S(:,n+1)= A\(B*S(:,n));end%COMPARACION DE DESPLAZAMIENTOSfigure(1)hold ony(3,:)=y(3,:)+4S(2,:)=S(2,:)+4plot(y(1,:),t,'black');plot(y(3,:),t,'black');plot(S(1,:),t,'red');plot(S(2,:),t,'red');hold offfigure(2)z=y(1,:)/S(1,:);plot(t,z);%como podemos ver el la gráfica que nos divide las x de rk con las de%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere%decir que la diferencia entre ambos métodos en prácticamente nula.%NOTA:se podría hacer lo mismo comparando las velocidades y saldría lo mismo.}}&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1460</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1460"/>
				<updated>2013-03-05T10:16:09Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Influencia de μ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;br /&gt;
{{matlab|codigo=%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;t0=0; tN=10; N=400; h=(tN-t0)/N;t=t0:h:tN;%RUNGE-KUTTAy=[1;0;1.5;0];M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; for n=1:N    k1=M*y(:,n);    k2=M*(y(:,n)+1/2*k1*h);    k3=M*(y(:,n)+1/2*k2*h);    k4=M*(y(:,n)+k3*h);   y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);end%NEWMARKbeta=1/4;gamma=1/2;S=[1;1.5;0;0]; A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1] for n=1:N    S(:,n+1)= A\(B*S(:,n));end%COMPARACION DE DESPLAZAMIENTOSfigure(1)hold ony(3,:)=y(3,:)+4S(2,:)=S(2,:)+4plot(y(1,:),t,'black');plot(y(3,:),t,'black');plot(S(1,:),t,'red');plot(S(2,:),t,'red');hold offfigure(2)z=y(1,:)/S(1,:);plot(t,z);%como podemos ver el la gráfica que nos divide las x de rk con las de%newmark, el cociente es 1 o extremadamente próximo a 1, lo que quiere%decir que la diferencia entre ambos métodos en prácticamente nula.%NOTA:se podría hacer lo mismo comparando las velocidades y saldría lo mismo.}}&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1459</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1459"/>
				<updated>2013-03-05T10:12:23Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Influencia de μ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al disminuir más la velocidad en el mismo tiempo obteniendo una pérdida energía cinética, puesto que es proporcional a la velocidad.&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1458</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1458"/>
				<updated>2013-03-05T10:09:22Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-(C/2)\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al decrecer mayor velocidad en el mismo tiempo pues pierde energía cinética.&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1457</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1457"/>
				<updated>2013-03-05T10:08:52Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u&amp;lt;/math&amp;gt;&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot u=-2x-(C/2)u&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, aplicando los métodos de Runge-Kutta y Newmark, obtenemos:&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al decrecer mayor velocidad en el mismo tiempo pues pierde energía cinética.&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1456</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1456"/>
				<updated>2013-03-05T10:04:56Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Influencia de μ===&lt;br /&gt;
En este último apartado del trabajo comprobaremos el efecto que tiene la constante del amortiguamiento sobre la posción, la velocidad y la energía. Para ello creamos un nuevo programa en el que creamos un bucle de forma que cambie la matriz en función de la cte. de amortguamiento y un nuevo bucle dentro de este para aproximar la ecuación diferencial por Runge-Kutta. Dentro del primer bucle y fuera y del segundo ploteamos las gráficas de la posición, la velocidad y la energía, obteniendo las tres para cada valor que da el bucle. Finalmente, comparamos las gráficas llegando a la conclusión de que al aumentar el amortiguamiento se reduce las oscilaciones, la masa frena con mayor rapidez y la energía se disipa antes al decrecer mayor velocidad en el mismo tiempo pues pierde energía cinética.&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1455</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1455"/>
				<updated>2013-03-05T10:03:20Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
&lt;br /&gt;
===Energía===&lt;br /&gt;
Se muestra una gráfica de la energía de la partícula a lo largo del tiempo en escala logarítmica.&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1454</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1454"/>
				<updated>2013-03-05T10:00:34Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;0];&lt;br /&gt;
M=[0,1;-1,-1/2];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(4)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:),'red'); %posición de la partícula&lt;br /&gt;
plot(t,y(2,:),'green'); %velocidad de la partícula&lt;br /&gt;
hold off&lt;br /&gt;
x=y(1,:);&lt;br /&gt;
v=y(2,:);&lt;br /&gt;
E=(1/2*4*(x.*x))+(1/2*2*(v.*v)); %energía mecánica de la partícula&lt;br /&gt;
figure(5)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1453</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1453"/>
				<updated>2013-03-05T09:57:17Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Método Runge-Kutta====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Método de Newmark====&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1452</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1452"/>
				<updated>2013-03-05T09:56:33Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
y0=1;&lt;br /&gt;
z0=0;&lt;br /&gt;
&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=100; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
z(1)=z0;&lt;br /&gt;
Y=[y(1);z(1)];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    A=[1+(h^2)/4, (h^2)/8; h/2, 1+h/4];&lt;br /&gt;
    B=[1-(h^2)/4, h-(h^2)/8; ...&lt;br /&gt;
        -h/2, 1-h/4];&lt;br /&gt;
    Y=A\(B*Y);&lt;br /&gt;
    y(n+1)=Y(1);&lt;br /&gt;
    z(n+1)=Y(2);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1)&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
E=1/2*4*(y.*y)+1/2*2*(z.*z);&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y,'green');&lt;br /&gt;
plot(t,z)&lt;br /&gt;
hold off&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1451</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1451"/>
				<updated>2013-03-05T09:56:29Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
En este caso volvemos a aplicar el método de Runge-Kutta para la obtención de las gráficas con el fin de que la única variación posible sea la de los valores iniciales.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;-1];  %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=-1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; &lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
%gráfica &lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');%posición de la masa 1&lt;br /&gt;
plot(y(2,:),t,'green');%velocidad de la masa 1&lt;br /&gt;
plot(y(3,:),t,'black');%posición de la masa 2&lt;br /&gt;
plot(y(4,:),t,'green');%velocidad de la masa 2&lt;br /&gt;
hold off}}&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1450</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1450"/>
				<updated>2013-03-05T09:48:31Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo. A continuación se mostrará el utilizado siguiendo el método Runge-Kutta:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10; N=400;&lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y=[1;1;1.5;1]; %Condiciones iniciales x0=1; u0=1; y0=1.5; w0=1;&lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0];&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black'); %posición de m1&lt;br /&gt;
plot(y(2,:),t,'green'); %velocidad de m1&lt;br /&gt;
plot(y(3,:),t,'black'); %posición de m2&lt;br /&gt;
plot(y(4,:),t,'green'); %velocidad de m2&lt;br /&gt;
hold off}}&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1449</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1449"/>
				<updated>2013-03-05T09:46:46Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1448</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1448"/>
				<updated>2013-03-05T09:44:16Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
[[Archivo:Rk4pos.jpg|marco|centro|Se muestra la posición de la partícula en rojo y la velocidad en verde a lo largo del tiempo]]&lt;br /&gt;
[[Archivo:Rk4energia.jpg|marco|centro|Energía mecánica de la partícula a lo largo del tiempo]]&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1447</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1447"/>
				<updated>2013-03-05T09:43:40Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1. En este caso m=2 k=4&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1446</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1446"/>
				<updated>2013-03-05T09:43:10Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x\\\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1445</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1445"/>
				<updated>2013-03-05T09:42:35Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x&amp;lt;/math&amp;gt;\\&amp;lt;math&amp;gt;\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1444</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1444"/>
				<updated>2013-03-05T09:42:16Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1443</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1443"/>
				<updated>2013-03-05T09:41:47Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\ddot x=-2x-C/2\dot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1442</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1442"/>
				<updated>2013-03-05T09:40:35Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C\dot x-Kx=m\ddot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1441</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1441"/>
				<updated>2013-03-05T09:39:51Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt;-C*dot x-K*x=m*ddot x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1440</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1440"/>
				<updated>2013-03-05T09:37:32Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistema de una masa en medio viscoso */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png|marco|centro|Sistema con amortiguamiento]]&lt;br /&gt;
&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Captura_de_pantalla_2013-03-05_a_la(s)_10.31.43.png&amp;diff=1439</id>
		<title>Archivo:Captura de pantalla 2013-03-05 a la(s) 10.31.43.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Captura_de_pantalla_2013-03-05_a_la(s)_10.31.43.png&amp;diff=1439"/>
				<updated>2013-03-05T09:36:32Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Sistema con amortiguamiento&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sistema con amortiguamiento&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1438</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1438"/>
				<updated>2013-03-05T09:33:50Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistemas resorte-masa */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:2m3mu.jpg|marco|centro|Sistema formado por dos masas y tres muelles, dos de ellos anclados a las paredes laterales]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:2m3mu.jpg&amp;diff=1437</id>
		<title>Archivo:2m3mu.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:2m3mu.jpg&amp;diff=1437"/>
				<updated>2013-03-05T09:33:05Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Sistema de dos masas y tres muelles&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sistema de dos masas y tres muelles&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1436</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1436"/>
				<updated>2013-03-05T09:31:36Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema doble|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
[[Archivo:Rk3b.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1435</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1435"/>
				<updated>2013-03-05T09:30:45Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema doble|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
[[Archivo:Rk3a.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1434</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1434"/>
				<updated>2013-03-05T09:29:21Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Método de Newmark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema doble|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Newmark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1433</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1433"/>
				<updated>2013-03-05T09:28:26Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Método de Newmark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema doble|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|izquierda|Masa 1 en color azul, masa 2 en negro]][[Archivo:Nemark2velo.jpg|marco|derecha|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Nemark2velo.jpg|marco|centro|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1432</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1432"/>
				<updated>2013-03-05T09:27:57Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Método de Newmark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema doble|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|izquierda|Masa 1 en color azul, masa 2 en negro]][[Archivo:Nemark2velo.jpg|marco|derecha|La velocidad de la masa 1 se muestra en rojo y la de la masa 2 en verde]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1431</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1431"/>
				<updated>2013-03-05T09:24:42Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Método de Newmark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema doble|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Nemark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1430</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1430"/>
				<updated>2013-03-05T09:24:00Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Método de Newmark */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema doble|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así pues obtendremos las gráficas de las posiciones y velocidades de las partículas&lt;br /&gt;
[[Archivo:Newmark2posicion.jpg|marco|centro|Masa 1 en color azul, masa 2 en negro]]&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1429</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1429"/>
				<updated>2013-03-05T09:21:34Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Es el trabajo propuesto en la asignatura de Ecuaciones Diferenciales y realizado por el grupo 18, que plantea un sistema de dos masas y tres muelles.&lt;br /&gt;
== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema doble|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1428</id>
		<title>Sistemas resorte-masa</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Sistemas_resorte-masa&amp;diff=1428"/>
				<updated>2013-03-05T09:20:04Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: /* Sistemas resorte-masa (grupo 18) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Sistemas resorte-masa==&lt;br /&gt;
&lt;br /&gt;
Consideremos un sistema formado por dos masas ancladas a la pared por los muelles de constantes k1 y k3, y unidos entre ellos por otro de constante k2, tal y como se indica en el dibujo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Sistema doble|miniaturadeimagen|centro]]&lt;br /&gt;
&lt;br /&gt;
El objetivo será deducir las ecuaciones del movimiento de cada masa. Para ello, establecemos dos parámetros “x” e “y” que nos indican los desplazamientos de las masas respecto de su posición de equilibrio respectivamente. (NOTA: Tomaremos el desplazamiento positivo hacia la derecha). Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
&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;
== Aproximación de la posición mediante métodos numéricos ==&lt;br /&gt;
Para aplicar tanto Runge-Kutta como Newmark necesitamos un sistema de ecuaciones donde sólo haya derivadas primeras, para ello hacemos los siguientes cambios de variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\dot x=u\\\dot y=v&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y así obtenemos el sistema:&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)\\\dot x=u\\\dot y=v\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En estas ecuaciones sustituimos los datos que plantean en el problema: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;m_1= 2kg\\m_2= 1kg\\k_1= 4N/m\\k_2= 2N/m\\k_3= 1N/m&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para poder resolver el problema de valor inicial, se toman los valores también dados en el enunciado que se muestran a continuación:&lt;br /&gt;
&amp;lt;math&amp;gt;x(0)= 1\\y(0)= 1,5\\u(0)= 0\\v(0)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Método Runge-Kutta===&lt;br /&gt;
&lt;br /&gt;
Para poder aplicar el método necesitamos pasar el sistema de ecuaciones a uno matricial, obteniendo así M:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sabiendo que el método de Runge-Kutta consiste en: &lt;br /&gt;
&amp;lt;math&amp;gt;y_0\\y_{n+1} =y_n+h/6(k_1+2k_2+2k_3+k_4)\\k_1=f(t_n,y_n)\\k_2=f(t_n+1/2h,y_n+1/2k_1h)\\k_3=f(t_n+1/2h,y_n+1/2k_2h)\\k_4=f(t_n+h,y_n+k_3h)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro, el programa queda de la siguiente manera:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
%Resolucion del sistema x'=u; u=-3x+y; y'=w; w=2x+3y;&lt;br /&gt;
 &lt;br /&gt;
t0=0; tN=10; N=400; &lt;br /&gt;
h=(tN-t0)/N;&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
y(:,1)=[1;0;1.5;0]; %Condiciones iniciales x0=1; u0=0; y0=1.5; w0=0&lt;br /&gt;
 &lt;br /&gt;
M=[0,1,0,0;-3,0,1,0; 0,0,0,1; 2,0,-3,0]; %Matriz del sistema&lt;br /&gt;
 &lt;br /&gt;
%Aplicación del método Runge-Kutta&lt;br /&gt;
for n=1:N&lt;br /&gt;
    k1=M*y(:,n);&lt;br /&gt;
    k2=M*(y(:,n)+1/2*k1*h);&lt;br /&gt;
    k3=M*(y(:,n)+1/2*k2*h);&lt;br /&gt;
    k4=M*(y(:,n)+k3*h);&lt;br /&gt;
    y(:,n+1)=y(:,n)+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
figure(1)&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,y(1,:)); %x en azul&lt;br /&gt;
plot(t,y(2,:),'green'); %u en verde&lt;br /&gt;
plot(t,y(3,:),'black'); %y en negro&lt;br /&gt;
plot(t,y(4,:),'red'); %w en rojo&lt;br /&gt;
hold off&lt;br /&gt;
 &lt;br /&gt;
%Para visualizar mejor el comportamiento de ambas masas, planteamos la&lt;br /&gt;
%siguiente gráfica alternativa.&lt;br /&gt;
figure(2)&lt;br /&gt;
hold on&lt;br /&gt;
y(3,:)=y(3,:)+4&lt;br /&gt;
y(4,:)=y(4,:)+4&lt;br /&gt;
plot(y(1,:),t,'black');&lt;br /&gt;
plot(y(2,:),t,'green');&lt;br /&gt;
plot(y(3,:),t,'black');&lt;br /&gt;
plot(y(4,:),t,'green');&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
Así obtendremos la siguiente gráfica de la posición y la velocidad de ambas masas a lo largo del tiempo:&lt;br /&gt;
[[Archivo:Rk2.jpg|marco|centro|Las posiciones se muestran en negro y las velocidades en verde]]&lt;br /&gt;
&lt;br /&gt;
===Método de Newmark===&lt;br /&gt;
&lt;br /&gt;
Una vez introducidas las dos variables “u” y “v” que serán igual a las velocidades (derivada primera de x e y). A continuación aplicamos las fórmulas del método de Newmark dadas para cada variable, obteniendo 4 ecuaciones en las que solo aparece la primera derivada.:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;math&amp;gt;x_{n+1} = x_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\y_{n+1} = y_n + hz_n + h^2(βf_n+1 + (1/2 - β)f_n)\\u_{n+1} = u_n + h(γf_(n+1) + (1 - γ)f_n)\\v_{n+1} = v_n + h(γf_(n+1) + (1 - γ)f_n)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ordenamos matricialmente los términos obteniendo las matrices A y B correspondientes a los términos n+1 y n respectivamente. Estas matrices se ven reflejadas en el programa de Matlab que se muestra a continuación.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
&lt;br /&gt;
% Solve second order ODE with Newmark method&lt;br /&gt;
clear all&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=10;&lt;br /&gt;
% Newmark parameters&lt;br /&gt;
beta=1/4;&lt;br /&gt;
gamma=1/2;&lt;br /&gt;
N=400; % number of steps&lt;br /&gt;
h=(tN-t0)/N; % mesh size&lt;br /&gt;
Y=[1;1.5;0;0]; %Condiciones iniciales x0=1; y0=1.5; u0=0; w0=0;&lt;br /&gt;
A=[1+3*(h^2)/4,-(h^2)/4,0,0;-(h^2)/2,1+3*(h^2)/4,0,0;3*h/2,-h/2,1,0;-h,3*h/2,0,1]&lt;br /&gt;
&lt;br /&gt;
B=[1-3*(h^2)/4,(h^2)/4,h,0;(h^2)/2,1-3*(h^2)/4,0,h;(-3)*h/2,h/2,1,0;h,-3*h/2,0,1]&lt;br /&gt;
for n=1:N&lt;br /&gt;
Y(:,n+1)=inv(A)*B*Y(:,n);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Plot the numerical approximation&lt;br /&gt;
figure(1) %desplazamientos&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(1,:)); %x&lt;br /&gt;
plot(t,Y(2,:),'black'); %y&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2) %velocidades&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(3,:),'green'); %u=x'&lt;br /&gt;
plot(t,Y(4,:),'red');   %w=y'&lt;br /&gt;
hold off }}&lt;br /&gt;
&lt;br /&gt;
==Posiciones de las masas en función del tiempo para los siguientes casos==&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en el mismo sentido para ambas masas===&lt;br /&gt;
Lo único que se alterará en el problema de valor inicial serán los valores iniciales dados para u y v, derivadas primeras de x e y.:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= 1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código de Matlab aplicado es el mismo que en el apartado dos (ambos son válidos), con la unica diferencia de la variación de los valores iniciales, por lo que no se mostrará de nuevo.&lt;br /&gt;
Las gráfica que define el movimiento en este caso es la siguiente:&lt;br /&gt;
&lt;br /&gt;
===Partiendo del equilibrio con Vi=1m/s en sentido opuesto para ambas masas===&lt;br /&gt;
Este segundo caso es muy similar al anterior, con la diferencia de que la velocidad de la segunda masa es de sentido contrario, así pues los valores iniciales de las velocidades serán las siguientes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(0)= 1m/s\\v(0)= -1m/s&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La gráfica que define la posición y el movimiento de ambas partículas en este caso es la que se muestra a continuación:&lt;br /&gt;
&lt;br /&gt;
==Sistema de una masa en medio viscoso==&lt;br /&gt;
&lt;br /&gt;
Suponemos ahora que el sistema tiene sólo una masa. Es decir, desenganchamos el muelle de la segunda masa. Suponemos también que el sistema está sumergido en un medio viscoso que provoca un amortiguamiento en el comportamiento del muelle proporcional a la velocidad de la masa, con coeficiente  μ= 1.&lt;br /&gt;
Aplicando las ecuaciones de la mecánica clásica (Newton- Euler), tenemos que:&lt;br /&gt;
(suma de fuerzas)&lt;br /&gt;
Reducimos el orden de las ecuaciones, haciendo el siguiente cambio de variable:&lt;br /&gt;
(cv)&lt;br /&gt;
Con lo que el sistema nos queda:&lt;br /&gt;
(sistema)&lt;br /&gt;
Aplicando los métodos, obtenemos:&lt;br /&gt;
(métodos)&lt;br /&gt;
(graficas)&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Newmark2velo.jpg&amp;diff=1427</id>
		<title>Archivo:Newmark2velo.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Newmark2velo.jpg&amp;diff=1427"/>
				<updated>2013-03-05T09:19:33Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Velocidades de las masas 1 y 2 siguiendo el método de Newmark&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Velocidades de las masas 1 y 2 siguiendo el método de Newmark&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Nemark2posicion.jpg&amp;diff=1426</id>
		<title>Archivo:Nemark2posicion.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Nemark2posicion.jpg&amp;diff=1426"/>
				<updated>2013-03-05T09:19:07Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Posiciones de las masas 1 y 2 según el método Newmark&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Posiciones de las masas 1 y 2 según el método Newmark&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Rk4energia.jpg&amp;diff=1425</id>
		<title>Archivo:Rk4energia.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Rk4energia.jpg&amp;diff=1425"/>
				<updated>2013-03-05T09:18:33Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Energía mecánica de la masa en el apartado 4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Energía mecánica de la masa en el apartado 4&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Rk4pos.jpg&amp;diff=1424</id>
		<title>Archivo:Rk4pos.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Rk4pos.jpg&amp;diff=1424"/>
				<updated>2013-03-05T09:18:09Z</updated>
		
		<summary type="html">&lt;p&gt;Alvarocr: Posición y velocidad de la masa en el apartado 4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Posición y velocidad de la masa en el apartado 4&lt;/div&gt;</summary>
		<author><name>Alvarocr</name></author>	</entry>

	</feed>