<?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=Javier+Parras</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=Javier+Parras"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/Javier_Parras"/>
		<updated>2026-04-28T23:22:07Z</updated>
		<subtitle>Contribuciones del usuario</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30531</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30531"/>
				<updated>2015-05-21T20:45:46Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración con amortiguamiento. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30530</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30530"/>
				<updated>2015-05-21T20:44:50Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30529</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30529"/>
				<updated>2015-05-21T20:44:06Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método de Heun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30528</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30528"/>
				<updated>2015-05-21T20:43:50Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método de Heun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30527</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30527"/>
				<updated>2015-05-21T20:43:13Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método de Euler explícito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30526</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=30526"/>
				<updated>2015-05-21T20:42:17Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método del trapecio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29869</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29869"/>
				<updated>2015-05-13T21:56:46Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración con amortiguamiento. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29868</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29868"/>
				<updated>2015-05-13T21:56:07Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método de Heun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29867</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29867"/>
				<updated>2015-05-13T21:55:07Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método de Euler explícito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29866</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29866"/>
				<updated>2015-05-13T21:54:35Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método del trapecio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
El resultado es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29865</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29865"/>
				<updated>2015-05-13T21:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración con amortiguamiento. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29864</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29864"/>
				<updated>2015-05-13T21:51:53Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método de Heun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29863</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29863"/>
				<updated>2015-05-13T21:51:15Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método de Euler explícito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29861</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29861"/>
				<updated>2015-05-13T21:50:02Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método de Euler explícito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29860</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29860"/>
				<updated>2015-05-13T21:49:15Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método del trapecio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29859</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29859"/>
				<updated>2015-05-13T21:47:45Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29858</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29858"/>
				<updated>2015-05-13T21:44:04Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, transformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan.. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29857</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29857"/>
				<updated>2015-05-13T21:43:45Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía mecánica es constante. La única fuerza que hay es la tensión propia del cable. La energía que hay al principio es potencial, tranformándose según avanza el tiempo en cinética, y luego esta misma en potencial, por lo que se complementan la una con la otra, manteniéndose la energía mecánica total constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan.. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29848</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29848"/>
				<updated>2015-05-13T21:20:26Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía es constante, está energía es la mecánica. Al principio como la única fuerza que hay es la tensión, así que la energía quue hay es la potencial. A medida que pasa el tiempo aumenta la energía cinética, y se complementa manteniéndose constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan.. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29847</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29847"/>
				<updated>2015-05-13T21:19:19Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía es constante, está energía es la mecánica. Al principio como la única fuerza que hay es la tensión, así que la energía quue hay es la potencial. A medida que pasa el tiempo aumenta la energía cinética, y se complementa manteniéndose constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|430px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan.. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29845</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29845"/>
				<updated>2015-05-13T21:15:54Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía es constante, está energía es la mecánica. Al principio como la única fuerza que hay es la tensión, así que la energía quue hay es la potencial. A medida que pasa el tiempo aumenta la energía cinética, y se complementa manteniéndose constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap7 graf1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=2.]]&lt;br /&gt;
[[Archivo:Ap7 graf3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante para b=-2.]]&lt;br /&gt;
[[Archivo:Ap7 graf4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable para b=-2.]]&lt;br /&gt;
Si observamos las gráficas, y especialmente las escalas de los ejes, se puede ver que existe una diferencia notable entre la energía para el caso de &amp;lt;math&amp;gt; b=2 &amp;lt;/math&amp;gt; y la del caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;. Esto se debe a que en el caso de b=2, la posición del extremo izquierdo del cable se mantiene entre unos valores próximos a 0. Aunque la energía no se mantiene constante para este caso, sí que se mantiene más o menos dentro de un mismo rango de valores.&lt;br /&gt;
Sin embargo, para el caso de &amp;lt;math&amp;gt; b=-2 &amp;lt;/math&amp;gt;, una vez transcurrido un cierto tiempo desde el comienzo, se produce una subida brusca del extremo izquierdo del cable, debido a que el dispositivo que se encuentra en ese extremo (y que materializa la condición Robin), amplifica el efecto de la onda, produciéndose lo que podríamos llamar como un fallo, ya que al estar el otro extremo fijo, el cable debería deformarse notablemente, para poder cumplir las concidiones que se presentan.. Es por ello que también la energía se dispara, alcanzando valores de orden muy elevado.&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap7_graf4.jpg&amp;diff=29842</id>
		<title>Archivo:Ap7 graf4.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap7_graf4.jpg&amp;diff=29842"/>
				<updated>2015-05-13T21:01:54Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap7_graf3.jpg&amp;diff=29841</id>
		<title>Archivo:Ap7 graf3.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap7_graf3.jpg&amp;diff=29841"/>
				<updated>2015-05-13T21:01:32Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap7_graf2.jpg&amp;diff=29840</id>
		<title>Archivo:Ap7 graf2.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap7_graf2.jpg&amp;diff=29840"/>
				<updated>2015-05-13T21:01:18Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap7_graf1.jpg&amp;diff=29839</id>
		<title>Archivo:Ap7 graf1.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:Ap7_graf1.jpg&amp;diff=29839"/>
				<updated>2015-05-13T21:01:07Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29837</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29837"/>
				<updated>2015-05-13T20:57:17Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía es constante, está energía es la mecánica. Al principio como la única fuerza que hay es la tensión, así que la energía quue hay es la potencial. A medida que pasa el tiempo aumenta la energía cinética, y se complementa manteniéndose constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29836</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29836"/>
				<updated>2015-05-13T20:55:31Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la gráfica resultante vemos que la energía es constante, está energía es la mecánica. Al principio como la única fuerza que hay es la tensión, así que la energía quue hay es la potencial. A medida que pasa el tiempo aumenta la energía cinética, y se complementa manteniéndose constante en todo tiempo.&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Robin. Cálculo de la energía ==&lt;br /&gt;
Vamos a plantear una nueva situación, en la que el extremo izquierdo del cable ya no se encuentra fijo, sino que su posición y la pendiente del cable en ese punto vienen determinadas por una condición Robin, como se puede ver en la siguiente modelización del problema:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u_{x}(0,t)=b*u(0,t), \; u(10,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
donde &amp;lt;math&amp;gt; b=2,-2 &amp;lt;/math&amp;gt; es una constante.&lt;br /&gt;
Para aplicar el método de líneas, es necesario realizar antes un planteamiento analítico como el que se realizó en la primera modelización de este trabajo, con la salvedad de que habrá que plantear una nueva ecuación para el primer nodo del bucle, que viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u''_{0}(t)+\frac{(2hb+2)u_{0}(t)-2u_{1}(t)}{h^{2}}=0&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
lo que a su vez se traduce en un cambio de los valores &amp;lt;math&amp;gt; (1,1) &amp;lt;/math&amp;gt; y &amp;lt;math&amp;gt; (1,2) &amp;lt;/math&amp;gt; en la matriz &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; dentro del programa de MatLab/OctaveUPM, cuyo código es el que sigue.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
b2=input('Inserte un valor para b: ');&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(1:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N))-diag(ones(1,N-1),-1) -diag(ones(1,N-1),1));&lt;br /&gt;
%Condición Robin&lt;br /&gt;
K(1,1)=(1/h^2)*(2*h*b2+2);&lt;br /&gt;
K(1,2)=(1/h^2)*(-2);&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[U;UB];&lt;br /&gt;
%La velocidad en el extremo derecho es nula a lo largo del timepo&lt;br /&gt;
V=[V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos el gráfico del cable&lt;br /&gt;
figure(1)&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29752</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29752"/>
				<updated>2015-05-12T16:43:21Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración sin amortiguamiento. Método de Fourier */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^{136} &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^{306}&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4final.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la que podemos decir&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab para resolver dicho problema es el siguiente:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto de la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedemos ahora a resolver el problema del cable vibrante del apartado 2, cuya interpretación podemos encontrar en el propio apartado, mediante el método de Fourier. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método de Fourier.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar en las diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución aproximada utilizando el método de líneas del ejercicio dos, confirmándonos que ambas aproximaciones son correctas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29710</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29710"/>
				<updated>2015-05-11T20:39:21Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
Ahora vamos a realizar el mismo problema anterior, utilizando el método de Euler explícito. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Euler utilizado, a diferencia del método del Trapecio, es un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de &amp;lt;math&amp;gt; 10^136 &amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que no podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
Realizamos el mismo problema, utilizando el método de Heun. El código MatLab es el siguiente:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Como podemos observar en la gráfica y al igual que en el caso del método de Euler explícito, no tiene nada que ver esta solución a la calculada anteriormente con el método del Trapecio. Esto es debido a que el método de Heun es también un método explícito. Nuestra gráfica aparece de este modo debido a que el método no converge. Se puede apreciar mirando en los valores de la posición de la onda, que son del orden de  &amp;lt;math&amp;gt;10^306&amp;lt;/math&amp;gt; , obviamente valores no razonables. Es por esto que tampoco podemos utilizar este método para la resolución de nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
A continuación vamos a hallar la energía de nuestra ecuación de ondas, que viene definida según la ecuación:&lt;br /&gt;
\begin{equation}&lt;br /&gt;
E(t) = \int_{0}^{L} (u_{t}^{2}(x,t)+ u_{x}^{2}(x,t)) \cdot dx&lt;br /&gt;
\end{equation}&lt;br /&gt;
&lt;br /&gt;
Para ello hemos utilizado la resolución de la ecuación de ondas por el método de diferencias finitas, añadiendo lo necesario para representar la gráfica de la energía.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Como el desplazamiento es nulo, sabemos que la velocidad en esos puntos&lt;br /&gt;
%también será nula&lt;br /&gt;
V=[UA;V;UB];&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    %Aproximamos las ux en los extremos de la cuerda&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
plot(t,E)&lt;br /&gt;
%Elegimos el intervalo de los ejes&lt;br /&gt;
axis([0,40,0,0.5]) &lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
 &lt;br /&gt;
El resultado de esto es la siguiente gráfica:&lt;br /&gt;
[[Archivo:Apartado4C2.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
De la que podemos decir&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Ap6_onda1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia1.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda2.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia2.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:Ap6_onda3.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia3.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto por la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap6_onda4.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Ap6_Energia4.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;br /&gt;
Procedamos ahora a resolver el problema número dos mediante el método de Fourier. La interpretación ya la hemos visto en el apartado dos. Lo que buscamos ahora es comprobar que realmente la solución hallada en el ejercicio dos es la correcta mediante el uso de aproximaciones dadas por el método.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
a=0;b=10; %espacio&lt;br /&gt;
h=0.1;%En x--------Paso espacial=h&lt;br /&gt;
x=a:h:b;&lt;br /&gt;
t=0:0.1:40;&lt;br /&gt;
[Mx,Mt]=meshgrid(x,t);&lt;br /&gt;
u0=zeros(size(x)); %primera función valor inicial&lt;br /&gt;
  for i=1:length(x)&lt;br /&gt;
      if x(i)&amp;lt;10/3 &lt;br /&gt;
       u0(i)=(3*x(i))/10;&lt;br /&gt;
      else &lt;br /&gt;
       u0(i)=1.5-1.5*x(i)/10;&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
u0t=0; %segunda función valor inicial&lt;br /&gt;
Q=input('Introduzca el número de autofunciones a tratar: ');&lt;br /&gt;
U=0;&lt;br /&gt;
 for j=1:Q&lt;br /&gt;
    p=sin(j*pi/10*x);&lt;br /&gt;
    aj=trapz(x,u0.*p)/trapz(x,p.*p);&lt;br /&gt;
    bj=1/(j*pi)*trapz(x,u0t.*p)/trapz(x,p.*p);&lt;br /&gt;
    U=U+(aj.*cos(j*pi*Mt/10)+bj.*cos(j*pi*Mt/10)).*sin(j*pi*Mx/10);&lt;br /&gt;
 end&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con las autofunciones tomadas, para el título de la gráfica.&lt;br /&gt;
Aut=sprintf('Autofunciones tomadas: %d',Q); &lt;br /&gt;
title(Aut);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut1.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut3.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut5.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]][[Archivo:Ap8_aut10.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ap8_aut20.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede apreciar existen diferentes gráficas, cada una corresponde a un número diferente de autofunciones utilizadas; conforme aumenta el número de autofunciones usadas se comprueba que la solución se aproxima más a la solución real del ejercicio dos, confirmándonos que  es la correcta.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29660</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29660"/>
				<updated>2015-05-08T13:13:37Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cambio de condiciones en los extremos. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=2*pi*F0*cos(2*pi*F0*t);&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Graf_F01_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Graf_F02_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:Graf_F03_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía durante un período corto de tiempo y después, la contribución de la fuerza, en lugar de sumarse, se contrarresta por el efecto por la vibración de la onda. Lo podemos representar gráficamente aumentando el intervalo de tiempo.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Apartado6_graf_E200.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable en los primeros 200 segundos. F0=0.11 Hz.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29651</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29651"/>
				<updated>2015-05-08T10:33:53Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración con amortiguamiento. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf2.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T3Apartado5_graf2.jpg&amp;diff=29650</id>
		<title>Archivo:T3Apartado5 graf2.jpg</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T3Apartado5_graf2.jpg&amp;diff=29650"/>
				<updated>2015-05-08T10:33:22Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29649</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29649"/>
				<updated>2015-05-08T10:30:48Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración con amortiguamiento. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29648</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29648"/>
				<updated>2015-05-08T10:27:02Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cambio de condiciones en los extremos. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10;&lt;br /&gt;
    h=0.1;&lt;br /&gt;
    x=a:h:b;&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %condiciones de contorno&lt;br /&gt;
    U0=zeros(size(xx));&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx));&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; % paso en t.&lt;br /&gt;
    t=t0:k:tM;&lt;br /&gt;
    M=length(t)-1; %número de subintervalos&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t));&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k);&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2);&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1)-diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F1=0*xx;&lt;br /&gt;
F2=F1;&lt;br /&gt;
F1(end)=F1(end)+ub/h^2;&lt;br /&gt;
F2(end)=F2(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F1(1)=sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F2(1)=sin(2*pi*F0*t(i+1))/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+F1+F2)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux(1)=U(2,l)/k;&lt;br /&gt;
    Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J/kg)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa, para una frecuencia de 0.11 y 0.09 Hz, que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29646</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29646"/>
				<updated>2015-05-08T10:25:13Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración con amortiguamiento. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10;&lt;br /&gt;
    h=0.1;&lt;br /&gt;
    x=a:h:b;&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %condiciones de contorno&lt;br /&gt;
    U0=zeros(size(xx));&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx));&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; % paso en t.&lt;br /&gt;
    t=t0:k:tM;&lt;br /&gt;
    M=length(t)-1; %número de subintervalos&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t));&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k);&lt;br /&gt;
        end&lt;br /&gt;
        Ux(1)=U(2,l)/k;&lt;br /&gt;
        Ux(end)=-U(end-1,l)/k;&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2);&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.11 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.09 Hz.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03_E.jpg|400px|miniaturadeimagen|centro||Gráfica de la energía del cable. F0=0.10 Hz.]]&lt;br /&gt;
&lt;br /&gt;
Como se puede observar en las gráficas la energía del cable no es constante. Debido a que la estructura sufre unas vibraciones periódicas, esta fuerza se le transmite al cable en su extremo izquierdo en el primer instante. Como las vibraciones de dicha estructura varían a lo largo del tiempo (pues viene definida por la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; ) , la energía transmitida va cambiando, y por eso se pueden observar las oscilaciones en la gráfica. Además también se observa que la energía va aumentando durante aproximadamente los primeros 40 segundos. Esto es debido a que en la gráfica se está obteniendo la energía del cable entero y, a medida que pasa el tiempo, la energía del extremo izquierdo se va trasmitiendo a su vez a lo largo del cable. A partir de los 40 primeros segundos, se podría decir que la energía que había sido transmitida por la vibración de la estructura al extremo izquierdo del cable al principio ha &amp;quot;llegado&amp;quot; al final del cable. Esto se traduce gráficamente a que la curva de la energía no sigue ascendiendo, si no que habría alcanzado su tope y a partir de ahí oscilaría en esos intervalos de energía.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29642</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29642"/>
				<updated>2015-05-08T09:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración con amortiguamiento. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
Vamos a estudiar el movimiento del mismo cable, pero esta vez sumergido en un medio viscoso, como sería el caso de un cable sumergido en el mar. El problema que modeliza este comportamiento es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}+au_{t}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es una constante que depende del amortiguamiento que produce el medio. Se puede ver que &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; actúa sobre la velocidad del cable, lo que será importante para la interpretación posterior. Vamos a estudiar el comportamiento del cable para &amp;lt;math&amp;gt; a=0,1,4,10,100 &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Al ser una ecuación diferente, cambia la ecuación matricial que se obtiene al plantear el método de líneas para el problema propuesto. La ecuación matricial diferencial ordinaria de segundo orden que se obtiene para el caso de amortiguamiento viscoso es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-aU'-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y pasando a un sistema de ecuaciones matriciales diferenciales ordinarias de primer orden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -aV -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos ahora el método del trapecio a cada ecuación del sistema, obteniendo que:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} -aV_{n+1} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K + \frac{h}{2}I) = V_{n} + \frac{h}{2}(-aV_{n} -KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, se aplica la resolución numérica con MatLab/OctaveUPM.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En el gráfico adjunto se puede observar una representación del valor de la energía para cada valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;. Cuando &amp;lt;math&amp;gt; a=0 &amp;lt;/math&amp;gt;, podemos ver que la energía se mantiene sensiblemente constante, tal y como ocurría en el apartado anterior. Sin embargo, cuando &amp;lt;math&amp;gt; a=1 &amp;lt;/math&amp;gt; la energía decrece rápidamente. Este efecto disminuye según va aumentando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, como se puede observar por ejemplo para el caso de &amp;lt;math&amp;gt; a=100 &amp;lt;/math&amp;gt;. ¿Por qué ocurre esto? De primera mano, tal vez podríamos pensar que cuanto mayor sea el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt;, antes se disipara la energía. Sin embargo, esto no es así, ya que la energía es la suma de la energía cinética y de la energía potencial, tal y como se muestra en la ecuación del apartado anterior. El valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; solo afecta a la energía cinética, no a la potencial. Es por ello que cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es bajo, el cable tiene mayor facilidad para moverse, transformándose la energía potencial inicial en cinética, adquiriendo por lo tanto una mayor velocidad, siendo esta velocidad la que produce esta energía cinética se disipe. Por otro lado, cuando el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; es elevado, al cable le cuesta más moverse, tranformándose menos energía potencial en cinética, y tardando por ello más en disiparse la energía total. En el caso extremo de que el valor de &amp;lt;math&amp;gt; a &amp;lt;/math&amp;gt; tendiera a infinito, el cable no se movería, siendo toda su energía potencial, y manteniéndose constante a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
grid on&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01_E.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía del cable.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02_E.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía del cable.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03_E.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía del cable.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29626</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29626"/>
				<updated>2015-05-07T22:50:30Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método del trapecio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U''=-KU+F\\&lt;br /&gt;
U(0)=u^{0}\\&lt;br /&gt;
U'(0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones Dirichlet de los extremos, &amp;lt;math&amp;gt; u^{0} &amp;lt;/math&amp;gt; la condición inicial de posición y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U' = V \\&lt;br /&gt;
V' = -KU + F \\&lt;br /&gt;
U(0) = u^{0} \\&lt;br /&gt;
V(0) = 0 \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} = U_{n} + \frac{h}{2}(V_{n} + V_{n+1}) \\&lt;br /&gt;
V_{n+1} = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} - KU_{n+1} + F_{n+1}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
U_{n+1} (I + \frac{h^2}{4}K) = U_{n} + \frac{h}{2}(2V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1})) \\&lt;br /&gt;
V_{n+1} (I + \frac{h^2}{4}K) = V_{n} + \frac{h}{2}(-KU_{n} + F_{n} + F_{n+1}) - \frac{h}{2}K(U_{n} + \frac{h}{2}V_{n}) \\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
En el gráfico tridimensional podemos observar como varía el desplazamiento vertical en cada punto del cable a lo largo del tiempo. En la parte más cercana al observador podemos apreciar la posición inicial del cable, formando una especie de triángulo, estando el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; 1m por encima de la posición horizontal. Cuando se suelta el cable con velocidad cero desde esa posición, el cable tiende a recuperar su posición horizontal, pasando por ella, y alcanzando una posición simétrica con respecto a esta misma horizontal, en la que el punto de &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt; tendrá una desplazamiento vertical negativo de 1m. De nuevo, la cuerda tiende a recuperar su posición horizontal, pasando por ella, y alcanzando otra vez la posición inicial. Al no existir ni amortiguamiento ni ninguna fuerza aplicada, este proceso de oscilación se repite indefinidamente a lo largo del tiempo. Por último, se puede apreciar que ambos extremos del cable tienen desplazamiento vertical nulo a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29625</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29625"/>
				<updated>2015-05-07T22:21:13Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método del trapecio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
Aplicando el método de de diferencias finitas, o también llamado método de líneas, podemos obtener una solución aproximada del problema propuesto.&lt;br /&gt;
Como se ha visto en las clases de numérico, al aplicar este método obtenemos la siguiente ecuación matricial a resolver:&lt;br /&gt;
&lt;br /&gt;
donde &amp;lt;math&amp;gt; K &amp;lt;/math&amp;gt; es la matriz de coeficientes que multiplica a cada &amp;lt;math&amp;gt; u(t) &amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt; F &amp;lt;/math&amp;gt; es un vector que sirve para incluir las condiciones de los extremos y &amp;lt;math&amp;gt; U &amp;lt;/math&amp;gt; es el vector solución de los desplazamientos del cable. Al ser una ecuación diferencial ordinaria de segundo orden, para poder aplicar los métodos numéricos de resolución es necesario pasar a un sistema de ecuaciones diferenciales ordinarias equivalente. Es el siguiente:&lt;br /&gt;
&lt;br /&gt;
donde el nuevo vector &amp;lt;math&amp;gt; V &amp;lt;/math&amp;gt; representa la velocidad de cada punto del cable. Aplicando el método del trapecio a cada ecuación del sistema por separado se obtiene:&lt;br /&gt;
&lt;br /&gt;
y despejando cada variable:&lt;br /&gt;
&lt;br /&gt;
Una vez realizado este proceso analítico, pasamos a implementar el código MatLab/OctaveUPM que resuelve el problema.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29624</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29624"/>
				<updated>2015-05-07T22:09:08Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Cambio de condiciones en los extremos. Cálculo de la energía */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,10], \; t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), \; u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, \; u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29623</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29623"/>
				<updated>2015-05-07T22:08:40Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, \; x∈[0,L], \; t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, \; u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, \; u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, x∈[0,10], t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29622</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29622"/>
				<updated>2015-05-07T22:08:13Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), \; x∈[0,10], \; t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), \; u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), \; u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, x∈[0,L], t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, x∈[0,10], t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29621</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29621"/>
				<updated>2015-05-07T22:05:46Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=f(x,t), x∈[0,10], t∈[0,T],\\&lt;br /&gt;
u(0,t)=g_{0}(t), u(L,t)=g_{1}(t),\\&lt;br /&gt;
u(x,0)=h_{0}(x), u_{t}(x,0)=h_{1}(x)\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, x∈[0,L], t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, x∈[0,10], t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29620</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29620"/>
				<updated>2015-05-07T22:02:27Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, x∈[0,L], t∈[0,40], \\&lt;br /&gt;
u(0,t)=0, u(L,t)=0, \\&lt;br /&gt;
u(x,0)=\begin{cases} \frac{3x}{L} \\ \frac{3}{2}-\frac{3x}{2L} \end{cases}, u_{t}(x,0)=0\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, x∈[0,10], t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29619</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29619"/>
				<updated>2015-05-07T21:56:43Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Introducción */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud &amp;lt;math&amp;gt; L = 10 m &amp;lt;/math&amp;gt; sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por &amp;lt;math&amp;gt; u(x,t) &amp;lt;/math&amp;gt;, podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, x∈[0,10], t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29618</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29618"/>
				<updated>2015-05-07T21:55:54Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Pérez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud L = 10 m sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por u(x,t), podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
Vamos a tratar el problema de vibración de un cable de longitud &amp;lt;math&amp;gt; L=10 &amp;lt;/math&amp;gt;, en la cual los dos extremos de la misma se encuentran fijos a lo largo del tiempo y con una desplazamiento nulo. Al inicio, en &amp;lt;math&amp;gt; t=0 &amp;lt;/math&amp;gt;, sujetamos el cable desde el punto &amp;lt;math&amp;gt; x=L/3 &amp;lt;/math&amp;gt;, y lo desplazamos 1 m en la dirección perpendicular a la recta que une sus extremos.&lt;br /&gt;
&lt;br /&gt;
El problema viene modelizado por la siguente ecuación:&lt;br /&gt;
&lt;br /&gt;
A continuación se resuelve el problema por el método de diferencias finitas, aplicando para la resolución de la ecuación matricial que aparece los métodos del trapecio, de Euler explícito y de Heun.&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
[[Archivo:T3Apartado2_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Euler.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Euler (explícito).&lt;br /&gt;
    U(:,i+1)=U(:,i)+k*V(:,i);&lt;br /&gt;
    V(:,i+1)=V(:,i)+k*(-K*U(:,i)+F);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
[[Archivo:T3Apartado3_graf_Heun.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición de cada punto del cable.]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
%Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
for j=1:length(xx);&lt;br /&gt;
    if xx(j)&amp;lt;b/3&lt;br /&gt;
        U0(j)=3*xx(j)/b;&lt;br /&gt;
    else&lt;br /&gt;
        U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
F(1)=F(1)+ua/h^2;&lt;br /&gt;
F(end)=F(end)+ub/h^2;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1.&lt;br /&gt;
t0=0;tM=40;&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
for i=1:M&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método de Heun&lt;br /&gt;
    K1U=V(:,i);&lt;br /&gt;
    K2U=V(:,i)+K1U*k;&lt;br /&gt;
    K1V=-K*U(:,i)+F;&lt;br /&gt;
    K2V=-K*(U(:,i)+K1V*k)+F;&lt;br /&gt;
    U(:,i+1)=U(:,i)+(k/2)*(K1U+K2U);&lt;br /&gt;
    V(:,i+1)=V(:,i)+(k/2)*(K1V+K2V);&lt;br /&gt;
end&lt;br /&gt;
%Incluimos condiciones Dirichlet.&lt;br /&gt;
UA=ua*ones(1,length(t));&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
[[Archivo:T3Apartado5_graf.jpg|400px|miniaturadeimagen|derecha||Gráfica de la energía para distintos amortiguamientos]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
%Hacemos un bucle donde calcular la energía para cada coeficiente.&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
    h=0.1; %Paso.&lt;br /&gt;
    x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %Condiciones de contorno.&lt;br /&gt;
    U0=zeros(size(xx)); %Preasignación de U0.&lt;br /&gt;
    %Recorremos mediante un bucle U0, y añadimos los valores que correspondan.&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx)); %Preasignación de V0.&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; %Paso en t.&lt;br /&gt;
    t=t0:k:tM; %Discretización del vector de tiempos.&lt;br /&gt;
    M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
    %Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet.&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t)); %Preasignación.&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía.&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo.&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
legend('a=0','a=1','a=4','a=10','a=100','Location','Best');&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
Consideramos que nuestro cable está sujeto a una estructura que sufre vibraciones periódicas con frecuencia F0 Herzios. Vamos a tomar la función &amp;lt;math&amp;gt;f(t)=\sin(2\pi*F0*t)&amp;lt;/math&amp;gt; que será la que defina la posición del extremo izquierdo, que está sujeto a la estructura, en función del tiempo. Por tanto, nuestro problema queda:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{cases}&lt;br /&gt;
u_{tt}-u_{xx}=0, x∈[0,10], t∈[0,60],\\&lt;br /&gt;
u(0,t)=\sin(2\pi*F0*t), u(10,t)=0,\\&lt;br /&gt;
u(x,0)=0, u_{t}(x,0)=0.\\&lt;br /&gt;
\end{cases}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all&lt;br /&gt;
%Datos en x&lt;br /&gt;
a=0; b=10; %Longitud del cable L=10.&lt;br /&gt;
h=0.1; %Paso.&lt;br /&gt;
x=a:h:b; %Discretización espacial del cable.&lt;br /&gt;
N=round((b-a)/h);&lt;br /&gt;
%Definimos las matrices de la ecuación&lt;br /&gt;
xx=x(2:N);&lt;br /&gt;
xx=xx';&lt;br /&gt;
ub=0; %condición de contorno en el extremo derecho.&lt;br /&gt;
%Preasignación de la posición y la velocidad incial.&lt;br /&gt;
U0=zeros(size(xx));&lt;br /&gt;
V0=U0;&lt;br /&gt;
%Matriz K&lt;br /&gt;
K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
%Término F y valor inicial&lt;br /&gt;
F=0*xx;&lt;br /&gt;
%Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
t0=0;tM=60; %Discretización del vector de tiempos.&lt;br /&gt;
k=h; %Paso en t.&lt;br /&gt;
t=t0:k:tM;&lt;br /&gt;
M=length(t)-1; %Número de subintervalos.&lt;br /&gt;
%Añadimos en la primera columna las condiciones iniciales.&lt;br /&gt;
U(:,1)=U0;&lt;br /&gt;
V(:,1)=V0;&lt;br /&gt;
%Pedimos por teclado al usuario los distintos valores de la frecuencia que&lt;br /&gt;
%le transmite la estructura al cable. Estas serán F0=1/L+0.01 Hz, &lt;br /&gt;
%F0=1/L-0.01 Hz y F0=1/L Hz, siendo L=b=10.&lt;br /&gt;
F0=input('Introduzca la frecuencia (Hz) transmitida al cable: ');&lt;br /&gt;
for i=1:M&lt;br /&gt;
    F(1)=F(1)+sin(2*pi*F0*t(i))/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones por el método del trapecio.&lt;br /&gt;
    U(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(U(:,i)+0.5*k*(2*V(:,i)+0.5*k*(-K*U(:,i)+2*F)));&lt;br /&gt;
    V(:,i+1)=(eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
end&lt;br /&gt;
%Incluimos las condiciones Dirichlet en nuestra solución. &lt;br /&gt;
UA=sin(2*pi*F0*t);&lt;br /&gt;
UB=ub*ones(1,length(t));&lt;br /&gt;
U=[UA;U;UB];&lt;br /&gt;
VB=zeros(1,length(t));&lt;br /&gt;
VA=VB;&lt;br /&gt;
V=[VA;V;VB];&lt;br /&gt;
%Dibujamos el gráfico.&lt;br /&gt;
[Mt,Mx]=meshgrid(t,x);&lt;br /&gt;
mesh(Mx,Mt,U)&lt;br /&gt;
xlabel('Longitud (m)'); ylabel('Tiempo (s)'); zlabel('Posición (m)');&lt;br /&gt;
%Cadena de texto con la frecuencia introducida, para el título de la gráfica.&lt;br /&gt;
Frec=sprintf('Frecuencia = %.2f Hz',F0); &lt;br /&gt;
title(Frec);&lt;br /&gt;
%Energía&lt;br /&gt;
E=zeros(size(t)); %Preasignación.&lt;br /&gt;
Ux=zeros(size(x));&lt;br /&gt;
for l=1:M+1&lt;br /&gt;
    for m=2:N&lt;br /&gt;
        Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k); %Cálculo de la derivada Ux mediante la aproximación por diferencias finitas.&lt;br /&gt;
    end&lt;br /&gt;
    Ux=Ux';&lt;br /&gt;
    E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2); %Cálculo de la energía.&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos la gráfica de la energía.&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,E)&lt;br /&gt;
xlabel('Tiempo (s)'); ylabel('Energía (J)');&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F01.jpg|400px|miniaturadeimagen|izquierda||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F02.jpg|400px|miniaturadeimagen|derecha||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
[[Archivo:T3Apartado6_graf_F03.jpg|400px|miniaturadeimagen|centro||Gráfica de la posición del cable en cada punto y en cada instante.]]&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29584</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29584"/>
				<updated>2015-05-07T10:46:16Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Nuestros nombres }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
&lt;br /&gt;
== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Consideramos un cable de una estructura civil de longitud L = 10 m sujeto por ambos extremos. Supondremos que el cable tiene una sección pequeña respecto a su longitud y que las vibraciones pueden modelizarse mediante la ecuación de ondas. Si denotamos su desplazamiento vertical por u(x,t), podemos plantear el problema de su movimiento según el siguiente sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Condiciones Dirichlet. Resolución por el método de líneas ==&lt;br /&gt;
&lt;br /&gt;
=== Método del trapecio ===&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler explícito ===&lt;br /&gt;
&lt;br /&gt;
=== Método de Heun ===&lt;br /&gt;
&lt;br /&gt;
=== Cálculo de la energía ===&lt;br /&gt;
&lt;br /&gt;
== Vibración con amortiguamiento. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
clear all, clf&lt;br /&gt;
%Coeficiente de amortiguamiento&lt;br /&gt;
am=[0,1,4,10,100];&lt;br /&gt;
for n=am&lt;br /&gt;
    %Datos en x&lt;br /&gt;
    a=0; b=10;&lt;br /&gt;
    h=0.1;&lt;br /&gt;
    x=a:h:b;&lt;br /&gt;
    N=round((b-a)/h);&lt;br /&gt;
    %Definimos las matrices de la ecuación&lt;br /&gt;
    xx=x(2:N);&lt;br /&gt;
    xx=xx';&lt;br /&gt;
    ua=0;ub=0; %condiciones de contorno&lt;br /&gt;
    U0=zeros(size(xx));&lt;br /&gt;
    for j=1:length(xx);&lt;br /&gt;
        if xx(j)&amp;lt;b/3&lt;br /&gt;
            U0(j)=3*xx(j)/b;&lt;br /&gt;
        else&lt;br /&gt;
            U0(j)=1.5-1.5*xx(j)/b;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    V0=zeros(size(xx));&lt;br /&gt;
    %Matriz K&lt;br /&gt;
    K=1/h^2*(2*diag(ones(1,N-1))-diag(ones(1,N-2),-1) -diag(ones(1,N-2),1));&lt;br /&gt;
    %Término F y valor inicial&lt;br /&gt;
    F=0*xx;&lt;br /&gt;
    F(1)=F(1)+ua/h^2;&lt;br /&gt;
    F(end)=F(end)+ub/h^2;&lt;br /&gt;
    %Resolución del sistema de ecuaciones de EDO de orden 1&lt;br /&gt;
    t0=0;tM=40;&lt;br /&gt;
    k=h; % paso en t.&lt;br /&gt;
    t=t0:k:tM;&lt;br /&gt;
    M=length(t)-1; %número de subintervalos&lt;br /&gt;
    U(:,1)=U0;&lt;br /&gt;
    V(:,1)=V0;&lt;br /&gt;
    for i=1:M&lt;br /&gt;
        %Sistema de ecuaciones por el método del trapecio&lt;br /&gt;
        V(:,i+1)=((1+0.5*k*n)*eye(size(K))+0.25*(k^2)*K)\(V(:,i)+0.5*k*(-n*V(:,i)-K*U(:,i)+2*F)-0.5*k*K*(U(:,i)+0.5*k*V(:,i)));&lt;br /&gt;
        U(:,i+1)=U(:,i)+0.5*h*(V(:,i)+V(:,i+1));&lt;br /&gt;
    end&lt;br /&gt;
    %Incluimos condiciones Dirichlet&lt;br /&gt;
    UA=ua*ones(1,length(t));&lt;br /&gt;
    UB=ub*ones(1,length(t));&lt;br /&gt;
    U=[UA;U;UB];&lt;br /&gt;
    %Como las condiciones Dirichlet son nulas, las velocidades de estos puntos&lt;br /&gt;
    %también lo serán&lt;br /&gt;
    V=[UA;V;UB];&lt;br /&gt;
    %Energía&lt;br /&gt;
    E=zeros(size(t));&lt;br /&gt;
    Ux=zeros(size(x));&lt;br /&gt;
    for l=1:M+1&lt;br /&gt;
        for m=2:N&lt;br /&gt;
            Ux(m)=(U(m+1,l)-U(m-1,l))/(2*k);&lt;br /&gt;
        end&lt;br /&gt;
        Ux=Ux';&lt;br /&gt;
        E(l)=trapz(x,V(:,l).^2)+trapz(x,Ux.^2);&lt;br /&gt;
    end&lt;br /&gt;
    %Dibujamos la gráfica de la energía&lt;br /&gt;
    hold on&lt;br /&gt;
    plot(t,E)&lt;br /&gt;
    %Borramos todos los datos para realizar el bucle de nuevo&lt;br /&gt;
    clear all&lt;br /&gt;
end&lt;br /&gt;
hold off&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Cambio de condiciones en los extremos. Condición Neumann. Cálculo de la energía ==&lt;br /&gt;
&lt;br /&gt;
== Vibración sin amortiguamiento. Método de Fourier ==&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29581</id>
		<title>Ecuación de ondas. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Ecuaci%C3%B3n_de_ondas._Grupo_C2&amp;diff=29581"/>
				<updated>2015-05-07T08:58:49Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: Página creada con «{{ TrabajoED | Ecuación de ondas. Grupo C2 | Ecuaciones Diferenciales|Curso 2014-15 | Nuestros nombres }} ...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Ecuación de ondas. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Nuestros nombres }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_con_autocat%C3%A1lisis._Grupo_C2&amp;diff=29212</id>
		<title>Reacciones con autocatálisis. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_con_autocat%C3%A1lisis._Grupo_C2&amp;diff=29212"/>
				<updated>2015-03-11T22:11:13Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método del Trapecio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Reacciones con autocatálisis. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Natalia Opie Dávila, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Perez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
== Introducción ==&lt;br /&gt;
Se considera una reacción química irreversible en una solución bien mezclada. Supondremos que la reacción ocurre para un volumen y temperatura constantes. Al inicio se encuentran dos reactivos A y B que van formando un producto C en lo que se conoce como una reacción bimolecular, es decir, una molécula de A y una de B producen una de C,:&lt;br /&gt;
&amp;lt;math&amp;gt; A + B \rightarrow C &amp;lt;/math&amp;gt;&lt;br /&gt;
Supondremos también que se satisface la ley de acción de masas, que establece que la velocidad de&lt;br /&gt;
reacción es proporcional al producto de las concentraciones de los reactivos.&lt;br /&gt;
En este ejercicio analizaremos el caso particular en el que A se transforma en B pero suponiendo&lt;br /&gt;
que la presencia de B hace de efecto catalítico en la reacción. Escribiremos este proceso como una reacción bimolecular:&lt;br /&gt;
&amp;lt;math&amp;gt; A + B \rightarrow _{k1} 2B &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Primera reacción ==&lt;br /&gt;
=== Interpretación ===&lt;br /&gt;
Tomamos x e y como las concentraciones de los reactivos que intervienen en la reacción y consideramos la reacción que describe la transformación de A y B para producir 2B a una velocidad k1. Basándonos en el principio de conservación de la masa (suma de concentraciones es siempre constante), partimos del la siguiente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt; x(t) + y(t) = cte &amp;lt;/math&amp;gt;&lt;br /&gt;
y derivando la ecuación con respecto al tiempo obtenemos:&lt;br /&gt;
&amp;lt;math&amp;gt;  x'(t) + y'(t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
Por otro lado, usando la ley de acción de masas, que establece que la velocidad de reacción es proporcional al producto de las concentraciones de los reactivos, en este caso el factor de proporcionalidad es k1.&lt;br /&gt;
&amp;lt;math&amp;gt; y'(t) = k_{1}*x(t)*y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
De la primera igualdad obtenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt; x(t) = cte - y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
y sustituyendo en la ecuación de la ley de acción de masas resulta:&lt;br /&gt;
&amp;lt;math&amp;gt; y'(t) = k_{1}*(cte - y(t))*y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
Teniendo en cuenta las condiciones iniciales que se proporcionan en el enunciado, definimos el siguiente problema de valor inicial:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         y'(t) = k_{1}*(cte - y(t))*y(t) \\&lt;br /&gt;
         y(0)=0.01&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Teorema de existencia y unicidad ====&lt;br /&gt;
&lt;br /&gt;
Para decidir si este problema de valor inicial tiene solución, hacemos uso del teorema de existencia y unicidad visto en las clases de teoría. Este teorema, también conocido con el nombre de Picard-Lindelöf, se puede enunciar como:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Sea &amp;lt;math&amp;gt;f(t, x):\Omega\subseteq\mathbb{R}\times\mathbb{R}^n\longrightarrow\mathbb{R}^n&amp;lt;/math&amp;gt;, donde &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; es abierto, una función continua y localmente Lipschitz respecto de &amp;lt;math&amp;gt;\mathit{x}&amp;lt;/math&amp;gt; (interprétese &amp;lt;math&amp;gt;f(t, x)&amp;lt;/math&amp;gt; como la forma estándar de una EDO n-dimensional de primer orden). Entonces, dado &amp;lt;math&amp;gt;(t_{0}, x_{0}) \in \Omega&amp;lt;/math&amp;gt;, podemos encontrar un intervalo cerrado &amp;lt;math&amp;gt;I_{\alpha}=[t_{0}-\alpha, t_{0}+\alpha]\subset \mathbb{R}, \alpha \in \mathbb{R}&amp;lt;/math&amp;gt; donde existe solución única del siguiente problema de Cauchy:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y'=f(t, y) \\ y(t_{0})=y_{0}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
que cumple que los pares &amp;lt;math&amp;gt;(t, x(t)) \in \Omega, \forall t \in I_{\alpha}.&amp;lt;/math&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Este enunciado, puede expresarse de manera más sencilla, diciendo que existe solución para el problema de valor inicial si existe un &amp;lt;math&amp;gt; r &amp;lt;/math&amp;gt; tal que &amp;lt;math&amp;gt; f(t,y) &amp;lt;/math&amp;gt; sea continua en &amp;lt;math&amp;gt; D \cap B((t_{0},y_{0}),r) &amp;lt;/math&amp;gt; (es decir, encontrar una bola alrededor del punto &amp;lt;math&amp;gt; (t_{0},y_{0}) &amp;lt;/math&amp;gt; de radio &amp;lt;math&amp;gt; r &amp;lt;/math&amp;gt; en la que la función sea continua.&lt;br /&gt;
Esta solución será además única cuando también se cumpla que &amp;lt;math&amp;gt; \displaystyle{ \delta f \over \delta y} &amp;lt;/math&amp;gt; sea también contínua en &amp;lt;math&amp;gt; D \cap B((t_{0},y_{0}),r) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para nuestro caso, tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt; f(t,y(t))=f= k_{1}*(cte - y(t))*y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
Y:&lt;br /&gt;
&amp;lt;math&amp;gt; \displaystyle{ \delta f \over \delta y} = k_{1}(cte - 2y) &amp;lt;/math&amp;gt;&lt;br /&gt;
Ambas funciones son polinómicas, por lo que no dan problemas en cuanto a su continuidad (ni en nuestro punto a tratar ni en ningún otro). '''Podemos concluir, por lo tanto, que existe solución y que esta es única.'''&lt;br /&gt;
&lt;br /&gt;
=== Ecuación diferencial ===&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Suponiendo que las concentraciones iniciales de A y B son 1'' &amp;lt;math&amp;gt;\frac{mol}{L}&amp;lt;/math&amp;gt; ''y 0.01'' &amp;lt;math&amp;gt;\frac{mol}{L}&amp;lt;/math&amp;gt; ''respectivamente, resolver el PVI elegiendo un paso de h=0.01 en los primeros 10 segundos.&amp;quot;'' &lt;br /&gt;
&lt;br /&gt;
Como ya hemos visto anteriormente, el problema de valor inicial tiene solución única. Vamos a usar algunos de los métodos numéricos conocidos, y así encontrar la solución a nuestro problema. Estos métodos serán el de Euler, el del Trapecio y el de Runge Kutta de cuarto orden. Posteriormente daremos una interpretación a las gráficas obtenidas en el apartado 2.2.4 .&lt;br /&gt;
&lt;br /&gt;
==== Método de Euler ====&lt;br /&gt;
&lt;br /&gt;
El esquema numérico del método es:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_n\\ y_{n+1}=y_n+h*f(t_n,y_n)\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Aplicado a nuestra ecuación y sustituyendo por los datos del problema, tendríamos que:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_n\\ y_{n+1}=y_n+h*[y_n*(1.01-y_n)]\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Y resolvemos&lt;br /&gt;
[[Archivo:Apartado2.1.jpg|400px|miniaturadeimagen|derecha||Gráfica Método de Euler h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos el vector y, que será nuestra solución de la concentración B.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
%Introducimos el valor incial en la primera posición del vector.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
%Definimos la función, para aplicarla a continuación en el Método de Euler.&lt;br /&gt;
F=inline('y*(1.01-y)','t','y');&lt;br /&gt;
%Recorremos, con un bucle, nuestro vector y, y en él almacenamos los&lt;br /&gt;
%resultados obtenidos con Euler.&lt;br /&gt;
for i=1:length(t)-1   &lt;br /&gt;
    y(i+1)=y(i)+h*F(t(i),y(i)); %Euler.&lt;br /&gt;
end&lt;br /&gt;
%De nuevo, por el Principio de Conservación de la Masa, como la suma de las&lt;br /&gt;
%concetraciones será C (cte.), podemos calcular la concentración de A como &lt;br /&gt;
%la diferencia entre C y la concentración de B (el vector y).&lt;br /&gt;
x=1.01-y;&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Método del Trapecio ====&lt;br /&gt;
&lt;br /&gt;
El esquema numérico del método es:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_n \\ y_{n+1}=y_n+{h \over 2}*[f(t_n,y_n)+f(t_{n+1},y_{n+1})]\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Como podemos observar, se trata de un método implícito. Esto quiere decir que nuestra incógnita depende de una función en la que también. Para solucionarlo, despejaremos la incógnita (&amp;lt;math&amp;gt; y_{n+1} &amp;lt;/math&amp;gt; ) en función del resto de variables y después aplicaremos el método numérico:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{c}y_{n+1}=y_n+{h \over 2}*[y_n*(C-y_n)+y_{n+1}*(C-y_{n+1})]\\y_{n+1}=y_n+{h \over 2}*y_n*(C-y_n)+{h \over 2}*y_{n+1}*(C-y_{n+1})\\y_{n+1}-{h \over 2}*y_{n+1}*(C-y_{n+1})=y_n*[1+{h \over 2}*(C-y_n)]\\{h \over 2}*(y_{n+1})^2+y_{n+1}*(1-{C*h \over 2})+[-y_n*[1+{h \over 2}*(C-y_n)]]=0\\y_{n+1}={-(1-{C*h \over 2})+\sqrt{(1-{C*h \over 2})^2-4*{h \over 2}*[-y_n*[1+{h \over 2}*(C-y_n)]]} \over 2*{h \over 2}}\\y_{n+1}={-1+{C*h \over 2}+\sqrt{(1-{C*h \over 2})^2-2*h*[-y_n*[1+{h \over 2}*(C-y_n)]]} \over h}\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab es el siguiente&lt;br /&gt;
[[Archivo:Apartado3b.jpg|400px|miniaturadeimagen|derecha||Gráfica Método del Trapecio h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 0.1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; c=1.01;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos el vector y, que será nuestra solución de la concentración B.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
%Introducimos el valor incial en la primera posición del vector.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
%Recorremos, con un bucle, nuestro vector y, y en él almacenamos los&lt;br /&gt;
%resultados obtenidos con el Método del Trapecio.&lt;br /&gt;
for i=1:length(t)-1   &lt;br /&gt;
    %Trapecio:&lt;br /&gt;
    y(i+1)=(1/(h*k))*((0.5*h*k*c-1)+sqrt((1-0.5*h*k*c)^2-2*h*k*(-y(i)-(h/2)*y(i)*(c-y(i)))));&lt;br /&gt;
end&lt;br /&gt;
%De nuevo, por el Principio de Conservación de la Masa, como la suma de las&lt;br /&gt;
%concetraciones será C (cte.), podemos calcular la concentración de A como &lt;br /&gt;
%la diferencia entre C y la concentración de B (el vector y).&lt;br /&gt;
x=1.01-y;&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se observa que la solución obtenida es la misma que por el método de Euler.&lt;br /&gt;
&lt;br /&gt;
==== Método de Runge-Kutta ====&lt;br /&gt;
&lt;br /&gt;
El esquema numérico del método de Runge-Kutta de orden 4 es:&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_0 \\ y_{n+1}=y_n+{h \over 6}*(K1+2*K2+2*K3+K4) \\ K1=f(t_n,y_n) \\ K2=f(t_n+{1 \over 2}*h,y_n+{1 \over 2}*K1*h) \\ K3=f(t_n+{1 \over 2}*h,y_n+{1 \over 2}*K2*h) \\ K4=f(t_n+h,y_n+K3*h) \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
El código MatLab es el siguiente&lt;br /&gt;
[[Archivo:Apartado3a.jpg|400px|miniaturadeimagen|derecha||Gráfica Método de Runge-Kutta de cuarto orden h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos el vector y, que será nuestra solución de la concentración B.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
%Introducimos el valor incial en la primera posición del vector.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
%Definimos la función, para aplicarla a continuación en el Método de &lt;br /&gt;
%Runge-Kutta.&lt;br /&gt;
F=inline('1*y*(1.01-y)','t','y');&lt;br /&gt;
%Recorremos, con un bucle, nuestro vector y, y en él almacenamos los&lt;br /&gt;
%resultados obtenidos con RK4.&lt;br /&gt;
for k=1:length(t)-1&lt;br /&gt;
    %Runge-Kutta de orden 4 (RK4):&lt;br /&gt;
    K1=F(t(k),y(k));&lt;br /&gt;
    K2=F(t(k)+(h/2),y(k)+h*K1/2);&lt;br /&gt;
    K3=F(t(k)+(h/2),y(k)+h*K2/2);&lt;br /&gt;
    K4=F(t(k)+h,y(k)+K3*h);&lt;br /&gt;
    y(k+1)=y(k)+(h/6)*(K1+2*K2+2*K3+K4);&lt;br /&gt;
end&lt;br /&gt;
%De nuevo, por el Principio de Conservación de la Masa, como la suma de las&lt;br /&gt;
%concetraciones será C (cte.), podemos calcular la concentración de A como &lt;br /&gt;
%la diferencia entre C y la concentración de B (el vector y).&lt;br /&gt;
x=1.01-y;&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De nuevo, la solución coincide.&lt;br /&gt;
&lt;br /&gt;
==== Interpretación de las gráficas obtenidas ====&lt;br /&gt;
&lt;br /&gt;
En las gráficas se puede observar que la concentración inicial de la sustancia A es de 1 &amp;lt;math&amp;gt;\frac{mol}{L}&amp;lt;/math&amp;gt; , mientras que la de B es de 0.01 &amp;lt;math&amp;gt; \frac{mol}{L} &amp;lt;/math&amp;gt;. Debido a que B hace efecto catalítico en la reacción, las curvas representativas de las concentraciones, creciente para la sustancia B (la concentración es mayor que la de A con el paso del tiempo) y decreciente para la sustancia A, son exponenciales. Una vez pasados los primeros 6-7 segundos, la velocidad de la reacción disminuye pues queda poca concentración de A para reaccionar y, a los 10 segundos, prácticamente todo la cantidad de sustancia es de B. Continuando con el programa del apartado 2.2.1 podemos calcular las cantidades finales concretas:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Concentraciones transcurridos 10 segundos de la reacción:&lt;br /&gt;
CF_A=x(length(x)); CF_B=y(length(y));&lt;br /&gt;
fprintf('La concentración final de A es de %.4f mol/L,y la de B de %.4f mol/L\n',CF_A,CF_B);&lt;br /&gt;
}}&lt;br /&gt;
Cuyo resultado en pantalla será:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
La concentración final de A es de 0.0039 mol/L,y la de B de 1.0061 mol/L&lt;br /&gt;
}}&lt;br /&gt;
Sin embargo, no podemos concretar exactamente cuándo ambas concentraciones son iguales. Esto es debido a la discretización, pues las gráficas no se pueden pintar como curvas continuas, si no como puntos muy próximos y por tanto, no se puede decir exactamente el valor donde &amp;lt;math&amp;gt; \left [ A \right ] &amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt; \left [ B \right ] &amp;lt;/math&amp;gt; , ya que lo más probable es que en ninguno de los vectores que representan el valor de las concentraciones coincidan. Sin embargo, podemos hacer una estimación del intervalo de tiempo donde ocurra, mirando la gráfica: el tiempo transcurrido será de entre 4.5 y 5 segundos. Para más precisión basta con ver los vectores de las concentraciones, y vemos que deben cortarse pasados entre 4.8 y 4.9 segundos, y la concentración estará entre 0.4999 y 0.5254 .&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
Sustancia B:&lt;br /&gt;
&lt;br /&gt;
Columns 45 through 55&lt;br /&gt;
&lt;br /&gt;
    0.4244    0.4493    0.4745    0.4999    0.5254    0.5508    0.5761    0.6011    0.6257    0.6497    0.6731&lt;br /&gt;
&lt;br /&gt;
Sustancia A:&lt;br /&gt;
&lt;br /&gt;
Columns 45 through 55&lt;br /&gt;
&lt;br /&gt;
    0.5856    0.5607    0.5355    0.5101    0.4846    0.4592    0.4339    0.4089    0.3843    0.3603    0.3369&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Sistema de ecuaciones ===&lt;br /&gt;
Otra forma de plantear la resolución de la reacción bimolecular de autocatálisis anterior es plantear tanto la concentración de A como la de B como las variables de un sistema de ecuaciones diferenciales. Este sistema es:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         y'(t)=k_{1}x(t)y(t) \\&lt;br /&gt;
         x'(t)=-k_{1}x(t)y(t)&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Por otra parte, definimos el problema de valor inicial asociado a este sistema, que es:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         y'(t)=k_{1}x(t)y(t) \\&lt;br /&gt;
         x'(t)=-k_{1}x(t)y(t) \\&lt;br /&gt;
         x(0)=1 \\ &lt;br /&gt;
         y(0)=0.01&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
    \right .&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
siendo &amp;lt;math&amp;gt; k=1\frac{mol}{s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Método de Euler ====&lt;br /&gt;
El método de Euler se basa en la fórmula expuesta en el apartado 2.2.1. En este caso, al ser el sistema de ecuaciones no lineal, no podemos aplicar el método usando la técnica de la matriz explicada en las sesiones de numérico, siendo necesario por lo tanto aplicar el método en cuestión a cada ecuación por separado. El código del programa es el siguiente:&lt;br /&gt;
[[Archivo:Apartado4a.jpg|400px|miniaturadeimagen|derecha||Gráfica por el método de Euler con paso h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; x0=1;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos los vectores x e y, que serán nuestras soluciones de la &lt;br /&gt;
%concentración A y B, respectivamente.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
x=y;&lt;br /&gt;
%Introducimos los valores iniciales de cada concentración en la primera&lt;br /&gt;
%posición de los vectores.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
%Definimos ambas funciones, para aplicarlas a continuación en el Método de&lt;br /&gt;
%Euler.&lt;br /&gt;
F=inline('x*y','t','y','x');&lt;br /&gt;
G=inline('-x*y','t','y','x');&lt;br /&gt;
%Recorremos, con un bucle, los vectores, y en ellos almacenamos los&lt;br /&gt;
%resultados obtenidos con Euler.&lt;br /&gt;
for i=1:length(t)-1   &lt;br /&gt;
    %Euler:&lt;br /&gt;
    y(i+1)=y(i)+h*F(t(i),y(i),x(i));&lt;br /&gt;
    x(i+1)=x(i)+h*G(t(i),y(i),x(i));&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Sin embargo, podemos usar un método alternativo. Podemos crear en primer lugar un archivo .m, en concreto una función, que nos servirá para escribir nuestras ecuaciones de manera más sencilla. El problema lo vamos a abordar, por tanto, vectorialmente. Este método es más cómodo cuando tratamos con sistemas de muchas ecuaciones.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Empezamos creando el archivo sys_Euler_C2.m , donde definimos nuestro&lt;br /&gt;
% sistema:&lt;br /&gt;
function syst = sys_Euler_C2(t,y)&lt;br /&gt;
dy1=y(2)*y(1);&lt;br /&gt;
dy2=-y(2)*y(1);&lt;br /&gt;
syst=[dy1;dy2];&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Apartado4a.jpg|400px|miniaturadeimagen|derecha||Gráfica por el método de Euler con paso h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Y creamos nuestro programa, haciendo una llamada a la función anterior.&lt;br /&gt;
%Definiciones previas.&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; x0=1;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%Creamos el vector donde tendremos nuestras condiciones iniciales.&lt;br /&gt;
yini=[y0;x0];&lt;br /&gt;
%Preasignamos la matriz Y, que será nuestra solución de la &lt;br /&gt;
%concentración A y B, en la primera y segunda fila, respectivamente.&lt;br /&gt;
Y=zeros(2,length(t));&lt;br /&gt;
%Damos las condiciones iniciales a la primera columna.&lt;br /&gt;
Y(:,1)=yini;&lt;br /&gt;
%Recorremos, con un bucle, la matriz (por columnas), y almacenamos los&lt;br /&gt;
%resultados obtenidos con Euler.&lt;br /&gt;
for k=1:length(t)-1   &lt;br /&gt;
     Y(:,k+1)=Y(:,k)+h*sys_Euler_C2(t(k),Y(:,k));&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,Y(1,:),'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(2,:),'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Por supuesto, la gráfica es exactamente la misma.&lt;br /&gt;
&lt;br /&gt;
==== Método de Runge-Kutta ====&lt;br /&gt;
Ahora vamos a aplicar el método de Runge-Kutta de orden 4 a la ecuación expuesta anteriormente. Este método, al ser de orden superior al método de Euler, nos ofrecerá una mayor aproximación a la solución real mediante el cálculo numérico de esta. El código MatLab del programa es el que se muestra a continuación.&lt;br /&gt;
[[Archivo:Apartado4b.jpg|400px|miniaturadeimagen|derecha||Gráfica por el método de Runge-Kutta con paso h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; x0=1;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos los vectores x e y, que serán nuestras soluciones de la &lt;br /&gt;
%concentración A y B, respectivamente.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
x=y;&lt;br /&gt;
%Introducimos los valores inciales de cada concentración en la primera&lt;br /&gt;
%posición de los vectores.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
%Definimos ambas funciones, para aplicarlas a continuación en el Método de&lt;br /&gt;
%Runge-Kutta.&lt;br /&gt;
F=inline('x*y','t','y','x');&lt;br /&gt;
G=inline('-x*y','t','y','x');&lt;br /&gt;
%Recorremos, con un bucle, los vectores, y en ellos almacenamos los&lt;br /&gt;
%resultados obtenidos con RK4.&lt;br /&gt;
for k=1:length(t)-1&lt;br /&gt;
    %Runge-Kutta de orden 4 (RK4):&lt;br /&gt;
    K1_y=F(t(k),y(k),x(k));&lt;br /&gt;
    K1_x=G(t(k),y(k),x(k));&lt;br /&gt;
    K2_y=F(t(k)+(h/2),y(k)+h*K1_y/2,x(k)+h*K1_x/2);&lt;br /&gt;
    K2_x=G(t(k)+(h/2),y(k)+h*K1_y/2,x(k)+h*K1_x/2);&lt;br /&gt;
    K3_y=F(t(k)+(h/2),y(k)+h*K2_y/2,x(k)+h*K2_x/2);&lt;br /&gt;
    K3_x=G(t(k)+(h/2),y(k)+h*K2_y/2,x(k)+h*K2_x/2);&lt;br /&gt;
    K4_y=F(t(k)+h,y(k)+K3_y*h,x(k)+K3_x*h);&lt;br /&gt;
    K4_x=G(t(k)+h,y(k)+K3_y*h,x(k)+K3_x*h);&lt;br /&gt;
    &lt;br /&gt;
    y(k+1)=y(k)+(h/6)*(K1_y+2*K2_y+2*K3_y+K4_y);&lt;br /&gt;
    x(k+1)=x(k)+(h/6)*(K1_x+2*K2_x+2*K3_x+K4_x);&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
Podemos observar como la representación gráfica vuelve a coincidir con los apartados anteriores, ya que se trata del mismo problema resuelto por caminos diferentes.&lt;br /&gt;
&lt;br /&gt;
Un aspecto importante a la hora de aplicar este método a sistemas de ecuaciones diferenciales no lineales es que, al depender K2 de K1, K3 de K2, y K4 de K3, es necerario definir primero las K1 de ambas incógnitas, luego las K2 y así sucesivamente. Si no, a la hora de aplicar el bucle, si definimos primero las Ki de la incógnita x(t) y luego las Kj de la incógnita y(t), los valores de las Kj de y(t) serían los de la anterior iteración del bucle. realizándose por lo tanto un cálculo erróneo.&lt;br /&gt;
&lt;br /&gt;
=== Conclusión ===&lt;br /&gt;
Una vez resuelto el problema de la reacción de autocátálisis &amp;lt;math&amp;gt; A + B \rightarrow _{k1} B &amp;lt;/math&amp;gt;, procedemos a interpretar los resultados.&lt;br /&gt;
&lt;br /&gt;
Tal y como se observó al despejar y(t) para pasar de un sistema de ecuaciones diferenciales a una sola ecuación, la concentración tanto de A como de B se rige por funciones logísticas del tipo:&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{dy}{dt}=ry\left(1 - \frac{y}{K}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro problema, las constantes r y K toman los siguientes valores:&lt;br /&gt;
&amp;lt;math&amp;gt;  r=k_{1} \cdot K= 1.01 &amp;lt;/math&amp;gt; : &amp;lt;math&amp;gt; K=c=1.01 &amp;lt;/math&amp;gt;&lt;br /&gt;
Esta función logística se caracteriza, tanto como para x(t) como para y(t), por tener asíntotas horizontales en 0 y en 1.01. Además la función y(t) es siempre creciente, mientras que la función x(t) es decreciente. También podemos observar una simetría entre ambas funciones, siendo la recta que define el eje de simetría x=0.505, lo que también nos dice que los valores de ambas funciones siempre suman 1.01.&lt;br /&gt;
&lt;br /&gt;
Toda esta información que nos proporciona el gráfico tiene una interpretación química clara. Las asíndotas nos muestran los valores máximos y mínimos que pueden presentar ambas concetraciones. Por otra parte, el crecimiento o decrecimiento de ambas funciones nos muestra como la concentracion de x(t) al principio de la reacción es muy alta, mientras que la de y(t) es mínima. Según transcurre el tiempo, las moléculas de A se van transformando en moléculas de B, por lo que la concentración de y(t) va aumentando a costa de la disminución de x(t). Por último, la simetría se las funciones nos muestra que y(t) se produce al mismo ritmo que disminuye x(t), sumando ambos valores 1.01 en cualquier instante, lo que verifica el principio de la conservación de la masa.&lt;br /&gt;
&lt;br /&gt;
== Segunda reacción ==&lt;br /&gt;
&lt;br /&gt;
=== Interpretación ===&lt;br /&gt;
&lt;br /&gt;
Consideramos la reacción consecutiva propuesta por Lotka en 1920.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A + X \rightarrow _{k1} 2X &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; X+ Y \rightarrow _{k2} 2Y &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; Y \rightarrow _{k3} B &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando A, X, B, e Y en la resolución de las ecuaciones diferenciales como las concentraciones de las diferentes sustancias. Esta reacción consecutiva describe la transformación de A para producir B, estando controladas la velocidad y la mezcla de este proceso por las reacciones autocatalíticas en las que participan X e Y.&lt;br /&gt;
Basándonos de nuevo en el principio de de conservación de la masa, partimos de la ecuación de que la suma de las concentraciones de todas las sustancias ha de ser constante:&lt;br /&gt;
&amp;lt;math&amp;gt; A + x + y + B = cte &amp;lt;/math&amp;gt;&lt;br /&gt;
Derivando esta ecuación deducimos que:&lt;br /&gt;
&amp;lt;math&amp;gt; A' + x' + y' + B' = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
Por otra parte, la ley de acción de masas nos indica que la velocidad de una reacción es proporcional al producto de las concentraciones de los reactivos. De esta forma, podemos obtener el resto de ecuaciones, teniendo en cuenta que tanto la sustancia x como la sustancia y no solo se producen, sino que también se consumen, por lo que habrá que restar a la parte consumida la parte producida.&lt;br /&gt;
&lt;br /&gt;
Todo esto nos da lugar al siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         x' = k1Ax − k2xy \\&lt;br /&gt;
         y' = k2xy − k3y \\&lt;br /&gt;
         B' = k3y \\&lt;br /&gt;
         A' + x' + y' + B' = 0&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Por lo que podemos ver, a modo de mayor aclaración a lo explicado en el párrafo anterior, en la reacción autocatalítica &amp;lt;math&amp;gt; A + X \rightarrow _{k1} 2X &amp;lt;/math&amp;gt; se forma X, ya que es positivo, con una velocidad de reacción k1. De la misma manera observamos que en la reacción &amp;lt;math&amp;gt; X+ Y \rightarrow _{k2} 2Y &amp;lt;/math&amp;gt; X se consume con una velocidad de reacción k2.&lt;br /&gt;
&lt;br /&gt;
La reacción &amp;lt;math&amp;gt; A' + x' + y' + B' = 0 &amp;lt;/math&amp;gt; está en función de las otras, por lo que sustituyendo llegamos a que &amp;lt;math&amp;gt;A'=-k1Ax &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
En conclusión, vamos a resolver el problema de valor inicial tomando k1=k2=2k3=0.1 y las condiciones iniciales propuestas:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        x' = 0.1Ax − 0.1xy \\&lt;br /&gt;
        y' = 0.1xy − 0.05y \\&lt;br /&gt;
        B' = 0.05y \\&lt;br /&gt;
        A'=-0.1Ax \\&lt;br /&gt;
        A(0)=5 \\&lt;br /&gt;
        X(0)=0.0005 \\&lt;br /&gt;
        Y(0)=0.00001 \\&lt;br /&gt;
        B(0)=0 &lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler ===&lt;br /&gt;
Vamos a resolver el problema por el método de Euler:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
       y0,t0\\&lt;br /&gt;
       y_{n+1}=y_n+h*f(t_n,y_n)&lt;br /&gt;
 \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Aplicado a cada uno de nuestras ecuaciones y sustituyendo por los datos del problema, nos quedaría algo así:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        X_{n+1}=X_n+h*[0.1*A_n*X_n-0.1*X_n*Y_n]\\&lt;br /&gt;
        Y_{n+1}=Y_n+h*[0.1*X_n*Y_n-0.05*Y_n]\\&lt;br /&gt;
        B_{n+1}=B_n+h*[0.05*Y_n]\\&lt;br /&gt;
        A_{n+1}=A_n+h*[-0.1*X_n*A_n]&lt;br /&gt;
 \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se muestra el código MatLab de la resolución numérica&lt;br /&gt;
&lt;br /&gt;
[[Archivo:apartado6.1.jpg|400px|miniaturadeimagen|derecha|Gráfica método de Euler h=0.01]] &lt;br /&gt;
[[Archivo:Apartado6.2.jpg|400px|miniaturadeimagen|derecha|Gráfica método de Euler h=0.001]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos del problema de valor inicial&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=200;&lt;br /&gt;
A0=5;&lt;br /&gt;
X0=5*(10^-4);&lt;br /&gt;
Y0=10^(-5);&lt;br /&gt;
B0=0;&lt;br /&gt;
k1=0.1;&lt;br /&gt;
k2=0.1;&lt;br /&gt;
k3=0.05;&lt;br /&gt;
h=input('Introduzca un valor para h:');&lt;br /&gt;
&lt;br /&gt;
%Vector de tiempo&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
&lt;br /&gt;
%Definir el número de intervalos&lt;br /&gt;
N=(tN-t0)/h;&lt;br /&gt;
&lt;br /&gt;
%Vectores vacíos para nuestra solución&lt;br /&gt;
A=zeros(1,N+1);&lt;br /&gt;
X=zeros(1,N+1);&lt;br /&gt;
Y=zeros(1,N+1);&lt;br /&gt;
B=zeros(1,N+1);&lt;br /&gt;
&lt;br /&gt;
%Valores iniciales&lt;br /&gt;
A(1)=A0;&lt;br /&gt;
X(1)=X0;&lt;br /&gt;
Y(1)=Y0;&lt;br /&gt;
B(1)=B0;&lt;br /&gt;
&lt;br /&gt;
%Resolvemos el sistema&lt;br /&gt;
&lt;br /&gt;
for i=1:N&lt;br /&gt;
X(i+1)=X(i)+h.*(k1.*A(i).*X(i)-k2.*X(i).*Y(i));&lt;br /&gt;
Y(i+1)=Y(i)+h.*(k2.*X(i).*Y(i)-k3.*Y(i));&lt;br /&gt;
B(i+1)=B(i)+h.*(k3*Y(i));&lt;br /&gt;
A(i+1)=A(i)+h.*(-k1.*X(i).*A(i));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Gráfica de resultados&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,X)&lt;br /&gt;
plot(t,Y,'g')&lt;br /&gt;
plot(t,B,'r')&lt;br /&gt;
plot(t,A,'y')&lt;br /&gt;
hold off&lt;br /&gt;
legend('Concentración X','Concentración de Y','Concentración de B','Concentración de A','Location','best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Estabilidadtotal.jpg|220px|miniaturadeimagen|izquierda|Comparación gráfica original y la gráfica cambiando las condiciones iniciales con h=0.01]] &lt;br /&gt;
[[Archivo:Detalle estabilidad total.jpg|220px|miniaturadeimagen|derecha|Detalle de la comparación anterior con h=0.01]] &lt;br /&gt;
[[Archivo:Estabilidadtotal2.jpg|220px|miniaturadeimagen|izquierda|Comparación gráfica original y la gráfica cambiando las condiciones iniciales con h=0.001]] &lt;br /&gt;
[[Archivo:Detalleestabilidadtotal2.jpg|220px|miniaturadeimagen|derecha|Detalle de la comparación anterior con h=0.001]] &lt;br /&gt;
&lt;br /&gt;
Un PVI es estable si pequeñas perturbaciones de la función o de las condiciones iniciales afectan poco a la solución y además el error no aumenta a medida que avanza el tiempo. Para ver la estabilidad vamos a modificar un diferencial las concentraciones para ver si variarían de forma brusca o no, y así ver si realmente este método es estable. Para ello haremos un programa exactamente igual que el anterior, por lo que no lo vamos a adjuntar, en el que superpondremos la gráfica anterior y la nueva gráfica con las nuevas condiciones iniciales. Las condiciones que vamos a coger son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        x' = 0.1Ax − 0.1xy \\&lt;br /&gt;
        y' = 0.1xy − 0.05y \\&lt;br /&gt;
        B' = 0.05y \\&lt;br /&gt;
        A'=-0.1Ax \\&lt;br /&gt;
        A(0)=5.00001 \\&lt;br /&gt;
        X(0)=0.000501 \\&lt;br /&gt;
        Y(0)=0.000011 \\&lt;br /&gt;
        B(0)=0.000001 &lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Las gráficas prácticamente se superponen, para observar el error que se produce a lo largo del tiempo hay que realizar un zoom bastante grande. Al darse todo esto podemos afirmar con bastante seguridad que el método es estable.&lt;br /&gt;
&lt;br /&gt;
Sin embargo cuando tomamos un tamaño de paso grande (por ejemplo h=5) observamos una deformación significativa en la representación gráfico. Podemos decir por lo tanto que el método de Euler es estable siempre y cuando la h sea pequeña. Pero si coger un tamaño de paso pequeño en contraproducente, ya que para que sea realmente estable el tamaño de paso elegido dará lugar a un gran numero de iteraciones, para lo cual es necesario un ordenador con bastante memoria RAM para que pueda soportarlo, Son muchos contras para una operación que se podría realizar de un modo más rápido y efectivo utilizando simplemente otro método.&lt;br /&gt;
&lt;br /&gt;
===Método de Heun===&lt;br /&gt;
El método de Heun es un método explícito. Para poder obtenerlo debemos primeramente definir una serie de constantes. Su definición matemática sería la siguiente:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        y_{0},t_{0}\\&lt;br /&gt;
        y_{n+1}=y_{n}+0.5h*(K1+K2)\\&lt;br /&gt;
        K1=f(t_{n},y_{n})\\&lt;br /&gt;
        K2=f(t_{n}+h,y_{n}+K1*h)&lt;br /&gt;
       \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Aplicamos el método para cada una de nuestras ecuaciones obteniendo el siguiente programa&lt;br /&gt;
[[Archivo:apartado7C2.jpg|400px|miniaturadeimagen|derecha|Gráfica método de Heun]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos del problema de valor inicial&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=200;&lt;br /&gt;
A0=5;&lt;br /&gt;
X0=5*(10^-4);&lt;br /&gt;
Y0=10^(-5);&lt;br /&gt;
B0=0;&lt;br /&gt;
k1=0.1;&lt;br /&gt;
k2=0.1;&lt;br /&gt;
k3=0.05;&lt;br /&gt;
h=0.01;&lt;br /&gt;
&lt;br /&gt;
%Vector de tiempo&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
&lt;br /&gt;
%Definir el número de intervalos&lt;br /&gt;
N=(tN-t0)/h;&lt;br /&gt;
&lt;br /&gt;
%Vectores vacíos para nuestra solución&lt;br /&gt;
A=zeros(1,N+1);&lt;br /&gt;
X=zeros(1,N+1);&lt;br /&gt;
Y=zeros(1,N+1);&lt;br /&gt;
B=zeros(1,N+1);&lt;br /&gt;
&lt;br /&gt;
%Valores iniciales&lt;br /&gt;
A(1)=A0;&lt;br /&gt;
X(1)=X0;&lt;br /&gt;
Y(1)=Y0;&lt;br /&gt;
B(1)=B0;&lt;br /&gt;
&lt;br /&gt;
%Definimos las constantes&lt;br /&gt;
for i=1:N&lt;br /&gt;
K1X=k1.*A(i).*X(i)-k2.*X(i).*Y(i);&lt;br /&gt;
K1Y=k2.*X(i).*Y(i)-k3.*Y(i);&lt;br /&gt;
K1B=k3.*Y(i);&lt;br /&gt;
K1A=-k1.*X(i).*A(i);&lt;br /&gt;
K2X=k1.*(A(i)+K1X.*h).*(X(i)+K1X.*h)-k2.*(X(i)+K1X.*h).*(Y(i)+K1X.*h);&lt;br /&gt;
K2Y=k2.*(X(i)+K1Y.*h).*(Y(i)+K1Y.*h)-k3.*(Y(i)+K1Y.*h);&lt;br /&gt;
K2B=k3.*(Y(i)+K1B.*h);&lt;br /&gt;
K2A=-k1.*(X(i)+K1A.*h).*(A(i)+K1A.*h);&lt;br /&gt;
%Aplicamos el método&lt;br /&gt;
X(i+1)=X(i)+0.5*h.*(K1X+K2X);&lt;br /&gt;
Y(i+1)=Y(i)+0.5*h.*(K1Y+K2Y);&lt;br /&gt;
B(i+1)=B(i)+0.5*h.*(K1B+K2B);&lt;br /&gt;
A(i+1)=A(i)+0.5*h.*(K1A+K2A);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Gráficas&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,X);&lt;br /&gt;
plot(t,Y,'g');&lt;br /&gt;
plot(t,B,'r');&lt;br /&gt;
plot(t,A,'y');&lt;br /&gt;
hold off&lt;br /&gt;
legend('Concentración X','Concentración de Y','Concentración de B','Concentración de A','Location','best');&lt;br /&gt;
}}&lt;br /&gt;
Vemos que la gráfica es semejante a la obtenida por el método de Euler, en este caso utilizando sólo un valor para el tamaño de paso. &lt;br /&gt;
&lt;br /&gt;
Es importante definir las constantes del bucle en el orden que se expresó para el método de Runge-Kutta, ya que si no nos daría un error, por lo explicado también en ese subapartado. También es importante definir estas constantes antes de aplicar el método en sí.&lt;br /&gt;
&lt;br /&gt;
=== Conclusión ===&lt;br /&gt;
&lt;br /&gt;
Habiendo terminado el estudio de la reacción consecutiva propuesta por Lokta interpretamos las gráficas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A + X \rightarrow _{k1} 2X &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; X+ Y \rightarrow _{k2} 2Y &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; Y \rightarrow _{k3} B &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La reacción consecutiva comienza con una concentración de A de &amp;lt;math&amp;gt; 5 \frac{mol}{L} &amp;lt;/math&amp;gt;, una concentración de X de &amp;lt;math&amp;gt; 5*10^{-4} \frac{mol}{L} &amp;lt;/math&amp;gt; y una concentración de Y de &amp;lt;math&amp;gt; 10^{-5} \frac{mol}{L} &amp;lt;/math&amp;gt;, siendo la concentración de B al final del proceso igual a la suma de las concentraciones iniciales de todas ellas, cumpliéndose de esta forma la ley de conservación de masas. Observamos que la reacción autocatalítica, a medida que transcurre el tiempo consume A para producir X a gran velocidad, que lo vemos en que la pendiente de la curva correspondiente a A es siempre negativa, por lo tanto está decreciendo. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observamos, como era de esperar, que el compuesto Y aparece en cantidad apreciable cuando hemos conseguido la suficiente cantidad de X como para que comienza la siguiente reacción autocatalítica. Tanto en la gráfica de X como en la de Y presentan un cambio de pendiente marcado por un máximo, siendo a partir este punto mayor el consumo que la producción de ambas sustancias.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, vemos la aparición de B en la gráfica, poco después de Y, ya que es necesario tener una cierta cantidad de Y para comenzar a producir B de manera apreciable. Podemos ver que la pendiente de la curva de B siempre es positiva, por lo tanto siempre crece.&lt;br /&gt;
&lt;br /&gt;
Es importante darse cuenta de que la suma de las concentraciones de los compuestos para cualquier instante de tiempo es igual a &amp;lt;math&amp;gt; 5.00051 \frac{mol}{L} &amp;lt;/math&amp;gt;, debido a la ley de conservación de masas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_con_autocat%C3%A1lisis._Grupo_C2&amp;diff=27174</id>
		<title>Reacciones con autocatálisis. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_con_autocat%C3%A1lisis._Grupo_C2&amp;diff=27174"/>
				<updated>2015-03-05T23:03:51Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Conclusión */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Reacciones con autocatálisis. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Natalia Opie Dávila, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Perez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
== Introducción ==&lt;br /&gt;
Se considera una reacción química irreversible en una solución bien mezclada. Supondremos que la reacción ocurre para un volumen y temperatura constantes. Al inicio se encuentran dos reactivos A y B que van formando un producto C en lo que se conoce como una reacción bimolecular, es decir, una molécula de A y una de B producen una de C,:&lt;br /&gt;
&amp;lt;math&amp;gt; A + B \rightarrow C &amp;lt;/math&amp;gt;&lt;br /&gt;
Supondremos también que se satisface la ley de acción de masas, que establece que la velocidad de&lt;br /&gt;
reacción es proporcional al producto de las concentraciones de los reactivos.&lt;br /&gt;
En este ejercicio analizaremos el caso particular en el que A se transforma en B pero suponiendo&lt;br /&gt;
que la presencia de B hace de efecto catalítico en la reacción. Escribiremos este proceso como una reacción bimolecular:&lt;br /&gt;
&amp;lt;math&amp;gt; A + B \rightarrow _{k1} 2B &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Primera reacción ==&lt;br /&gt;
=== Interpretación ===&lt;br /&gt;
Tomamos x e y como las concentraciones de los reactivos que intervienen en la reacción y consideramos la reacción que describe la transformación de A y B para producir 2B a una velocidad k1. Basándonos en el principio de conservación de la masa (suma de concentraciones es siempre constante), partimos del la siguiente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt; x(t) + y(t) = cte &amp;lt;/math&amp;gt;&lt;br /&gt;
y derivando la ecuación con respecto al tiempo obtenemos:&lt;br /&gt;
&amp;lt;math&amp;gt;  x'(t) + y'(t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
Por otro lado, usando la ley de acción de masas, que establece que la velocidad de reacción es proporcional al producto de las concentraciones de los reactivos, en este caso el factor de proporcionalidad es k1.&lt;br /&gt;
&amp;lt;math&amp;gt; y'(t) = k_{1}*x(t)*y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
De la primera igualdad obtenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt; x(t) = cte - y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
y sustituyendo en la ecuación de la ley de acción de masas resulta:&lt;br /&gt;
&amp;lt;math&amp;gt; y'(t) = k_{1}*(cte - y(t))*y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
Teniendo en cuenta las condiciones iniciales que se proporcionan en el enunciado, definimos el siguiente problema de valor inicial:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         y'(t) = k_{1}*(cte - y(t))*y(t) \\&lt;br /&gt;
         y(0)=0.01&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Teorema de existencia y unicidad ====&lt;br /&gt;
&lt;br /&gt;
Para decidir si este problema de valor inicial tiene solución, hacemos uso del teorema de existencia y unicidad visto en las clases de teoría. Este teorema, también conocido con el nombre de Picard-Lindelöf, se puede enunciar como:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Sea &amp;lt;math&amp;gt;f(t, x):\Omega\subseteq\mathbb{R}\times\mathbb{R}^n\longrightarrow\mathbb{R}^n&amp;lt;/math&amp;gt;, donde &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; es abierto, una función continua y localmente Lipschitz respecto de &amp;lt;math&amp;gt;\mathit{x}&amp;lt;/math&amp;gt; (interprétese &amp;lt;math&amp;gt;f(t, x)&amp;lt;/math&amp;gt; como la forma estándar de una EDO n-dimensional de primer orden). Entonces, dado &amp;lt;math&amp;gt;(t_{0}, x_{0}) \in \Omega&amp;lt;/math&amp;gt;, podemos encontrar un intervalo cerrado &amp;lt;math&amp;gt;I_{\alpha}=[t_{0}-\alpha, t_{0}+\alpha]\subset \mathbb{R}, \alpha \in \mathbb{R}&amp;lt;/math&amp;gt; donde existe solución única del siguiente problema de Cauchy:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y'=f(t, y) \\ y(t_{0})=y_{0}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
que cumple que los pares &amp;lt;math&amp;gt;(t, x(t)) \in \Omega, \forall t \in I_{\alpha}.&amp;lt;/math&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Este enunciado, puede expresarse de manera más sencilla, diciendo que existe solución para el problema de valor inicial si existe un &amp;lt;math&amp;gt; r &amp;lt;/math&amp;gt; tal que &amp;lt;math&amp;gt; f(t,y) &amp;lt;/math&amp;gt; sea continua en &amp;lt;math&amp;gt; D \cap B((t_{0},y_{0}),r) &amp;lt;/math&amp;gt; (es decir, encontrar una bola alrededor del punto &amp;lt;math&amp;gt; (t_{0},y_{0}) &amp;lt;/math&amp;gt; de radio &amp;lt;math&amp;gt; r &amp;lt;/math&amp;gt; en la que la función sea continua.&lt;br /&gt;
Esta solución será además única cuando también se cumpla que &amp;lt;math&amp;gt; \displaystyle{ \delta f \over \delta y} &amp;lt;/math&amp;gt; sea también contínua en &amp;lt;math&amp;gt; D \cap B((t_{0},y_{0}),r) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para nuestro caso, tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt; f(t,y(t))=f= k_{1}*(cte - y(t))*y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
Y:&lt;br /&gt;
&amp;lt;math&amp;gt; \displaystyle{ \delta f \over \delta y} = k_{1}(cte - 2y) &amp;lt;/math&amp;gt;&lt;br /&gt;
Ambas funciones son polinómicas, por lo que no dan problemas en cuanto a su continuidad (ni en nuestro punto a tratar ni en ningún otro). '''Podemos concluir, por lo tanto, que existe solución y que esta es única.'''&lt;br /&gt;
&lt;br /&gt;
=== Ecuación diferencial ===&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Suponiendo que las concentraciones iniciales de A y B son 1'' &amp;lt;math&amp;gt;\frac{mol}{L}&amp;lt;/math&amp;gt; ''y 0.01'' &amp;lt;math&amp;gt;\frac{mol}{L}&amp;lt;/math&amp;gt; ''respectivamente, resolver el PVI elegiendo un paso de h=0.01 en los primeros 10 segundos.&amp;quot;'' &lt;br /&gt;
&lt;br /&gt;
Como ya hemos visto anteriormente, el problema de valor inicial tiene solución única. Vamos a usar algunos de los métodos numéricos conocidos, y así encontrar la solución a nuestro problema. Estos métodos serán el de Euler, el del Trapecio y el de Runge Kutta de cuarto orden. Posteriormente daremos una interpretación a las gráficas obtenidas en el apartado 2.2.4 .&lt;br /&gt;
&lt;br /&gt;
==== Método de Euler ====&lt;br /&gt;
&lt;br /&gt;
El esquema numérico del método es:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_n\\ y_{n+1}=y_n+h*f(t_n,y_n)\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Aplicado a nuestra ecuación y sustituyendo por los datos del problema, tendríamos que:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_n\\ y_{n+1}=y_n+h*[y_n*(1.01-y_n)]\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Y resolvemos&lt;br /&gt;
[[Archivo:Apartado2.1.jpg|400px|miniaturadeimagen|derecha||Gráfica Método de Euler h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos el vector y, que será nuestra solución de la concentración B.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
%Introducimos el valor incial en la primera posición del vector.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
%Definimos la función, para aplicarla a continuación en el Método de Euler.&lt;br /&gt;
F=inline('y*(1.01-y)','t','y');&lt;br /&gt;
%Recorremos, con un bucle, nuestro vector y, y en él almacenamos los&lt;br /&gt;
%resultados obtenidos con Euler.&lt;br /&gt;
for i=1:length(t)-1   &lt;br /&gt;
    y(i+1)=y(i)+h*F(t(i),y(i)); %Euler.&lt;br /&gt;
end&lt;br /&gt;
%De nuevo, por el Principio de Conservación de la Masa, como la suma de las&lt;br /&gt;
%concetraciones será C (cte.), podemos calcular la concentración de A como &lt;br /&gt;
%la diferencia entre C y la concentración de B (el vector y).&lt;br /&gt;
x=1.01-y;&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Método del Trapecio ====&lt;br /&gt;
&lt;br /&gt;
El esquema numérico del método es:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_n \\ y_{n+1}=y_n+{h \over 2}*[f(t_n,y_n)+f(t_{n+1},y_{n+1})]\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Como podemos observar, se trata de un método implícito. Esto quiere decir que nuestra incógnita depende de una función en la que también. Para solucionarlo, despejaremos la incógnita (&amp;lt;math&amp;gt; y_{n+1} &amp;lt;/math&amp;gt; ) en función del resto de variables y después aplicaremos el método numérico:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{c}y_{n+1}=y_n+{h \over 2}*[y_n*(C-y_n)+y_{n+1}*(C-y_{n+1})]\\y_{n+1}=y_n+{h \over 2}*y_n*(C-y_n)+{h \over 2}*y_{n+1}*(C-y_{n+1})\\y_{n+1}-{h \over 2}*y_{n+1}*(C-y_{n+1})=y_n*[1+{h \over 2}*(C-y_n)]\\{h \over 2}*(y_{n+1})^2+y_{n+1}*(1-{C*h \over 2}+[-y_n*[1+{h \over 2}*(C-y_n)]])=0\\y_{n+1}={-(1-{C*h \over 2})+\sqrt{(1-{C*h \over 2})^2-4*{h \over 2}*[-y_n*[1+{h \over 2}*(C-y_n)]]} \over 2*{h \over 2}}\\y_{n+1}={-1+{C*h \over 2}+\sqrt{(1-{C*h \over 2})^2-2*h*[-y_n*[1+{h \over 2}*(C-y_n)]]} \over h}\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab es el siguiente&lt;br /&gt;
[[Archivo:Apartado3b.jpg|400px|miniaturadeimagen|derecha||Gráfica Método del Trapecio h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 0.1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; c=1.01;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos el vector y, que será nuestra solución de la concentración B.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
%Introducimos el valor incial en la primera posición del vector.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
%Recorremos, con un bucle, nuestro vector y, y en él almacenamos los&lt;br /&gt;
%resultados obtenidos con el Método del Trapecio.&lt;br /&gt;
for i=1:length(t)-1   &lt;br /&gt;
    %Trapecio:&lt;br /&gt;
    y(i+1)=(1/(h*k))*((0.5*h*k*c-1)+sqrt((1-0.5*h*k*c)^2-2*h*k*(-y(i)-(h/2)*y(i)*(c-y(i)))));&lt;br /&gt;
end&lt;br /&gt;
%De nuevo, por el Principio de Conservación de la Masa, como la suma de las&lt;br /&gt;
%concetraciones será C (cte.), podemos calcular la concentración de A como &lt;br /&gt;
%la diferencia entre C y la concentración de B (el vector y).&lt;br /&gt;
x=1.01-y;&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se observa que la solución obtenida es la misma que por el método de Euler.&lt;br /&gt;
&lt;br /&gt;
==== Método de Runge-Kutta ====&lt;br /&gt;
&lt;br /&gt;
El esquema numérico del método de Runge-Kutta de orden 4 es:&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_0 \\ y_{n+1}=y_n+{h \over 6}*(K1+2*K2+2*K3+K4) \\ K1=f(t_n,y_n) \\ K2=f(t_n+{1 \over 2}*h,y_n+{1 \over 2}*K1*h) \\ K3=f(t_n+{1 \over 2}*h,y_n+{1 \over 2}*K2*h) \\ K4=f(t_n+h,y_n+K3*h) \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
El código MatLab es el siguiente&lt;br /&gt;
[[Archivo:Apartado3a.jpg|400px|miniaturadeimagen|derecha||Gráfica Método de Runge-Kutta de cuarto orden h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos el vector y, que será nuestra solución de la concentración B.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
%Introducimos el valor incial en la primera posición del vector.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
%Definimos la función, para aplicarla a continuación en el Método de &lt;br /&gt;
%Runge-Kutta.&lt;br /&gt;
F=inline('1*y*(1.01-y)','t','y');&lt;br /&gt;
%Recorremos, con un bucle, nuestro vector y, y en él almacenamos los&lt;br /&gt;
%resultados obtenidos con RK4.&lt;br /&gt;
for k=1:length(t)-1&lt;br /&gt;
    %Runge-Kutta de orden 4 (RK4):&lt;br /&gt;
    K1=F(t(k),y(k));&lt;br /&gt;
    K2=F(t(k)+(h/2),y(k)+h*K1/2);&lt;br /&gt;
    K3=F(t(k)+(h/2),y(k)+h*K2/2);&lt;br /&gt;
    K4=F(t(k)+h,y(k)+K3*h);&lt;br /&gt;
    y(k+1)=y(k)+(h/6)*(K1+2*K2+2*K3+K4);&lt;br /&gt;
end&lt;br /&gt;
%De nuevo, por el Principio de Conservación de la Masa, como la suma de las&lt;br /&gt;
%concetraciones será C (cte.), podemos calcular la concentración de A como &lt;br /&gt;
%la diferencia entre C y la concentración de B (el vector y).&lt;br /&gt;
x=1.01-y;&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De nuevo, la solución coincide.&lt;br /&gt;
&lt;br /&gt;
==== Interpretación de las gráficas obtenidas ====&lt;br /&gt;
&lt;br /&gt;
En las gráficas se puede observar que la concentración inicial de la sustancia A es de 1 &amp;lt;math&amp;gt;\frac{mol}{L}&amp;lt;/math&amp;gt; , mientras que la de B es de 0.01 &amp;lt;math&amp;gt; \frac{mol}{L} &amp;lt;/math&amp;gt;. Debido a que B hace efecto catalítico en la reacción, las curvas representativas de las concentraciones, creciente para la sustancia B (la concentración es mayor que la de A con el paso del tiempo) y decreciente para la sustancia A, son exponenciales. Una vez pasados los primeros 6-7 segundos, la velocidad de la reacción disminuye pues queda poca concentración de A para reaccionar y, a los 10 segundos, prácticamente todo la cantidad de sustancia es de B. Continuando con el programa del apartado 2.2.1 podemos calcular las cantidades finales concretas:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Concentraciones transcurridos 10 segundos de la reacción:&lt;br /&gt;
CF_A=x(length(x)); CF_B=y(length(y));&lt;br /&gt;
fprintf('La concentración final de A es de %.4f mol/L,y la de B de %.4f mol/L\n',CF_A,CF_B);&lt;br /&gt;
}}&lt;br /&gt;
Cuyo resultado en pantalla será:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
La concentración final de A es de 0.0039 mol/L,y la de B de 1.0061 mol/L&lt;br /&gt;
}}&lt;br /&gt;
Sin embargo, no podemos concretar exactamente cuándo ambas concentraciones son iguales. Esto es debido a la discretización, pues las gráficas no se pueden pintar como curvas continuas, si no como puntos muy próximos y por tanto, no se puede decir exactamente el valor donde &amp;lt;math&amp;gt; \left [ A \right ] &amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt; \left [ B \right ] &amp;lt;/math&amp;gt; , ya que lo más probable es que en ninguno de los vectores que representan el valor de las concentraciones coincidan. Sin embargo, podemos hacer una estimación del intervalo de tiempo donde ocurra, mirando la gráfica: el tiempo transcurrido será de entre 4.5 y 5 segundos. Para más precisión basta con ver los vectores de las concentraciones, y vemos que deben cortarse pasados entre 4.8 y 4.9 segundos, y la concentración estará entre 0.4999 y 0.5254 .&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
Sustancia B:&lt;br /&gt;
&lt;br /&gt;
Columns 45 through 55&lt;br /&gt;
&lt;br /&gt;
    0.4244    0.4493    0.4745    0.4999    0.5254    0.5508    0.5761    0.6011    0.6257    0.6497    0.6731&lt;br /&gt;
&lt;br /&gt;
Sustancia A:&lt;br /&gt;
&lt;br /&gt;
Columns 45 through 55&lt;br /&gt;
&lt;br /&gt;
    0.5856    0.5607    0.5355    0.5101    0.4846    0.4592    0.4339    0.4089    0.3843    0.3603    0.3369&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Sistema de ecuaciones ===&lt;br /&gt;
Otra forma de plantear la resolución de la reacción bimolecular de autocatálisis anterior es plantear tanto la concentración de A como la de B como las variables de un sistema de ecuaciones diferenciales. Este sistema es:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         y'(t)=k_{1}x(t)y(t) \\&lt;br /&gt;
         x'(t)=-k_{1}x(t)y(t)&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Por otra parte, definimos el problema de valor inicial asociado a este sistema, que es:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         y'(t)=k_{1}x(t)y(t) \\&lt;br /&gt;
         x'(t)=-k_{1}x(t)y(t) \\&lt;br /&gt;
         x(0)=1 \\ &lt;br /&gt;
         y(0)=0.01&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
    \right .&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
siendo &amp;lt;math&amp;gt; k=1\frac{mol}{s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Método de Euler ====&lt;br /&gt;
El método de Euler se basa en la fórmula expuesta en el apartado 2.2.1. En este caso, al ser el sistema de ecuaciones no lineal, no podemos aplicar el método usando la técnica de la matriz explicada en las sesiones de numérico, siendo necesario por lo tanto aplicar el método en cuestión a cada ecuación por separado. El código del programa es el siguiente:&lt;br /&gt;
[[Archivo:Apartado4a.jpg|400px|miniaturadeimagen|derecha||Gráfica por el método de Euler con paso h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; x0=1;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos los vectores x e y, que serán nuestras soluciones de la &lt;br /&gt;
%concentración A y B, respectivamente.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
x=y;&lt;br /&gt;
%Introducimos los valores iniciales de cada concentración en la primera&lt;br /&gt;
%posición de los vectores.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
%Definimos ambas funciones, para aplicarlas a continuación en el Método de&lt;br /&gt;
%Euler.&lt;br /&gt;
F=inline('x*y','t','y','x');&lt;br /&gt;
G=inline('-x*y','t','y','x');&lt;br /&gt;
%Recorremos, con un bucle, los vectores, y en ellos almacenamos los&lt;br /&gt;
%resultados obtenidos con Euler.&lt;br /&gt;
for i=1:length(t)-1   &lt;br /&gt;
    %Euler:&lt;br /&gt;
    y(i+1)=y(i)+h*F(t(i),y(i),x(i));&lt;br /&gt;
    x(i+1)=x(i)+h*G(t(i),y(i),x(i));&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Sin embargo, podemos usar un método alternativo. Podemos crear en primer lugar un archivo .m, en concreto una función, que nos servirá para escribir nuestras ecuaciones de manera más sencilla. El problema lo vamos a abordar, por tanto, vectorialmente. Este método es más cómodo cuando tratamos con sistemas de muchas ecuaciones.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Empezamos creando el archivo sys_Euler_C2.m , donde definimos nuestro&lt;br /&gt;
% sistema:&lt;br /&gt;
function syst = sys_Euler_C2(t,y)&lt;br /&gt;
dy1=y(2)*y(1);&lt;br /&gt;
dy2=-y(2)*y(1);&lt;br /&gt;
syst=[dy1;dy2];&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Apartado4a.jpg|400px|miniaturadeimagen|derecha||Gráfica por el método de Euler con paso h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Y creamos nuestro programa, haciendo una llamada a la función anterior.&lt;br /&gt;
%Definiciones previas.&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; x0=1;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%Creamos el vector donde tendremos nuestras condiciones iniciales.&lt;br /&gt;
yini=[y0;x0];&lt;br /&gt;
%Preasignamos la matriz Y, que será nuestra solución de la &lt;br /&gt;
%concentración A y B, en la primera y segunda fila, respectivamente.&lt;br /&gt;
Y=zeros(2,length(t));&lt;br /&gt;
%Damos las condiciones iniciales a la primera columna.&lt;br /&gt;
Y(:,1)=yini;&lt;br /&gt;
%Recorremos, con un bucle, la matriz (por columnas), y almacenamos los&lt;br /&gt;
%resultados obtenidos con Euler.&lt;br /&gt;
for k=1:length(t)-1   &lt;br /&gt;
     Y(:,k+1)=Y(:,k)+h*sys_Euler_C2(t(k),Y(:,k));&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,Y(1,:),'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(2,:),'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Por supuesto, la gráfica es exactamente la misma.&lt;br /&gt;
&lt;br /&gt;
==== Método de Runge-Kutta ====&lt;br /&gt;
Ahora vamos a aplicar el método de Runge-Kutta de orden 4 a la ecuación expuesta anteriormente. Este método, al ser de orden superior al método de Euler, nos ofrecerá una mayor aproximación a la solución real mediante el cálculo numérico de esta. El código MatLab del programa es el que se muestra a continuación.&lt;br /&gt;
[[Archivo:Apartado4b.jpg|400px|miniaturadeimagen|derecha||Gráfica por el método de Runge-Kutta con paso h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; x0=1;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos los vectores x e y, que serán nuestras soluciones de la &lt;br /&gt;
%concentración A y B, respectivamente.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
x=y;&lt;br /&gt;
%Introducimos los valores inciales de cada concentración en la primera&lt;br /&gt;
%posición de los vectores.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
%Definimos ambas funciones, para aplicarlas a continuación en el Método de&lt;br /&gt;
%Runge-Kutta.&lt;br /&gt;
F=inline('x*y','t','y','x');&lt;br /&gt;
G=inline('-x*y','t','y','x');&lt;br /&gt;
%Recorremos, con un bucle, los vectores, y en ellos almacenamos los&lt;br /&gt;
%resultados obtenidos con RK4.&lt;br /&gt;
for k=1:length(t)-1&lt;br /&gt;
    %Runge-Kutta de orden 4 (RK4):&lt;br /&gt;
    K1_y=F(t(k),y(k),x(k));&lt;br /&gt;
    K1_x=G(t(k),y(k),x(k));&lt;br /&gt;
    K2_y=F(t(k)+(h/2),y(k)+h*K1_y/2,x(k)+h*K1_x/2);&lt;br /&gt;
    K2_x=G(t(k)+(h/2),y(k)+h*K1_y/2,x(k)+h*K1_x/2);&lt;br /&gt;
    K3_y=F(t(k)+(h/2),y(k)+h*K2_y/2,x(k)+h*K2_x/2);&lt;br /&gt;
    K3_x=G(t(k)+(h/2),y(k)+h*K2_y/2,x(k)+h*K2_x/2);&lt;br /&gt;
    K4_y=F(t(k)+h,y(k)+K3_y*h,x(k)+K3_x*h);&lt;br /&gt;
    K4_x=G(t(k)+h,y(k)+K3_y*h,x(k)+K3_x*h);&lt;br /&gt;
    &lt;br /&gt;
    y(k+1)=y(k)+(h/6)*(K1_y+2*K2_y+2*K3_y+K4_y);&lt;br /&gt;
    x(k+1)=x(k)+(h/6)*(K1_x+2*K2_x+2*K3_x+K4_x);&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
Podemos observar como la representación gráfica vuelve a coincidir con los apartados anteriores, ya que se trata del mismo problema resuelto por caminos diferentes.&lt;br /&gt;
&lt;br /&gt;
Un aspecto importante a la hora de aplicar este método a sistemas de ecuaciones diferenciales no lineales es que, al depender K2 de K1, K3 de K2, y K4 de K3, es necerario definir primero las K1 de ambas incógnitas, luego las K2 y así sucesivamente. Si no, a la hora de aplicar el bucle, si definimos primero las Ki de la incógnita x(t) y luego las Kj de la incógnita y(t), los valores de las Kj de y(t) serían los de la anterior iteración del bucle. realizándose por lo tanto un cálculo erróneo.&lt;br /&gt;
&lt;br /&gt;
=== Conclusión ===&lt;br /&gt;
Una vez resuelto el problema de la reacción de autocátálisis &amp;lt;math&amp;gt; A + B \rightarrow _{k1} B &amp;lt;/math&amp;gt;, procedemos a interpretar los resultados.&lt;br /&gt;
&lt;br /&gt;
Tal y como se observó al despejar y(t) para pasar de un sistema de ecuaciones diferenciales a una sola ecuación, la concentración tanto de A como de B se rige por funciones logísticas del tipo:&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{dy}{dt}=ry\left(1 - \frac{y}{K}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro problema, las constantes r y K toman los siguientes valores:&lt;br /&gt;
&amp;lt;math&amp;gt;  r=k_{1} \cdot K= 1.01 &amp;lt;/math&amp;gt; : &amp;lt;math&amp;gt; K=c=1.01 &amp;lt;/math&amp;gt;&lt;br /&gt;
Esta función logística se caracteriza, tanto como para x(t) como para y(t), por tener asíntotas horizontales en 0 y en 1.01. Además la función y(t) es siempre creciente, mientras que la función x(t) es decreciente. También podemos observar una simetría entre ambas funciones, siendo la recta que define el eje de simetría x=0.505, lo que también nos dice que los valores de ambas funciones siempre suman 1.01.&lt;br /&gt;
&lt;br /&gt;
Toda esta información que nos proporciona el gráfico tiene una interpretación química clara. Las asíndotas nos muestran los valores máximos y mínimos que pueden presentar ambas concetraciones. Por otra parte, el crecimiento o decrecimiento de ambas funciones nos muestra como la concentracion de x(t) al principio de la reacción es muy alta, mientras que la de y(t) es mínima. Según transcurre el tiempo, las moléculas de A se van transformando en moléculas de B, por lo que la concentración de y(t) va aumentando a costa de la disminución de x(t). Por último, la simetría se las funciones nos muestra que y(t) se produce al mismo ritmo que disminuye x(t), sumando ambos valores 1.01 en cualquier instante, lo que verifica el principio de la conservación de la masa.&lt;br /&gt;
&lt;br /&gt;
== Segunda reacción ==&lt;br /&gt;
&lt;br /&gt;
=== Interpretación ===&lt;br /&gt;
&lt;br /&gt;
Consideramos la reacción consecutiva propuesta por Lotka en 1920.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A + X \rightarrow _{k1} 2X &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; X+ Y \rightarrow _{k2} 2Y &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; Y \rightarrow _{k3} B &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando A, X, B, e Y en la resolución de las ecuaciones diferenciales como las concentraciones de las diferentes sustancias. Esta reacción consecutiva describe la transformación de A para producir B, estando controladas la velocidad y la mezcla de este proceso por las reacciones autocatalíticas en las que participan X e Y.&lt;br /&gt;
Basándonos de nuevo en el principio de de conservación de la masa, partimos de la ecuación de que la suma de las concentraciones de todas las sustancias ha de ser constante:&lt;br /&gt;
&amp;lt;math&amp;gt; A + x + y + B = cte &amp;lt;/math&amp;gt;&lt;br /&gt;
Derivando esta ecuación deducimos que:&lt;br /&gt;
&amp;lt;math&amp;gt; A' + x' + y' + B' = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
Por otra parte, la ley de acción de masas nos indica que la velocidad de una reacción es proporcional al producto de las concentraciones de los reactivos. De esta forma, podemos obtener el resto de ecuaciones, teniendo en cuenta que tanto la sustancia x como la sustancia y no solo se producen, sino que también se consumen, por lo que habrá que restar a la parte consumida la parte producida.&lt;br /&gt;
&lt;br /&gt;
Todo esto nos da lugar al siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         x' = k1Ax − k2xy \\&lt;br /&gt;
         y' = k2xy − k3y \\&lt;br /&gt;
         B' = k3y \\&lt;br /&gt;
         A' + x' + y' + B' = 0&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Por lo que podemos ver, a modo de mayor aclaración a lo explicado en el párrafo anterior, en la reacción autocatalítica &amp;lt;math&amp;gt; A + X \rightarrow _{k1} 2X &amp;lt;/math&amp;gt; se forma X, ya que es positivo, con una velocidad de reacción k1. De la misma manera observamos que en la reacción &amp;lt;math&amp;gt; X+ Y \rightarrow _{k2} 2Y &amp;lt;/math&amp;gt; X se consume con una velocidad de reacción k2.&lt;br /&gt;
&lt;br /&gt;
La reacción &amp;lt;math&amp;gt; A' + x' + y' + B' = 0 &amp;lt;/math&amp;gt; está en función de las otras, por lo que sustituyendo llegamos a que &amp;lt;math&amp;gt;A'=-k1Ax &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
En conclusión, vamos a resolver el problema de valor inicial tomando k1=k2=2k3=0.1 y las condiciones iniciales propuestas:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        x' = 0.1Ax − 0.1xy \\&lt;br /&gt;
        y' = 0.1xy − 0.05y \\&lt;br /&gt;
        B' = 0.05y \\&lt;br /&gt;
        A'=-0.1Ax \\&lt;br /&gt;
        A(0)=5 \\&lt;br /&gt;
        X(0)=0.0005 \\&lt;br /&gt;
        Y(0)=0.00001 \\&lt;br /&gt;
        B(0)=0 &lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler ===&lt;br /&gt;
Vamos a resolver el problema por el método de Euler:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
       y0,t0\\&lt;br /&gt;
       y_{n+1}=y_n+h*f(t_n,y_n)&lt;br /&gt;
 \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Aplicado a cada uno de nuestras ecuaciones y sustituyendo por los datos del problema, nos quedaría algo así:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        X_{n+1}=X_n+h*[0.1*A_n*X_n-0.1*X_n*Y_n]\\&lt;br /&gt;
        Y_{n+1}=Y_n+h*[0.1*X_n*Y_n-0.05*Y_n]\\&lt;br /&gt;
        B_{n+1}=B_n+h*[0.05*Y_n]\\&lt;br /&gt;
        A_{n+1}=A_n+h*[-0.1*X_n*A_n]&lt;br /&gt;
 \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se muestra el código MatLab de la resolución numérica&lt;br /&gt;
&lt;br /&gt;
[[Archivo:apartado6.1.jpg|400px|miniaturadeimagen|derecha|Gráfica método de Euler h=0.01]] &lt;br /&gt;
[[Archivo:Apartado6.2.jpg|400px|miniaturadeimagen|derecha|Gráfica método de Euler h=0.001]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos del problema de valor inicial&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=200;&lt;br /&gt;
A0=5;&lt;br /&gt;
X0=5*(10^-4);&lt;br /&gt;
Y0=10^(-5);&lt;br /&gt;
B0=0;&lt;br /&gt;
k1=0.1;&lt;br /&gt;
k2=0.1;&lt;br /&gt;
k3=0.05;&lt;br /&gt;
h=input('Introduzca un valor para h:');&lt;br /&gt;
&lt;br /&gt;
%Vector de tiempo&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
&lt;br /&gt;
%Definir el número de intervalos&lt;br /&gt;
N=(tN-t0)/h;&lt;br /&gt;
&lt;br /&gt;
%Vectores vacíos para nuestra solución&lt;br /&gt;
A=zeros(1,N+1);&lt;br /&gt;
X=zeros(1,N+1);&lt;br /&gt;
Y=zeros(1,N+1);&lt;br /&gt;
B=zeros(1,N+1);&lt;br /&gt;
&lt;br /&gt;
%Valores iniciales&lt;br /&gt;
A(1)=A0;&lt;br /&gt;
X(1)=X0;&lt;br /&gt;
Y(1)=Y0;&lt;br /&gt;
B(1)=B0;&lt;br /&gt;
&lt;br /&gt;
%Resolvemos el sistema&lt;br /&gt;
&lt;br /&gt;
for i=1:N&lt;br /&gt;
X(i+1)=X(i)+h.*(k1.*A(i).*X(i)-k2.*X(i).*Y(i));&lt;br /&gt;
Y(i+1)=Y(i)+h.*(k2.*X(i).*Y(i)-k3.*Y(i));&lt;br /&gt;
B(i+1)=B(i)+h.*(k3*Y(i));&lt;br /&gt;
A(i+1)=A(i)+h.*(-k1.*X(i).*A(i));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Gráfica de resultados&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,X)&lt;br /&gt;
plot(t,Y,'g')&lt;br /&gt;
plot(t,B,'r')&lt;br /&gt;
plot(t,A,'y')&lt;br /&gt;
hold off&lt;br /&gt;
legend('Concentración X','Concentración de Y','Concentración de B','Concentración de A','Location','best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Estabilidadtotal.jpg|220px|miniaturadeimagen|izquierda|Comparación gráfica original y la gráfica cambiando las condiciones iniciales con h=0.01]] &lt;br /&gt;
[[Archivo:Detalle estabilidad total.jpg|220px|miniaturadeimagen|derecha|Detalle de la comparación anterior con h=0.01]] &lt;br /&gt;
[[Archivo:Estabilidadtotal2.jpg|220px|miniaturadeimagen|izquierda|Comparación gráfica original y la gráfica cambiando las condiciones iniciales con h=0.001]] &lt;br /&gt;
[[Archivo:Detalleestabilidadtotal2.jpg|220px|miniaturadeimagen|derecha|Detalle de la comparación anterior con h=0.001]] &lt;br /&gt;
&lt;br /&gt;
Un PVI es estable si pequeñas perturbaciones de la función o de las condiciones iniciales afectan poco a la solución y además el error no aumenta a medida que avanza el tiempo. Para ver la estabilidad vamos a modificar un diferencial las concentraciones para ver si variarían de forma brusca o no, y así ver si realmente este método es estable. Para ello haremos un programa exactamente igual que el anterior, por lo que no lo vamos a adjuntar, en el que superpondremos la gráfica anterior y la nueva gráfica con las nuevas condiciones iniciales. Las condiciones que vamos a coger son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        x' = 0.1Ax − 0.1xy \\&lt;br /&gt;
        y' = 0.1xy − 0.05y \\&lt;br /&gt;
        B' = 0.05y \\&lt;br /&gt;
        A'=-0.1Ax \\&lt;br /&gt;
        A(0)=5.00001 \\&lt;br /&gt;
        X(0)=0.000501 \\&lt;br /&gt;
        Y(0)=0.000011 \\&lt;br /&gt;
        B(0)=0.000001 &lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Las gráficas prácticamente se superponen, para observar el error que se produce a lo largo del tiempo hay que realizar un zoom bastante grande. Al darse todo esto podemos afirmar con bastante seguridad que el método es estable.&lt;br /&gt;
&lt;br /&gt;
===Método de Heun===&lt;br /&gt;
El método de Heun es un método explícito. Para poder obtenerlo debemos primeramente definir una serie de constantes. Su definición matemática sería la siguiente:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        y_{0},t_{0}\\&lt;br /&gt;
        y_{n+1}=y_{n}+0.5h*(K1+K2)\\&lt;br /&gt;
        K1=f(t_{n},y_{n})\\&lt;br /&gt;
        K2=f(t_{n}+h,y_{n}+K1*h)&lt;br /&gt;
       \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Aplicamos el método para cada una de nuestras ecuaciones obteniendo el siguiente programa&lt;br /&gt;
[[Archivo:apartado7C2.jpg|400px|miniaturadeimagen|derecha|Gráfica método de Heun]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos del problema de valor inicial&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=200;&lt;br /&gt;
A0=5;&lt;br /&gt;
X0=5*(10^-4);&lt;br /&gt;
Y0=10^(-5);&lt;br /&gt;
B0=0;&lt;br /&gt;
k1=0.1;&lt;br /&gt;
k2=0.1;&lt;br /&gt;
k3=0.05;&lt;br /&gt;
h=0.01;&lt;br /&gt;
&lt;br /&gt;
%Vector de tiempo&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
&lt;br /&gt;
%Definir el número de intervalos&lt;br /&gt;
N=(tN-t0)/h;&lt;br /&gt;
&lt;br /&gt;
%Vectores vacíos para nuestra solución&lt;br /&gt;
A=zeros(1,N+1);&lt;br /&gt;
X=zeros(1,N+1);&lt;br /&gt;
Y=zeros(1,N+1);&lt;br /&gt;
B=zeros(1,N+1);&lt;br /&gt;
&lt;br /&gt;
%Valores iniciales&lt;br /&gt;
A(1)=A0;&lt;br /&gt;
X(1)=X0;&lt;br /&gt;
Y(1)=Y0;&lt;br /&gt;
B(1)=B0;&lt;br /&gt;
&lt;br /&gt;
%Definimos las constantes&lt;br /&gt;
for i=1:N&lt;br /&gt;
K1X=k1.*A(i).*X(i)-k2.*X(i).*Y(i);&lt;br /&gt;
K1Y=k2.*X(i).*Y(i)-k3.*Y(i);&lt;br /&gt;
K1B=k3.*Y(i);&lt;br /&gt;
K1A=-k1.*X(i).*A(i);&lt;br /&gt;
K2X=k1.*(A(i)+K1X.*h).*(X(i)+K1X.*h)-k2.*(X(i)+K1X.*h).*(Y(i)+K1X.*h);&lt;br /&gt;
K2Y=k2.*(X(i)+K1Y.*h).*(Y(i)+K1Y.*h)-k3.*(Y(i)+K1Y.*h);&lt;br /&gt;
K2B=k3.*(Y(i)+K1B.*h);&lt;br /&gt;
K2A=-k1.*(X(i)+K1A.*h).*(A(i)+K1A.*h);&lt;br /&gt;
%Aplicamos el método&lt;br /&gt;
X(i+1)=X(i)+0.5*h.*(K1X+K2X);&lt;br /&gt;
Y(i+1)=Y(i)+0.5*h.*(K1Y+K2Y);&lt;br /&gt;
B(i+1)=B(i)+0.5*h.*(K1B+K2B);&lt;br /&gt;
A(i+1)=A(i)+0.5*h.*(K1A+K2A);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Gráficas&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,X);&lt;br /&gt;
plot(t,Y,'g');&lt;br /&gt;
plot(t,B,'r');&lt;br /&gt;
plot(t,A,'y');&lt;br /&gt;
hold off&lt;br /&gt;
legend('Concentración X','Concentración de Y','Concentración de B','Concentración de A','Location','best');&lt;br /&gt;
}}&lt;br /&gt;
Vemos que la gráfica es semejante a la obtenida por el método de Euler, en este caso utilizando sólo un valor para el tamaño de paso. &lt;br /&gt;
&lt;br /&gt;
Es importante definir las constantes del bucle en el orden que se expresó para el método de Runge-Kutta, ya que si no nos daría un error, por lo explicado también en ese subapartado. También es importante definir estas constantes antes de aplicar el método en sí.&lt;br /&gt;
&lt;br /&gt;
=== Conclusión ===&lt;br /&gt;
&lt;br /&gt;
Habiendo terminado el estudio de la reacción consecutiva propuesta por Lokta interpretamos las gráficas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A + X \rightarrow _{k1} 2X &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; X+ Y \rightarrow _{k2} 2Y &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; Y \rightarrow _{k3} B &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La reacción consecutiva comienza con una concentración de A de &amp;lt;math&amp;gt; 5 \frac{mol}{L} &amp;lt;/math&amp;gt;, una concentración de X de &amp;lt;math&amp;gt; 5*10^{-4} \frac{mol}{L} &amp;lt;/math&amp;gt; y una concentración de Y de &amp;lt;math&amp;gt; 10^{-5} \frac{mol}{L} &amp;lt;/math&amp;gt;, siendo la concentración de B al final del proceso igual a la suma de las concentraciones iniciales de todas ellas, cumpliéndose de esta forma la ley de conservación de masas. Observamos que la reacción autocatalítica, a medida que transcurre el tiempo consume A para producir X a gran velocidad, que lo vemos en que la pendiente de la curva correspondiente a A es siempre negativa, por lo tanto está decreciendo. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observamos, como era de esperar, que el compuesto Y aparece en cantidad apreciable cuando hemos conseguido la suficiente cantidad de X como para que comienza la siguiente reacción autocatalítica. Tanto en la gráfica de X como en la de Y presentan un cambio de pendiente marcado por un máximo, siendo a partir este punto mayor el consumo que la producción de ambas sustancias.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, vemos la aparición de B en la gráfica, poco después de Y, ya que es necesario tener una cierta cantidad de Y para comenzar a producir B de manera apreciable. Podemos ver que la pendiente de la curva de B siempre es positiva, por lo tanto siempre crece.&lt;br /&gt;
&lt;br /&gt;
Es importante darse cuenta de que la suma de las concentraciones de los compuestos para cualquier instante de tiempo es igual a &amp;lt;math&amp;gt; 5.00051 \frac{mol}{L} &amp;lt;/math&amp;gt;, debido a la ley de conservación de masas.&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Reacciones_con_autocat%C3%A1lisis._Grupo_C2&amp;diff=27148</id>
		<title>Reacciones con autocatálisis. Grupo C2</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Reacciones_con_autocat%C3%A1lisis._Grupo_C2&amp;diff=27148"/>
				<updated>2015-03-05T22:49:52Z</updated>
		
		<summary type="html">&lt;p&gt;Javier Parras: /* Método de Heun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Reacciones con autocatálisis. Grupo C2 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Ana Martínez Lorente, Natalia Opie Dávila, Javier Parras Martínez, Alfredo Pazos Arjona, Antonio Perez Mata, Javier Siguero Ginés }}&lt;br /&gt;
[[Categoría:Ecuaciones Diferenciales]]&lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;br /&gt;
== Introducción ==&lt;br /&gt;
Se considera una reacción química irreversible en una solución bien mezclada. Supondremos que la reacción ocurre para un volumen y temperatura constantes. Al inicio se encuentran dos reactivos A y B que van formando un producto C en lo que se conoce como una reacción bimolecular, es decir, una molécula de A y una de B producen una de C,:&lt;br /&gt;
&amp;lt;math&amp;gt; A + B \rightarrow C &amp;lt;/math&amp;gt;&lt;br /&gt;
Supondremos también que se satisface la ley de acción de masas, que establece que la velocidad de&lt;br /&gt;
reacción es proporcional al producto de las concentraciones de los reactivos.&lt;br /&gt;
En este ejercicio analizaremos el caso particular en el que A se transforma en B pero suponiendo&lt;br /&gt;
que la presencia de B hace de efecto catalítico en la reacción. Escribiremos este proceso como una reacción bimolecular:&lt;br /&gt;
&amp;lt;math&amp;gt; A + B \rightarrow _{k1} 2B &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Primera reacción ==&lt;br /&gt;
=== Interpretación ===&lt;br /&gt;
Tomamos x e y como las concentraciones de los reactivos que intervienen en la reacción y consideramos la reacción que describe la transformación de A y B para producir 2B a una velocidad k1. Basándonos en el principio de conservación de la masa (suma de concentraciones es siempre constante), partimos del la siguiente ecuación:&lt;br /&gt;
&amp;lt;math&amp;gt; x(t) + y(t) = cte &amp;lt;/math&amp;gt;&lt;br /&gt;
y derivando la ecuación con respecto al tiempo obtenemos:&lt;br /&gt;
&amp;lt;math&amp;gt;  x'(t) + y'(t) = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
Por otro lado, usando la ley de acción de masas, que establece que la velocidad de reacción es proporcional al producto de las concentraciones de los reactivos, en este caso el factor de proporcionalidad es k1.&lt;br /&gt;
&amp;lt;math&amp;gt; y'(t) = k_{1}*x(t)*y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
De la primera igualdad obtenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt; x(t) = cte - y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
y sustituyendo en la ecuación de la ley de acción de masas resulta:&lt;br /&gt;
&amp;lt;math&amp;gt; y'(t) = k_{1}*(cte - y(t))*y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
Teniendo en cuenta las condiciones iniciales que se proporcionan en el enunciado, definimos el siguiente problema de valor inicial:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         y'(t) = k_{1}*(cte - y(t))*y(t) \\&lt;br /&gt;
         y(0)=0.01&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Teorema de existencia y unicidad ====&lt;br /&gt;
&lt;br /&gt;
Para decidir si este problema de valor inicial tiene solución, hacemos uso del teorema de existencia y unicidad visto en las clases de teoría. Este teorema, también conocido con el nombre de Picard-Lindelöf, se puede enunciar como:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Sea &amp;lt;math&amp;gt;f(t, x):\Omega\subseteq\mathbb{R}\times\mathbb{R}^n\longrightarrow\mathbb{R}^n&amp;lt;/math&amp;gt;, donde &amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; es abierto, una función continua y localmente Lipschitz respecto de &amp;lt;math&amp;gt;\mathit{x}&amp;lt;/math&amp;gt; (interprétese &amp;lt;math&amp;gt;f(t, x)&amp;lt;/math&amp;gt; como la forma estándar de una EDO n-dimensional de primer orden). Entonces, dado &amp;lt;math&amp;gt;(t_{0}, x_{0}) \in \Omega&amp;lt;/math&amp;gt;, podemos encontrar un intervalo cerrado &amp;lt;math&amp;gt;I_{\alpha}=[t_{0}-\alpha, t_{0}+\alpha]\subset \mathbb{R}, \alpha \in \mathbb{R}&amp;lt;/math&amp;gt; donde existe solución única del siguiente problema de Cauchy:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y'=f(t, y) \\ y(t_{0})=y_{0}\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
que cumple que los pares &amp;lt;math&amp;gt;(t, x(t)) \in \Omega, \forall t \in I_{\alpha}.&amp;lt;/math&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Este enunciado, puede expresarse de manera más sencilla, diciendo que existe solución para el problema de valor inicial si existe un &amp;lt;math&amp;gt; r &amp;lt;/math&amp;gt; tal que &amp;lt;math&amp;gt; f(t,y) &amp;lt;/math&amp;gt; sea continua en &amp;lt;math&amp;gt; D \cap B((t_{0},y_{0}),r) &amp;lt;/math&amp;gt; (es decir, encontrar una bola alrededor del punto &amp;lt;math&amp;gt; (t_{0},y_{0}) &amp;lt;/math&amp;gt; de radio &amp;lt;math&amp;gt; r &amp;lt;/math&amp;gt; en la que la función sea continua.&lt;br /&gt;
Esta solución será además única cuando también se cumpla que &amp;lt;math&amp;gt; \displaystyle{ \delta f \over \delta y} &amp;lt;/math&amp;gt; sea también contínua en &amp;lt;math&amp;gt; D \cap B((t_{0},y_{0}),r) &amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Para nuestro caso, tenemos que:&lt;br /&gt;
&amp;lt;math&amp;gt; f(t,y(t))=f= k_{1}*(cte - y(t))*y(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
Y:&lt;br /&gt;
&amp;lt;math&amp;gt; \displaystyle{ \delta f \over \delta y} = k_{1}(cte - 2y) &amp;lt;/math&amp;gt;&lt;br /&gt;
Ambas funciones son polinómicas, por lo que no dan problemas en cuanto a su continuidad (ni en nuestro punto a tratar ni en ningún otro). '''Podemos concluir, por lo tanto, que existe solución y que esta es única.'''&lt;br /&gt;
&lt;br /&gt;
=== Ecuación diferencial ===&lt;br /&gt;
&lt;br /&gt;
''&amp;quot;Suponiendo que las concentraciones iniciales de A y B son 1'' &amp;lt;math&amp;gt;\frac{mol}{L}&amp;lt;/math&amp;gt; ''y 0.01'' &amp;lt;math&amp;gt;\frac{mol}{L}&amp;lt;/math&amp;gt; ''respectivamente, resolver el PVI elegiendo un paso de h=0.01 en los primeros 10 segundos.&amp;quot;'' &lt;br /&gt;
&lt;br /&gt;
Como ya hemos visto anteriormente, el problema de valor inicial tiene solución única. Vamos a usar algunos de los métodos numéricos conocidos, y así encontrar la solución a nuestro problema. Estos métodos serán el de Euler, el del Trapecio y el de Runge Kutta de cuarto orden. Posteriormente daremos una interpretación a las gráficas obtenidas en el apartado 2.2.4 .&lt;br /&gt;
&lt;br /&gt;
==== Método de Euler ====&lt;br /&gt;
&lt;br /&gt;
El esquema numérico del método es:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_n\\ y_{n+1}=y_n+h*f(t_n,y_n)\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Aplicado a nuestra ecuación y sustituyendo por los datos del problema, tendríamos que:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_n\\ y_{n+1}=y_n+h*[y_n*(1.01-y_n)]\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Y resolvemos&lt;br /&gt;
[[Archivo:Apartado2.1.jpg|400px|miniaturadeimagen|derecha||Gráfica Método de Euler h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos el vector y, que será nuestra solución de la concentración B.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
%Introducimos el valor incial en la primera posición del vector.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
%Definimos la función, para aplicarla a continuación en el Método de Euler.&lt;br /&gt;
F=inline('y*(1.01-y)','t','y');&lt;br /&gt;
%Recorremos, con un bucle, nuestro vector y, y en él almacenamos los&lt;br /&gt;
%resultados obtenidos con Euler.&lt;br /&gt;
for i=1:length(t)-1   &lt;br /&gt;
    y(i+1)=y(i)+h*F(t(i),y(i)); %Euler.&lt;br /&gt;
end&lt;br /&gt;
%De nuevo, por el Principio de Conservación de la Masa, como la suma de las&lt;br /&gt;
%concetraciones será C (cte.), podemos calcular la concentración de A como &lt;br /&gt;
%la diferencia entre C y la concentración de B (el vector y).&lt;br /&gt;
x=1.01-y;&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Método del Trapecio ====&lt;br /&gt;
&lt;br /&gt;
El esquema numérico del método es:&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_n \\ y_{n+1}=y_n+{h \over 2}*[f(t_n,y_n)+f(t_{n+1},y_{n+1})]\end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Como podemos observar, se trata de un método implícito. Esto quiere decir que nuestra incógnita depende de una función en la que también. Para solucionarlo, despejaremos la incógnita (&amp;lt;math&amp;gt; y_{n+1} &amp;lt;/math&amp;gt; ) en función del resto de variables y después aplicaremos el método numérico:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{c}y_{n+1}=y_n+{h \over 2}*[y_n*(C-y_n)+y_{n+1}*(C-y_{n+1})]\\y_{n+1}=y_n+{h \over 2}*y_n*(C-y_n)+{h \over 2}*y_{n+1}*(C-y_{n+1})\\y_{n+1}-{h \over 2}*y_{n+1}*(C-y_{n+1})=y_n*[1+{h \over 2}*(C-y_n)]\\{h \over 2}*(y_{n+1})^2+y_{n+1}*(1-{C*h \over 2}+[-y_n*[1+{h \over 2}*(C-y_n)]])=0\\y_{n+1}={-(1-{C*h \over 2})+\sqrt{(1-{C*h \over 2})^2-4*{h \over 2}*[-y_n*[1+{h \over 2}*(C-y_n)]]} \over 2*{h \over 2}}\\y_{n+1}={-1+{C*h \over 2}+\sqrt{(1-{C*h \over 2})^2-2*h*[-y_n*[1+{h \over 2}*(C-y_n)]]} \over h}\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código MatLab es el siguiente&lt;br /&gt;
[[Archivo:Apartado3b.jpg|400px|miniaturadeimagen|derecha||Gráfica Método del Trapecio h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 0.1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; c=1.01;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos el vector y, que será nuestra solución de la concentración B.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
%Introducimos el valor incial en la primera posición del vector.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
%Recorremos, con un bucle, nuestro vector y, y en él almacenamos los&lt;br /&gt;
%resultados obtenidos con el Método del Trapecio.&lt;br /&gt;
for i=1:length(t)-1   &lt;br /&gt;
    %Trapecio:&lt;br /&gt;
    y(i+1)=(1/(h*k))*((0.5*h*k*c-1)+sqrt((1-0.5*h*k*c)^2-2*h*k*(-y(i)-(h/2)*y(i)*(c-y(i)))));&lt;br /&gt;
end&lt;br /&gt;
%De nuevo, por el Principio de Conservación de la Masa, como la suma de las&lt;br /&gt;
%concetraciones será C (cte.), podemos calcular la concentración de A como &lt;br /&gt;
%la diferencia entre C y la concentración de B (el vector y).&lt;br /&gt;
x=1.01-y;&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se observa que la solución obtenida es la misma que por el método de Euler.&lt;br /&gt;
&lt;br /&gt;
==== Método de Runge-Kutta ====&lt;br /&gt;
&lt;br /&gt;
El esquema numérico del método de Runge-Kutta de orden 4 es:&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;0&amp;quot;&lt;br /&gt;
|&amp;lt;math&amp;gt;\begin{cases}y_0 \\ y_{n+1}=y_n+{h \over 6}*(K1+2*K2+2*K3+K4) \\ K1=f(t_n,y_n) \\ K2=f(t_n+{1 \over 2}*h,y_n+{1 \over 2}*K1*h) \\ K3=f(t_n+{1 \over 2}*h,y_n+{1 \over 2}*K2*h) \\ K4=f(t_n+h,y_n+K3*h) \end{cases}&amp;lt;/math&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
El código MatLab es el siguiente&lt;br /&gt;
[[Archivo:Apartado3a.jpg|400px|miniaturadeimagen|derecha||Gráfica Método de Runge-Kutta de cuarto orden h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos el vector y, que será nuestra solución de la concentración B.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
%Introducimos el valor incial en la primera posición del vector.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
%Definimos la función, para aplicarla a continuación en el Método de &lt;br /&gt;
%Runge-Kutta.&lt;br /&gt;
F=inline('1*y*(1.01-y)','t','y');&lt;br /&gt;
%Recorremos, con un bucle, nuestro vector y, y en él almacenamos los&lt;br /&gt;
%resultados obtenidos con RK4.&lt;br /&gt;
for k=1:length(t)-1&lt;br /&gt;
    %Runge-Kutta de orden 4 (RK4):&lt;br /&gt;
    K1=F(t(k),y(k));&lt;br /&gt;
    K2=F(t(k)+(h/2),y(k)+h*K1/2);&lt;br /&gt;
    K3=F(t(k)+(h/2),y(k)+h*K2/2);&lt;br /&gt;
    K4=F(t(k)+h,y(k)+K3*h);&lt;br /&gt;
    y(k+1)=y(k)+(h/6)*(K1+2*K2+2*K3+K4);&lt;br /&gt;
end&lt;br /&gt;
%De nuevo, por el Principio de Conservación de la Masa, como la suma de las&lt;br /&gt;
%concetraciones será C (cte.), podemos calcular la concentración de A como &lt;br /&gt;
%la diferencia entre C y la concentración de B (el vector y).&lt;br /&gt;
x=1.01-y;&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De nuevo, la solución coincide.&lt;br /&gt;
&lt;br /&gt;
==== Interpretación de las gráficas obtenidas ====&lt;br /&gt;
&lt;br /&gt;
En las gráficas se puede observar que la concentración inicial de la sustancia A es de 1 &amp;lt;math&amp;gt;\frac{mol}{L}&amp;lt;/math&amp;gt; , mientras que la de B es de 0.01 &amp;lt;math&amp;gt; \frac{mol}{L} &amp;lt;/math&amp;gt;. Debido a que B hace efecto catalítico en la reacción, las curvas representativas de las concentraciones, creciente para la sustancia B (la concentración es mayor que la de A con el paso del tiempo) y decreciente para la sustancia A, son exponenciales. Una vez pasados los primeros 6-7 segundos, la velocidad de la reacción disminuye pues queda poca concentración de A para reaccionar y, a los 10 segundos, prácticamente todo la cantidad de sustancia es de B. Continuando con el programa del apartado 2.2.1 podemos calcular las cantidades finales concretas:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Concentraciones transcurridos 10 segundos de la reacción:&lt;br /&gt;
CF_A=x(length(x)); CF_B=y(length(y));&lt;br /&gt;
fprintf('La concentración final de A es de %.4f mol/L,y la de B de %.4f mol/L\n',CF_A,CF_B);&lt;br /&gt;
}}&lt;br /&gt;
Cuyo resultado en pantalla será:&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
La concentración final de A es de 0.0039 mol/L,y la de B de 1.0061 mol/L&lt;br /&gt;
}}&lt;br /&gt;
Sin embargo, no podemos concretar exactamente cuándo ambas concentraciones son iguales. Esto es debido a la discretización, pues las gráficas no se pueden pintar como curvas continuas, si no como puntos muy próximos y por tanto, no se puede decir exactamente el valor donde &amp;lt;math&amp;gt; \left [ A \right ] &amp;lt;/math&amp;gt; = &amp;lt;math&amp;gt; \left [ B \right ] &amp;lt;/math&amp;gt; , ya que lo más probable es que en ninguno de los vectores que representan el valor de las concentraciones coincidan. Sin embargo, podemos hacer una estimación del intervalo de tiempo donde ocurra, mirando la gráfica: el tiempo transcurrido será de entre 4.5 y 5 segundos. Para más precisión basta con ver los vectores de las concentraciones, y vemos que deben cortarse pasados entre 4.8 y 4.9 segundos, y la concentración estará entre 0.4999 y 0.5254 .&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
Sustancia B:&lt;br /&gt;
&lt;br /&gt;
Columns 45 through 55&lt;br /&gt;
&lt;br /&gt;
    0.4244    0.4493    0.4745    0.4999    0.5254    0.5508    0.5761    0.6011    0.6257    0.6497    0.6731&lt;br /&gt;
&lt;br /&gt;
Sustancia A:&lt;br /&gt;
&lt;br /&gt;
Columns 45 through 55&lt;br /&gt;
&lt;br /&gt;
    0.5856    0.5607    0.5355    0.5101    0.4846    0.4592    0.4339    0.4089    0.3843    0.3603    0.3369&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Sistema de ecuaciones ===&lt;br /&gt;
Otra forma de plantear la resolución de la reacción bimolecular de autocatálisis anterior es plantear tanto la concentración de A como la de B como las variables de un sistema de ecuaciones diferenciales. Este sistema es:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         y'(t)=k_{1}x(t)y(t) \\&lt;br /&gt;
         x'(t)=-k_{1}x(t)y(t)&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Por otra parte, definimos el problema de valor inicial asociado a este sistema, que es:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         y'(t)=k_{1}x(t)y(t) \\&lt;br /&gt;
         x'(t)=-k_{1}x(t)y(t) \\&lt;br /&gt;
         x(0)=1 \\ &lt;br /&gt;
         y(0)=0.01&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
    \right .&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
siendo &amp;lt;math&amp;gt; k=1\frac{mol}{s} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Método de Euler ====&lt;br /&gt;
El método de Euler se basa en la fórmula expuesta en el apartado 2.2.1. En este caso, al ser el sistema de ecuaciones no lineal, no podemos aplicar el método usando la técnica de la matriz explicada en las sesiones de numérico, siendo necesario por lo tanto aplicar el método en cuestión a cada ecuación por separado. El código del programa es el siguiente:&lt;br /&gt;
[[Archivo:Apartado4a.jpg|400px|miniaturadeimagen|derecha||Gráfica por el método de Euler con paso h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; x0=1;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos los vectores x e y, que serán nuestras soluciones de la &lt;br /&gt;
%concentración A y B, respectivamente.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
x=y;&lt;br /&gt;
%Introducimos los valores iniciales de cada concentración en la primera&lt;br /&gt;
%posición de los vectores.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
%Definimos ambas funciones, para aplicarlas a continuación en el Método de&lt;br /&gt;
%Euler.&lt;br /&gt;
F=inline('x*y','t','y','x');&lt;br /&gt;
G=inline('-x*y','t','y','x');&lt;br /&gt;
%Recorremos, con un bucle, los vectores, y en ellos almacenamos los&lt;br /&gt;
%resultados obtenidos con Euler.&lt;br /&gt;
for i=1:length(t)-1   &lt;br /&gt;
    %Euler:&lt;br /&gt;
    y(i+1)=y(i)+h*F(t(i),y(i),x(i));&lt;br /&gt;
    x(i+1)=x(i)+h*G(t(i),y(i),x(i));&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Sin embargo, podemos usar un método alternativo. Podemos crear en primer lugar un archivo .m, en concreto una función, que nos servirá para escribir nuestras ecuaciones de manera más sencilla. El problema lo vamos a abordar, por tanto, vectorialmente. Este método es más cómodo cuando tratamos con sistemas de muchas ecuaciones.&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% Empezamos creando el archivo sys_Euler_C2.m , donde definimos nuestro&lt;br /&gt;
% sistema:&lt;br /&gt;
function syst = sys_Euler_C2(t,y)&lt;br /&gt;
dy1=y(2)*y(1);&lt;br /&gt;
dy2=-y(2)*y(1);&lt;br /&gt;
syst=[dy1;dy2];&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
[[Archivo:Apartado4a.jpg|400px|miniaturadeimagen|derecha||Gráfica por el método de Euler con paso h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Y creamos nuestro programa, haciendo una llamada a la función anterior.&lt;br /&gt;
%Definiciones previas.&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; x0=1;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%Creamos el vector donde tendremos nuestras condiciones iniciales.&lt;br /&gt;
yini=[y0;x0];&lt;br /&gt;
%Preasignamos la matriz Y, que será nuestra solución de la &lt;br /&gt;
%concentración A y B, en la primera y segunda fila, respectivamente.&lt;br /&gt;
Y=zeros(2,length(t));&lt;br /&gt;
%Damos las condiciones iniciales a la primera columna.&lt;br /&gt;
Y(:,1)=yini;&lt;br /&gt;
%Recorremos, con un bucle, la matriz (por columnas), y almacenamos los&lt;br /&gt;
%resultados obtenidos con Euler.&lt;br /&gt;
for k=1:length(t)-1   &lt;br /&gt;
     Y(:,k+1)=Y(:,k)+h*sys_Euler_C2(t(k),Y(:,k));&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,Y(1,:),'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,Y(2,:),'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Por supuesto, la gráfica es exactamente la misma.&lt;br /&gt;
&lt;br /&gt;
==== Método de Runge-Kutta ====&lt;br /&gt;
Ahora vamos a aplicar el método de Runge-Kutta de orden 4 a la ecuación expuesta anteriormente. Este método, al ser de orden superior al método de Euler, nos ofrecerá una mayor aproximación a la solución real mediante el cálculo numérico de esta. El código MatLab del programa es el que se muestra a continuación.&lt;br /&gt;
[[Archivo:Apartado4b.jpg|400px|miniaturadeimagen|derecha||Gráfica por el método de Runge-Kutta con paso h=0.1]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos:&lt;br /&gt;
&lt;br /&gt;
%Concentración A: 1mol/L,&lt;br /&gt;
%Concentración B: 0.01mol/L,&lt;br /&gt;
%k=1mol/s, h=0.1, t=[0,10] (s)&lt;br /&gt;
&lt;br /&gt;
%-----------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
k=1;&lt;br /&gt;
t0=0; tN=10;&lt;br /&gt;
h=0.1; y0=0.01; x0=1;&lt;br /&gt;
%Definimos el vector del tiempo, con un paso de 0.1.&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
%La constante C, del P.V.I., es la suma de las concentraciones (Principio&lt;br /&gt;
%de Conservación de la Masa).&lt;br /&gt;
% C=0.1+y0; ----&amp;gt; C=1.01;&lt;br /&gt;
%Preasignamos los vectores x e y, que serán nuestras soluciones de la &lt;br /&gt;
%concentración A y B, respectivamente.&lt;br /&gt;
y=zeros(1,length(t));&lt;br /&gt;
x=y;&lt;br /&gt;
%Introducimos los valores inciales de cada concentración en la primera&lt;br /&gt;
%posición de los vectores.&lt;br /&gt;
y(1)=y0;&lt;br /&gt;
x(1)=x0;&lt;br /&gt;
%Definimos ambas funciones, para aplicarlas a continuación en el Método de&lt;br /&gt;
%Runge-Kutta.&lt;br /&gt;
F=inline('x*y','t','y','x');&lt;br /&gt;
G=inline('-x*y','t','y','x');&lt;br /&gt;
%Recorremos, con un bucle, los vectores, y en ellos almacenamos los&lt;br /&gt;
%resultados obtenidos con RK4.&lt;br /&gt;
for k=1:length(t)-1&lt;br /&gt;
    %Runge-Kutta de orden 4 (RK4):&lt;br /&gt;
    K1_y=F(t(k),y(k),x(k));&lt;br /&gt;
    K1_x=G(t(k),y(k),x(k));&lt;br /&gt;
    K2_y=F(t(k)+(h/2),y(k)+h*K1_y/2,x(k)+h*K1_x/2);&lt;br /&gt;
    K2_x=G(t(k)+(h/2),y(k)+h*K1_y/2,x(k)+h*K1_x/2);&lt;br /&gt;
    K3_y=F(t(k)+(h/2),y(k)+h*K2_y/2,x(k)+h*K2_x/2);&lt;br /&gt;
    K3_x=G(t(k)+(h/2),y(k)+h*K2_y/2,x(k)+h*K2_x/2);&lt;br /&gt;
    K4_y=F(t(k)+h,y(k)+K3_y*h,x(k)+K3_x*h);&lt;br /&gt;
    K4_x=G(t(k)+h,y(k)+K3_y*h,x(k)+K3_x*h);&lt;br /&gt;
    &lt;br /&gt;
    y(k+1)=y(k)+(h/6)*(K1_y+2*K2_y+2*K3_y+K4_y);&lt;br /&gt;
    x(k+1)=x(k)+(h/6)*(K1_x+2*K2_x+2*K3_x+K4_x);&lt;br /&gt;
end&lt;br /&gt;
%Dibujamos ambas gráficas.&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
hold off&lt;br /&gt;
title('Gráfica Concentración-Tiempo');&lt;br /&gt;
xlabel('tiempo (segundos)');&lt;br /&gt;
ylabel('concentración (mol/L)');&lt;br /&gt;
legend('Concentración de B','Concentración de A','Location','Best');&lt;br /&gt;
}}&lt;br /&gt;
Podemos observar como la representación gráfica vuelve a coincidir con los apartados anteriores, ya que se trata del mismo problema resuelto por caminos diferentes.&lt;br /&gt;
&lt;br /&gt;
Un aspecto importante a la hora de aplicar este método a sistemas de ecuaciones diferenciales no lineales es que, al depender K2 de K1, K3 de K2, y K4 de K3, es necerario definir primero las K1 de ambas incógnitas, luego las K2 y así sucesivamente. Si no, a la hora de aplicar el bucle, si definimos primero las Ki de la incógnita x(t) y luego las Kj de la incógnita y(t), los valores de las Kj de y(t) serían los de la anterior iteración del bucle. realizándose por lo tanto un cálculo erróneo.&lt;br /&gt;
&lt;br /&gt;
=== Conclusión ===&lt;br /&gt;
Una vez resuelto el problema de la reacción de autocátálisis &amp;lt;math&amp;gt; A + B \rightarrow _{k1} B &amp;lt;/math&amp;gt;, procedemos a interpretar los resultados.&lt;br /&gt;
&lt;br /&gt;
Tal y como se observó al despejar y(t) para pasar de un sistema de ecuaciones diferenciales a una sola ecuación, la concentración tanto de A como de B se rige por funciones logísticas del tipo:&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{dy}{dt}=ry\left(1 - \frac{y}{K}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
En nuestro problema, las constantes r y K toman los siguientes valores:&lt;br /&gt;
&amp;lt;math&amp;gt;  r=k_{1} \cdot K= 1.01 &amp;lt;/math&amp;gt; : &amp;lt;math&amp;gt; K=c=1.01 &amp;lt;/math&amp;gt;&lt;br /&gt;
Esta función logística se caracteriza, tanto como para x(t) como para y(t), por tener asíntotas horizontales en 0 y en 1.01. Además la función y(t) es siempre creciente, mientras que la función x(t) es decreciente. También podemos observar una simetría entre ambas funciones, siendo la recta que define el eje de simetría x=0.505, lo que también nos dice que los valores de ambas funciones siempre suman 1.01.&lt;br /&gt;
&lt;br /&gt;
Toda esta información que nos proporciona el gráfico tiene una interpretación química clara. Las asíndotas nos muestran los valores máximos y mínimos que pueden presentar ambas concetraciones. Por otra parte, el crecimiento o decrecimiento de ambas funciones nos muestra como la concentracion de x(t) al principio de la reacción es muy alta, mientras que la de y(t) es mínima. Según transcurre el tiempo, las moléculas de A se van transformando en moléculas de B, por lo que la concentración de y(t) va aumentando a costa de la disminución de x(t). Por último, la simetría se las funciones nos muestra que y(t) se produce al mismo ritmo que disminuye x(t), sumando ambos valores 1.01 en cualquier instante, lo que verifica el principio de la conservación de la masa.&lt;br /&gt;
&lt;br /&gt;
== Segunda reacción ==&lt;br /&gt;
&lt;br /&gt;
=== Interpretación ===&lt;br /&gt;
&lt;br /&gt;
Consideramos la reacción consecutiva propuesta por Lotka en 1920.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A + X \rightarrow _{k1} 2X &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; X+ Y \rightarrow _{k2} 2Y &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; Y \rightarrow _{k3} B &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tomando A, X, B, e Y en la resolución de las ecuaciones diferenciales como las concentraciones de las diferentes sustancias. Esta reacción consecutiva describe la transformación de A para producir B, estando controladas la velocidad y la mezcla de este proceso por las reacciones autocatalíticas en las que participan X e Y.&lt;br /&gt;
Basándonos de nuevo en el principio de de conservación de la masa, partimos de la ecuación de que la suma de las concentraciones de todas las sustancias ha de ser constante:&lt;br /&gt;
&amp;lt;math&amp;gt; A + x + y + B = cte &amp;lt;/math&amp;gt;&lt;br /&gt;
Derivando esta ecuación deducimos que:&lt;br /&gt;
&amp;lt;math&amp;gt; A' + x' + y' + B' = 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
Por otra parte, la ley de acción de masas nos indica que la velocidad de una reacción es proporcional al producto de las concentraciones de los reactivos. De esta forma, podemos obtener el resto de ecuaciones, teniendo en cuenta que tanto la sustancia x como la sustancia y no solo se producen, sino que también se consumen, por lo que habrá que restar a la parte consumida la parte producida.&lt;br /&gt;
&lt;br /&gt;
Todo esto nos da lugar al siguiente sistema de ecuaciones:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
         x' = k1Ax − k2xy \\&lt;br /&gt;
         y' = k2xy − k3y \\&lt;br /&gt;
         B' = k3y \\&lt;br /&gt;
         A' + x' + y' + B' = 0&lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Por lo que podemos ver, a modo de mayor aclaración a lo explicado en el párrafo anterior, en la reacción autocatalítica &amp;lt;math&amp;gt; A + X \rightarrow _{k1} 2X &amp;lt;/math&amp;gt; se forma X, ya que es positivo, con una velocidad de reacción k1. De la misma manera observamos que en la reacción &amp;lt;math&amp;gt; X+ Y \rightarrow _{k2} 2Y &amp;lt;/math&amp;gt; X se consume con una velocidad de reacción k2.&lt;br /&gt;
&lt;br /&gt;
La reacción &amp;lt;math&amp;gt; A' + x' + y' + B' = 0 &amp;lt;/math&amp;gt; está en función de las otras, por lo que sustituyendo llegamos a que &amp;lt;math&amp;gt;A'=-k1Ax &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
En conclusión, vamos a resolver el problema de valor inicial tomando k1=k2=2k3=0.1 y las condiciones iniciales propuestas:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        x' = 0.1Ax − 0.1xy \\&lt;br /&gt;
        y' = 0.1xy − 0.05y \\&lt;br /&gt;
        B' = 0.05y \\&lt;br /&gt;
        A'=-0.1Ax \\&lt;br /&gt;
        A(0)=5 \\&lt;br /&gt;
        X(0)=0.0005 \\&lt;br /&gt;
        Y(0)=0.00001 \\&lt;br /&gt;
        B(0)=0 &lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Método de Euler ===&lt;br /&gt;
Vamos a resolver el problema por el método de Euler:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
       y0,t0\\&lt;br /&gt;
       y_{n+1}=y_n+h*f(t_n,y_n)&lt;br /&gt;
 \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Aplicado a cada uno de nuestras ecuaciones y sustituyendo por los datos del problema, nos quedaría algo así:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        X_{n+1}=X_n+h*[0.1*A_n*X_n-0.1*X_n*Y_n]\\&lt;br /&gt;
        Y_{n+1}=Y_n+h*[0.1*X_n*Y_n-0.05*Y_n]\\&lt;br /&gt;
        B_{n+1}=B_n+h*[0.05*Y_n]\\&lt;br /&gt;
        A_{n+1}=A_n+h*[-0.1*X_n*A_n]&lt;br /&gt;
 \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
A continuación se muestra el código MatLab de la resolución numérica&lt;br /&gt;
&lt;br /&gt;
[[Archivo:apartado6.1.jpg|400px|miniaturadeimagen|derecha|Gráfica método de Euler h=0.01]] &lt;br /&gt;
[[Archivo:Apartado6.2.jpg|400px|miniaturadeimagen|derecha|Gráfica método de Euler h=0.001]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos del problema de valor inicial&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=200;&lt;br /&gt;
A0=5;&lt;br /&gt;
X0=5*(10^-4);&lt;br /&gt;
Y0=10^(-5);&lt;br /&gt;
B0=0;&lt;br /&gt;
k1=0.1;&lt;br /&gt;
k2=0.1;&lt;br /&gt;
k3=0.05;&lt;br /&gt;
h=input('Introduzca un valor para h:');&lt;br /&gt;
&lt;br /&gt;
%Vector de tiempo&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
&lt;br /&gt;
%Definir el número de intervalos&lt;br /&gt;
N=(tN-t0)/h;&lt;br /&gt;
&lt;br /&gt;
%Vectores vacíos para nuestra solución&lt;br /&gt;
A=zeros(1,N+1);&lt;br /&gt;
X=zeros(1,N+1);&lt;br /&gt;
Y=zeros(1,N+1);&lt;br /&gt;
B=zeros(1,N+1);&lt;br /&gt;
&lt;br /&gt;
%Valores iniciales&lt;br /&gt;
A(1)=A0;&lt;br /&gt;
X(1)=X0;&lt;br /&gt;
Y(1)=Y0;&lt;br /&gt;
B(1)=B0;&lt;br /&gt;
&lt;br /&gt;
%Resolvemos el sistema&lt;br /&gt;
&lt;br /&gt;
for i=1:N&lt;br /&gt;
X(i+1)=X(i)+h.*(k1.*A(i).*X(i)-k2.*X(i).*Y(i));&lt;br /&gt;
Y(i+1)=Y(i)+h.*(k2.*X(i).*Y(i)-k3.*Y(i));&lt;br /&gt;
B(i+1)=B(i)+h.*(k3*Y(i));&lt;br /&gt;
A(i+1)=A(i)+h.*(-k1.*X(i).*A(i));&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Gráfica de resultados&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,X)&lt;br /&gt;
plot(t,Y,'g')&lt;br /&gt;
plot(t,B,'r')&lt;br /&gt;
plot(t,A,'y')&lt;br /&gt;
hold off&lt;br /&gt;
legend('Concentración X','Concentración de Y','Concentración de B','Concentración de A','Location','best');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Estabilidadtotal.jpg|220px|miniaturadeimagen|izquierda|Comparación gráfica original y la gráfica cambiando las condiciones iniciales con h=0.01]] &lt;br /&gt;
[[Archivo:Detalle estabilidad total.jpg|220px|miniaturadeimagen|derecha|Detalle de la comparación anterior con h=0.01]] &lt;br /&gt;
[[Archivo:Estabilidadtotal2.jpg|220px|miniaturadeimagen|izquierda|Comparación gráfica original y la gráfica cambiando las condiciones iniciales con h=0.001]] &lt;br /&gt;
[[Archivo:Detalleestabilidadtotal2.jpg|220px|miniaturadeimagen|derecha|Detalle de la comparación anterior con h=0.001]] &lt;br /&gt;
&lt;br /&gt;
Un PVI es estable si pequeñas perturbaciones de la función o de las condiciones iniciales afectan poco a la solución y además el error no aumenta a medida que avanza el tiempo. Para ver la estabilidad vamos a modificar un diferencial las concentraciones para ver si variarían de forma brusca o no, y así ver si realmente este método es estable. Para ello haremos un programa exactamente igual que el anterior, por lo que no lo vamos a adjuntar, en el que superpondremos la gráfica anterior y la nueva gráfica con las nuevas condiciones iniciales. Las condiciones que vamos a coger son las siguientes:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        x' = 0.1Ax − 0.1xy \\&lt;br /&gt;
        y' = 0.1xy − 0.05y \\&lt;br /&gt;
        B' = 0.05y \\&lt;br /&gt;
        A'=-0.1Ax \\&lt;br /&gt;
        A(0)=5.00001 \\&lt;br /&gt;
        X(0)=0.000501 \\&lt;br /&gt;
        Y(0)=0.000011 \\&lt;br /&gt;
        B(0)=0.000001 &lt;br /&gt;
      \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Las gráficas prácticamente se superponen, para observar el error que se produce a lo largo del tiempo hay que realizar un zoom bastante grande. Al darse todo esto podemos afirmar con bastante seguridad que el método es estable.&lt;br /&gt;
&lt;br /&gt;
===Método de Heun===&lt;br /&gt;
El método de Heun es un método explícito. Para poder obtenerlo debemos primeramente definir una serie de constantes. Su definición matemática sería la siguiente:&lt;br /&gt;
&amp;lt;math&amp;gt; \left \{ &lt;br /&gt;
      \begin{matrix} &lt;br /&gt;
        y_{0},t_{0}\\&lt;br /&gt;
        y_{n+1}=y_{n}+0.5h*(K1+K2)\\&lt;br /&gt;
        K1=f(t_{n},y_{n})\\&lt;br /&gt;
        K2=f(t_{n}+h,y_{n}+K1*h)&lt;br /&gt;
       \end{matrix}&lt;br /&gt;
   \right . &amp;lt;/math&amp;gt;&lt;br /&gt;
Aplicamos el método para cada una de nuestras ecuaciones obteniendo el siguiente programa&lt;br /&gt;
[[Archivo:apartado7C2.jpg|400px|miniaturadeimagen|derecha|Gráfica método de Heun]]&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
%Datos del problema de valor inicial&lt;br /&gt;
t0=0;&lt;br /&gt;
tN=200;&lt;br /&gt;
A0=5;&lt;br /&gt;
X0=5*(10^-4);&lt;br /&gt;
Y0=10^(-5);&lt;br /&gt;
B0=0;&lt;br /&gt;
k1=0.1;&lt;br /&gt;
k2=0.1;&lt;br /&gt;
k3=0.05;&lt;br /&gt;
h=0.01;&lt;br /&gt;
&lt;br /&gt;
%Vector de tiempo&lt;br /&gt;
t=t0:h:tN;&lt;br /&gt;
&lt;br /&gt;
%Definir el número de intervalos&lt;br /&gt;
N=(tN-t0)/h;&lt;br /&gt;
&lt;br /&gt;
%Vectores vacíos para nuestra solución&lt;br /&gt;
A=zeros(1,N+1);&lt;br /&gt;
X=zeros(1,N+1);&lt;br /&gt;
Y=zeros(1,N+1);&lt;br /&gt;
B=zeros(1,N+1);&lt;br /&gt;
&lt;br /&gt;
%Valores iniciales&lt;br /&gt;
A(1)=A0;&lt;br /&gt;
X(1)=X0;&lt;br /&gt;
Y(1)=Y0;&lt;br /&gt;
B(1)=B0;&lt;br /&gt;
&lt;br /&gt;
%Definimos las constantes&lt;br /&gt;
for i=1:N&lt;br /&gt;
K1X=k1.*A(i).*X(i)-k2.*X(i).*Y(i);&lt;br /&gt;
K1Y=k2.*X(i).*Y(i)-k3.*Y(i);&lt;br /&gt;
K1B=k3.*Y(i);&lt;br /&gt;
K1A=-k1.*X(i).*A(i);&lt;br /&gt;
K2X=k1.*(A(i)+K1X.*h).*(X(i)+K1X.*h)-k2.*(X(i)+K1X.*h).*(Y(i)+K1X.*h);&lt;br /&gt;
K2Y=k2.*(X(i)+K1Y.*h).*(Y(i)+K1Y.*h)-k3.*(Y(i)+K1Y.*h);&lt;br /&gt;
K2B=k3.*(Y(i)+K1B.*h);&lt;br /&gt;
K2A=-k1.*(X(i)+K1A.*h).*(A(i)+K1A.*h);&lt;br /&gt;
%Aplicamos el método&lt;br /&gt;
X(i+1)=X(i)+0.5*h.*(K1X+K2X);&lt;br /&gt;
Y(i+1)=Y(i)+0.5*h.*(K1Y+K2Y);&lt;br /&gt;
B(i+1)=B(i)+0.5*h.*(K1B+K2B);&lt;br /&gt;
A(i+1)=A(i)+0.5*h.*(K1A+K2A);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
%Gráficas&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,X);&lt;br /&gt;
plot(t,Y,'g');&lt;br /&gt;
plot(t,B,'r');&lt;br /&gt;
plot(t,A,'y');&lt;br /&gt;
hold off&lt;br /&gt;
legend('Concentración X','Concentración de Y','Concentración de B','Concentración de A','Location','best');&lt;br /&gt;
}}&lt;br /&gt;
Vemos que la gráfica es semejante a la obtenida por el método de Euler, en este caso utilizando sólo un valor para el tamaño de paso. &lt;br /&gt;
&lt;br /&gt;
Es importante definir las constantes del bucle en el orden que se expresó para el método de Runge-Kutta, ya que si no nos daría un error, por lo explicado también en ese subapartado. También es importante definir estas constantes antes de aplicar el método en sí.&lt;br /&gt;
&lt;br /&gt;
=== Conclusión ===&lt;br /&gt;
&lt;br /&gt;
Habiendo terminado el estudio de la reacción consecutiva propuesta por Lokta interpretamos las gráficas obtenidas.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A + X \rightarrow _{k1} 2X &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; X+ Y \rightarrow _{k2} 2Y &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; Y \rightarrow _{k3} B &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La reacción consecutiva comienza con una concentración de A de 5mol/L y una concentración de X de 5.10^(-4)mol/L, siendo la concentración de B al final del proceso igual a la suma de las concentraciones iniciales de X y A, cumpliéndose de esta forma la ley de conservación de masas. Observamos que la reacción autocatálica, a medida que transcurre el tiempo consume A para producir X a gran velocidad, que lo vemos en que la pendiente de la curva correspondiente a A es siempre negativa, por lo tanto está decreciendo. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Observamos, como era de esperar, que el compuesto Y aparece cuando hemos conseguido la suficiente cantidad de X como para que comienza la siguiente reacción autocatálica. Tanto en la gráfica de X como en la de Y presentan un cambio de pendiente marcado por un máximo, en este punto se dejan de producir estos compuestos y comienzan a ser consumidos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Finalmente, vemos la aparición de B en la gráfica, poco después de Y, ya que es necesario tener una cierta cantidad de Y para comenzar a producir B. Podemos ver que la pendiente de ,a curva de B siempre es positiva, por lo tanto siempre crece.&lt;br /&gt;
&lt;br /&gt;
Es importante darse cuenta de que la suma de las concentraciones de los compuestos para cualquier instante de tiempo es igual a 5+0.0004 lo que es 5.0005mol/L, debido a la ley de conservación de masas&lt;/div&gt;</summary>
		<author><name>Javier Parras</name></author>	</entry>

	</feed>