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

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30485</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30485"/>
				<updated>2015-05-20T21:46:52Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Heun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo es inestable para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Para que el método de Euler explícito de diferencias finitas sea estable hace falta que se cumpla que dt/(h^2) sea menor que 0.5&lt;br /&gt;
&lt;br /&gt;
Al usar un paso de tiempo dt=h/40 si que funciona, y nos sale esta gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito, con dt=h/40.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco es estable para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
El paso de tiempo dt=h/4 nos sirve para resolver el problema con los métodos implícitos del Trapecio y de Euler implícito, mientras que Heun y Euler explícito que son métodos explícitos son inestables. &lt;br /&gt;
&lt;br /&gt;
Para que funcione hace falta reducir tambien el tamaño de paso.&lt;br /&gt;
&lt;br /&gt;
Cuando usamos dt=h/20 nos queda esta gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he3.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun con dt=h/20.]]&lt;br /&gt;
&lt;br /&gt;
Y con dt=h/40 queda una gráfica mucho mas precisa:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun con dt=h/40.]]&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tiempos grandes la cantidad de contaminante se ira acercando al valor estacionario de 5.85/7. Aqui tenemos una grafica donde los valores mas &amp;quot;planos&amp;quot; son de T=10 y T=20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ti.png|marco|centro|Concentracion para distintos tiempos a lo largo de la barra.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a obtener las soluciones de nuestra ecuacion de difusion hasta un tiempo mayor (T=100 por ejemplo), y una vez tengamos nuestras soluciones usaremos un bucle que se rompa cuando la media cuadratica de las distancias a la solución estacionaria sea menor que un 5% de esta solucion estacionaria.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=20;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-(5.85/7)).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El tiempo que obtenemos es T=16.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=70;&lt;br /&gt;
q=1;&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
 &lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
 &lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:(1/dt) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=(1/dt):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 % Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De esta forma el tiempo que obtenemos es 65.775&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30484</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30484"/>
				<updated>2015-05-20T21:46:28Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Heun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo es inestable para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Para que el método de Euler explícito de diferencias finitas sea estable hace falta que se cumpla que dt/(h^2) sea menor que 0.5&lt;br /&gt;
&lt;br /&gt;
Al usar un paso de tiempo dt=h/40 si que funciona, y nos sale esta gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito, con dt=h/40.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco es estable para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
El paso de tiempo dt=h/4 nos sirve para resolver el problema con los métodos implícitos del Trapecio y de Euler implícito, mientras que Heun y Euler explícito que son métodos explícitos son inestables. &lt;br /&gt;
&lt;br /&gt;
Para que funcione hace falta reducir tambien el tamaño de paso.&lt;br /&gt;
&lt;br /&gt;
Cuando usamos dt=h/20 nos queda esta gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he3.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun con dt=h/20.]]&lt;br /&gt;
&lt;br /&gt;
Y con dt=h/40 queda una gráfica mucho mas precisa:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun con dt=h/20.]]&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tiempos grandes la cantidad de contaminante se ira acercando al valor estacionario de 5.85/7. Aqui tenemos una grafica donde los valores mas &amp;quot;planos&amp;quot; son de T=10 y T=20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ti.png|marco|centro|Concentracion para distintos tiempos a lo largo de la barra.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a obtener las soluciones de nuestra ecuacion de difusion hasta un tiempo mayor (T=100 por ejemplo), y una vez tengamos nuestras soluciones usaremos un bucle que se rompa cuando la media cuadratica de las distancias a la solución estacionaria sea menor que un 5% de esta solucion estacionaria.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=20;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-(5.85/7)).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El tiempo que obtenemos es T=16.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=70;&lt;br /&gt;
q=1;&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
 &lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
 &lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:(1/dt) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=(1/dt):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 % Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De esta forma el tiempo que obtenemos es 65.775&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30477</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30477"/>
				<updated>2015-05-20T20:52:35Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Euler explícito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo es inestable para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Para que el método de Euler explícito de diferencias finitas sea estable hace falta que se cumpla que dt/(h^2) sea menor que 0.5&lt;br /&gt;
&lt;br /&gt;
Al usar un paso de tiempo dt=h/40 si que funciona, y nos sale esta gráfica:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito, con dt=h/40.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tiempos grandes la cantidad de contaminante se ira acercando al valor estacionario de 5.85/7. Aqui tenemos una grafica donde los valores mas &amp;quot;planos&amp;quot; son de T=10 y T=20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ti.png|marco|centro|Concentracion para distintos tiempos a lo largo de la barra.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a obtener las soluciones de nuestra ecuacion de difusion hasta un tiempo mayor (T=100 por ejemplo), y una vez tengamos nuestras soluciones usaremos un bucle que se rompa cuando la media cuadratica de las distancias a la solución estacionaria sea menor que un 5% de esta solucion estacionaria.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=20;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-(5.85/7)).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El tiempo que obtenemos es T=16.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=70;&lt;br /&gt;
q=1;&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
 &lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
 &lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:(1/dt) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=(1/dt):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 % Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De esta forma el tiempo que obtenemos es 65.775&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2he3.png&amp;diff=30476</id>
		<title>Archivo:T2he3.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2he3.png&amp;diff=30476"/>
				<updated>2015-05-20T20:07:18Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2he2.png&amp;diff=30475</id>
		<title>Archivo:T2he2.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2he2.png&amp;diff=30475"/>
				<updated>2015-05-20T20:07:03Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2ee2.png&amp;diff=30474</id>
		<title>Archivo:T2ee2.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2ee2.png&amp;diff=30474"/>
				<updated>2015-05-20T20:06:45Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30473</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30473"/>
				<updated>2015-05-20T13:52:58Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Solución estacionaria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tiempos grandes la cantidad de contaminante se ira acercando al valor estacionario de 5.85/7. Aqui tenemos una grafica donde los valores mas &amp;quot;planos&amp;quot; son de T=10 y T=20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ti.png|marco|centro|Concentracion para distintos tiempos a lo largo de la barra.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vamos a obtener las soluciones de nuestra ecuacion de difusion hasta un tiempo mayor (T=100 por ejemplo), y una vez tengamos nuestras soluciones usaremos un bucle que se rompa cuando la media cuadratica de las distancias a la solución estacionaria sea menor que un 5% de esta solucion estacionaria.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=20;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-(5.85/7)).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El tiempo que obtenemos es T=16.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=70;&lt;br /&gt;
q=1;&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
 &lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
 &lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:(1/dt) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=(1/dt):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 % Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De esta forma el tiempo que obtenemos es 65.775&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30472</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30472"/>
				<updated>2015-05-20T13:39:30Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Condición limpiador */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tiempos grandes la cantidad de contaminante se ira acercando al valor estacionario de 5.85/7. Aqui tenemos una grafica donde los valores mas &amp;quot;planos&amp;quot; son de T=10 y T=20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ti.png|marco|centro|Concentracion para distintos tiempos a lo largo de la barra.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-(5.85/7)).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El codigo no muestra un valor, y no encontramos el error en el programa.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
 &lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=70;&lt;br /&gt;
q=1;&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
 &lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
 &lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
 &lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:(1/dt) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=(1/dt):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 % Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De esta forma el tiempo que obtenemos es 65.775&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2ti.png&amp;diff=30471</id>
		<title>Archivo:T2ti.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2ti.png&amp;diff=30471"/>
				<updated>2015-05-20T13:20:27Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30470</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30470"/>
				<updated>2015-05-20T13:17:27Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tiempos grandes la cantidad de contaminante se ira acercando al valor estacionario de 5.85/7. Aqui tenemos una grafica donde los valores mas &amp;quot;planos&amp;quot; son de T=10 y T=20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ti.png|marco|centro|Concentracion para distintos tiempos a lo largo de la barra.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-(5.85/7)).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El codigo no muestra un valor, y no encontramos el error en el programa.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 36.7&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30161</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30161"/>
				<updated>2015-05-14T16:34:16Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Condición limpiador */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tiempos grandes la cantidad de contaminante se ira acercando al valor estacionario de 5.85/7. Aqui tenemos una grafica donde los valores mas &amp;quot;planos&amp;quot; son de T=10 y T=20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ti.png|marco|centro|Concentracion para distintos tiempos a lo largo de la barra.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-(5.85/7)).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El codigo no muestra un valor, y no encontramos el error en el programa.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 36.7&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30160</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30160"/>
				<updated>2015-05-14T16:33:24Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Solución estacionaria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tiempos grandes la cantidad de contaminante se ira acercando al valor estacionario de 5.85/7. Aqui tenemos una grafica donde los valores mas &amp;quot;planos&amp;quot; son de T=10 y T=20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ti.png|marco|centro|Concentracion para distintos tiempos a lo largo de la barra.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-(5.85/7)).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
El codigo no muestra un valor, y no encontramos el error en el programa.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30159</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30159"/>
				<updated>2015-05-14T16:30:02Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Solución estacionaria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para tiempos grandes la cantidad de contaminante se ira acercando al valor estacionario de 5.85/7. Aqui tenemos una grafica donde los valores mas &amp;quot;planos&amp;quot; son de T=10 y T=20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30156</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30156"/>
				<updated>2015-05-14T16:20:54Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Condición limpiador */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a calcular la media cuadrática de las concentraciones y ver cual coincide con el 5% de 5.85/7.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*(5.85/7);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30153</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30153"/>
				<updated>2015-05-14T16:16:40Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Solución estacionaria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
ahora ya se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=-3/7&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que &amp;lt;math&amp;gt;c_k=\frac{\displaystyle\int_{0}^{7} -3/7cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=\displaystyle\sum_{k=0}^Q c_kφ_k(x)&lt;br /&gt;
 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=0, t&amp;gt;0\\w(x,0)=w_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;w(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
por ultimo solo nos quedaria deshacer el cambio de variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30149</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30149"/>
				<updated>2015-05-14T16:08:28Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Solución estacionaria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
dist0=1.3495&lt;br /&gt;
dist1=0.90614&lt;br /&gt;
dist2=0.71079&lt;br /&gt;
dist10=0.13935&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30148</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30148"/>
				<updated>2015-05-14T16:06:22Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Solución estacionaria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-(5.85/7)).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30138</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30138"/>
				<updated>2015-05-14T15:55:11Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Solución estacionaria */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
La solucion estacionaria debera ser nuestra cantidad de contaminante 5,85 dividido por 7, que es 0.83571&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
el nuevo problema quedaría de la siguiente manera :&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\w_t-w_{xx}=-3/7 ,x\in\ (0,7), t&amp;gt;0\\w_x(0,t)=0, t&amp;gt;0\\w_x(7,t)=-3, t&amp;gt;0\\w(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
w(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30135</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30135"/>
				<updated>2015-05-14T15:50:04Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Condición limpiador */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2li.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
las nuevas condiciones newmann no son homogéneas. tendremos que homogeneizarlas con el siguiente cambio de variable :&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,t)=w(x,t)+2a(t)x^2+b(t)x&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30133</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30133"/>
				<updated>2015-05-14T15:44:38Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Método de Furier */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5,10 y 20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier.]]&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es muy similar a las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2fourier2.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Fourier para 20 terminos con T=7.]]&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30129</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30129"/>
				<updated>2015-05-14T15:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Heun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2he.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de Heun.]]&lt;br /&gt;
&lt;br /&gt;
Se observa que el método de Heun tampoco funciona bien para este paso de tiempo.&lt;br /&gt;
&lt;br /&gt;
Los métodos que resuelven bien el problema son el del Trapecio y el de Euler implícito, mientras que Heun y Euler explícito funcionan mal.&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30125</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30125"/>
				<updated>2015-05-14T15:37:56Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Euler implícito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implícito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30123</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30123"/>
				<updated>2015-05-14T15:37:14Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Euler explícito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ee.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler explicito.]]&lt;br /&gt;
&lt;br /&gt;
Se puede observar que el metodo no funciona bien para este paso de tiempo&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implicito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30122</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30122"/>
				<updated>2015-05-14T15:35:22Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Trapecio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.png|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implicito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30120</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30120"/>
				<updated>2015-05-14T15:34:47Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Trapecio */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2tr.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implicito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30119</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30119"/>
				<updated>2015-05-14T15:34:05Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Conservación de la masa contaminante */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2masa.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:t2conc.png ‎|marco|centro|Concentracion en el punto medio.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Trapecio_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implicito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2conc.png&amp;diff=30117</id>
		<title>Archivo:T2conc.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2conc.png&amp;diff=30117"/>
				<updated>2015-05-14T15:32:00Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2masa.png&amp;diff=30116</id>
		<title>Archivo:T2masa.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2masa.png&amp;diff=30116"/>
				<updated>2015-05-14T15:31:44Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2fourier2.png&amp;diff=30115</id>
		<title>Archivo:T2fourier2.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2fourier2.png&amp;diff=30115"/>
				<updated>2015-05-14T15:31:21Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2fourier.png&amp;diff=30114</id>
		<title>Archivo:T2fourier.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2fourier.png&amp;diff=30114"/>
				<updated>2015-05-14T15:31:05Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2ei.png&amp;diff=30113</id>
		<title>Archivo:T2ei.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2ei.png&amp;diff=30113"/>
				<updated>2015-05-14T15:30:53Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2he.png&amp;diff=30112</id>
		<title>Archivo:T2he.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2he.png&amp;diff=30112"/>
				<updated>2015-05-14T15:30:42Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2ee.png&amp;diff=30111</id>
		<title>Archivo:T2ee.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2ee.png&amp;diff=30111"/>
				<updated>2015-05-14T15:30:30Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2tr.png&amp;diff=30110</id>
		<title>Archivo:T2tr.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2tr.png&amp;diff=30110"/>
				<updated>2015-05-14T15:30:18Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Archivo:T2li.png&amp;diff=30109</id>
		<title>Archivo:T2li.png</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Archivo:T2li.png&amp;diff=30109"/>
				<updated>2015-05-14T15:30:02Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30108</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30108"/>
				<updated>2015-05-14T15:29:03Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Condición limpiador */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conservación_masa_total_contaminante.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:blablablabla.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Trapecio_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implicito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;lt;1\\u(0,t)=0, t&amp;gt;1\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30094</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30094"/>
				<updated>2015-05-14T15:18:34Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Euler explícito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conservación_masa_total_contaminante.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:blablablabla.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Trapecio_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implicito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30092</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30092"/>
				<updated>2015-05-14T15:17:19Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Heun */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conservación_masa_total_contaminante.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:blablablabla.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Trapecio_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implicito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
K1=K*U; % metodo heun&lt;br /&gt;
K2=K*(U-dt*K*U);&lt;br /&gt;
U=U-dt*0.5*(K1+K2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
Dado el problema&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=-3, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que es un problema bien propuesto analizando su existencia de solución, unicidad de ésta y estabilidad con respecto al dato inicial.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30085</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30085"/>
				<updated>2015-05-14T15:14:20Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Euler implícito */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conservación_masa_total_contaminante.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:blablablabla.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Trapecio_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:t2ei.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método de euler implicito.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/20; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
% Calculamos k1=h*f(tn,yn)&lt;br /&gt;
k1=-K*U;&lt;br /&gt;
% Calculamos k2=h*f(tn+h/2,yn+1/2*k1)&lt;br /&gt;
k2=-K*(U+dt*k1);&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
U=U+(dt/2)*(k1+k2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30078</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30078"/>
				<updated>2015-05-14T15:09:56Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Sistema de ecuaciones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conservación_masa_total_contaminante.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:blablablabla.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Trapecio_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eimplicito.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/20; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
% Calculamos k1=h*f(tn,yn)&lt;br /&gt;
k1=-K*U;&lt;br /&gt;
% Calculamos k2=h*f(tn+h/2,yn+1/2*k1)&lt;br /&gt;
k2=-K*(U+dt*k1);&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
U=U+(dt/2)*(k1+k2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30071</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30071"/>
				<updated>2015-05-14T15:03:48Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Conservación de la masa contaminante */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos el area de la funcion para cada t (el area será la cantidad de contaminante)&lt;br /&gt;
contaminante=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
contaminante(i)=area;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Obtenemos en la figura 1 la cantidad de contaminante con el tiempo,y en la&lt;br /&gt;
% figura 2 la concentracion en el punto medio de la barra a lo largo del tiempo&lt;br /&gt;
figure(1)&lt;br /&gt;
plot(t,contaminante)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
punto_medio=(length(x)-1)/2;&lt;br /&gt;
figure(2)&lt;br /&gt;
plot(t,sol(:,punto_medio))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En las gráficas obtenidas se observa cómo la masa total de contaminante se conserva a lo largo del tiempo, y como varía la concentracion de contaminante a lo largo del tiempo en el punto medio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conservación_masa_total_contaminante.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
[[Archivo:blablablabla.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(5,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Trapecio_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eimplicito.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/20; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
% Calculamos k1=h*f(tn,yn)&lt;br /&gt;
k1=-K*U;&lt;br /&gt;
% Calculamos k2=h*f(tn+h/2,yn+1/2*k1)&lt;br /&gt;
k2=-K*(U+dt*k1);&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
U=U+(dt/2)*(k1+k2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30069</id>
		<title>Difusión de una sustancia contaminante (Grupo 24C)</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Difusi%C3%B3n_de_una_sustancia_contaminante_(Grupo_24C)&amp;diff=30069"/>
				<updated>2015-05-14T15:01:10Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Método de Furier */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Daniel Pascual Cobos 1690&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
=Introducción=&lt;br /&gt;
El trabajo tiene como objetivo el estudio de la mezcla de dos sustancias, una de ellas contaminante, en un tubo largo. &lt;br /&gt;
&lt;br /&gt;
Su planteamiento se realizará de forma similar al de la transmisión de calor a lo largo de una varilla, visto en clase.&lt;br /&gt;
&lt;br /&gt;
Analizaremos el modelo que define nuestro problema (ecuación de difusión), varios puntos teóricos del mismo (la conservación de la masa contaminante, la solución estacionaria) y terminar por plantear un problema concreto el cual resolveremos mediante métodos numéricos, modificando según que condiciones para poder interpretar las distintas situaciones que pueden modelizar nuestro problema.&lt;br /&gt;
&lt;br /&gt;
=Ecuación de difusión=&lt;br /&gt;
==Deducción==&lt;br /&gt;
Sea un tubo largo de longitud L, orientado en la dirección x y cuya sección es constante desde x=0 hasta x=L. Supondremos el tubo aislado tanto superficialmente como lateralmente. &lt;br /&gt;
[[Archivo:Enunciado.png ‎|marco|centro|Configuración inicial de las concentraciones de contaminante en el tubo.]]&lt;br /&gt;
&lt;br /&gt;
Sean dos sustancias contenidas en el tubo, una de ellas contaminante. Denotaremos por u(x,t) la concentración de contaminante, la cual dependerá únicamente de la posición del tubo y del tiempo, manteniéndose constante en cada sección transversal del tubo. Medido en  mol/m2s.&lt;br /&gt;
&lt;br /&gt;
Sea F(x,t) el flujo de contaminante (análogo al flujo de calor), definiéndose como la cantidad de contaminante que atraviesa una sección transversal por unidad de tiempo y area, dependiendo del número de moles, siendo éste último proporcional a la masa de la sustancia. Debido a los aislantes laterales y superficiales, el flujo sera a lo largo del eje x.&lt;br /&gt;
&lt;br /&gt;
Debido al principio de conservación de la masa la variación de la concentración de contaminante en cada posición del tubo en función del tiempo, es igual a la suma del flujo de contaminante a través de los extremos del tubo por unidad de tiempo, más la concentración de contaminante generada en el interior por unidad de tiempo. Suponemos igual a 0 las perdidas y/o ganancias en el interior del tubo (problema homogéneo).&lt;br /&gt;
La ley de Flick (similar a Furier) determina que el flujo de difusión del contaminante es proporcional a la variación de concentración:&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)=-D\frac{\partial u}{\partial x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
siendo D el coeficiente de difusión (medido en m2/s), que dependerá de las propiedades químicas de los compuestos.&lt;br /&gt;
&lt;br /&gt;
De esta forma y continuando con la semejanza a la transmisión de calor, la concentración de sustancia contaminante en un instante de tiempo t y en una sección transversal que dista x unidades del extremo izquierdo del tubo satisfará:&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_{xx}(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Pasando todo al termino de la izquierda obtendremos '''la ecuación de difusión''':&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_{xx}(x,t)= 0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dónde D es el coeficiente de difusión anteriormente citado.&lt;br /&gt;
&lt;br /&gt;
Para ello hemos definido &amp;lt;math&amp;gt; A &amp;lt;/math&amp;gt; como la variable de superficie, tomando una sección pequeña del tubo, designada por &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt;:&lt;br /&gt;
La variación de la concentración de contaminante en función del tiempo es:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u(x,t) \Delta x &amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Derivamos respecto del tiempo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; A u_t(x,t) \Delta x &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A continuación, se considera nula la concentración de contaminante generada en el interior por unidad de tiempo debido a la ausencia de sumideros.&lt;br /&gt;
&lt;br /&gt;
Suponemos que Δx&amp;gt;0 y la concentración de contaminante en un tiempo t es menor en x+ Δx que en x, entonces u(x+ Δx) – u(x,t) &amp;lt; 0, y como Δx  es pequeño, se tiene que ux(x,t)&amp;lt;0 y el flujo de difusión del contaminante es positivo y va hacia la derecha en la dirección del eje x.&lt;br /&gt;
 &lt;br /&gt;
El ﬂujo de calor en un intervalo &amp;lt;math&amp;gt;[x, x + ∆x ] &amp;lt;/math&amp;gt; viene dado dado por:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Igualando los términos anteriores y dividiendo por &amp;lt;math&amp;gt;A \Delta x&amp;lt;/math&amp;gt; se obtiene:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Haciendo que &amp;lt;math&amp;gt;\Delta x&amp;lt;/math&amp;gt; tienda a 0:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)= -F_x(x,t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y aplicando la ley de Fick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Así se obtiene la ecuación de difusión de la sustancia contaminante a lo largo del tubo anteriormente citada:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u_t(x,t)- D u_xx(x,t)= 0 &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conservación de la masa contaminante==&lt;br /&gt;
A partir de la ecuación u(x,t)se deduce que la masa total del contaminante se conserva a lo largo del tiempo.Para ello se integra:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\frac{d}{dt}\displaystyle\int_{0}^{L}u(x,t)\,dx=\displaystyle\int_{0}^{L}u_{xx}(x,t)\,dx=u_x(x,t)|_0^L=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de la difusion de una sustancia contaminante&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=500;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2; &lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
areas=zeros(1,length(t));&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
aa=trapz(x,f);&lt;br /&gt;
area(i)=aa;&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la cantidad de contaminante a lo largo del tiempo&lt;br /&gt;
plot(t,area)&lt;br /&gt;
xlabel('Tiempo')&lt;br /&gt;
ylabel('Cantidad de contaminante')&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
En la gráfica obtenida se observa cómo la masa total de contaminante se conserva a lo largo del tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Conservación_masa_total_contaminante.png ‎|marco|centro|Conservación masa total de contaminante.]]&lt;br /&gt;
&lt;br /&gt;
=Problema Propuesto=&lt;br /&gt;
==Sistema de ecuaciones==&lt;br /&gt;
Sea el problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(5,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sean las condiciones iniciales:  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pasamos a su interpretación física.&lt;br /&gt;
&lt;br /&gt;
==Modelización==&lt;br /&gt;
El problema modeliza el proceso de difusión de una sustancia contaminante a lo largo de un tubo de longitud x=7, delgado, difusor, con superficie lateral aislada y con coeficiente de difusión D igual a 1.&lt;br /&gt;
&lt;br /&gt;
En los puntos interiores del tubo no existentes ni fuentes ni sumideros de sustancia contaminante.&lt;br /&gt;
&lt;br /&gt;
Tanto el extremo izquierdo como el extremo derecho del tubo se encuentran aislados de forma que el flujo de sustancia en ellos es igual a 0.&lt;br /&gt;
&lt;br /&gt;
En el instante inicial, las secciones transversales que distan 5 o menos unidades de longitud del extremo izquierdo tendrán una concentración inicial de sustancia contaminante igual a 0. Las secciones que distan mas de 5 unidades de ese extremo tendrán una concentración de contaminante igual a 3.&lt;br /&gt;
&lt;br /&gt;
==Resolución==&lt;br /&gt;
===Método diferencias finitas===&lt;br /&gt;
Se trata de un método numérico que nos proporciona una solución aproximada de distintos problemas de ecuaciones en derivadas parciales, aplicable a nuestro caso.&lt;br /&gt;
Primero realizamos una discretización del espacio, tomando como longitud de paso h y desde x=0 hasta x=7, obteniendo un vector N con x+1 elementos.&lt;br /&gt;
&lt;br /&gt;
Seguidamente aplicamos la ecuacion diferencial a cada nodo interior xn, aproximamos u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; mediante:&lt;br /&gt;
&amp;lt;math&amp;gt;u_{xx}(x,t)\simeq\frac{u(x_{n-1},t)-2u(x_n,t)+u(x_{n+1},t)}{h^2}=0&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aplicamos la notación &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; resulta el sistema de N-1 ecuaciones:&lt;br /&gt;
\begin{array}{c}u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)-u_{n+1}(t)}{h^2}=0\end{array}&lt;br /&gt;
para n=1,2...N-1&lt;br /&gt;
&lt;br /&gt;
Aplicamos las condiciones de contorno:&lt;br /&gt;
&lt;br /&gt;
\begin{array}{c}u'_0(t)=0\\u'_n(t)=0\end{array}&lt;br /&gt;
Resultando el sistema:&lt;br /&gt;
\begin{array}{c}U'+KU=0=F\\U(0)=U^0\end{array}&lt;br /&gt;
&lt;br /&gt;
Siendo &amp;lt;math&amp;gt;U^0&amp;lt;/math&amp;gt; las condiciones iniciales &lt;br /&gt;
en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
====Trapecio====&lt;br /&gt;
Se resuelve el sistema en primer lugar utilizando el '''método del trapecio''' tomando &amp;lt;math&amp;gt;\triangle t= \triangle x/4&amp;lt;/math&amp;gt; en &amp;lt;math&amp;gt;t\in\ [0,7]&amp;lt;/math&amp;gt;, con &amp;lt;math&amp;gt;\triangle x=0.1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U); % Trapecio&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Trapecio_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=U-dt*K*U; % metodo explicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eexplicito_1.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:length(t)-1 % Hasta length(t)-1 porque ya tenemos el valor para t=0&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Se obtiene la siguiente gráfica concentración / espacio-tiempo:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Eimplicito.jpg|marco|centro|Resolución del sistema de difusión de una sustancia contaminante por el método del trapecio.]]&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/20; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
% Calculamos k1=h*f(tn,yn)&lt;br /&gt;
k1=-K*U;&lt;br /&gt;
% Calculamos k2=h*f(tn+h/2,yn+1/2*k1)&lt;br /&gt;
k2=-K*(U+dt*k1);&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
U=U+(dt/2)*(k1+k2);&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
 % Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica concentración / espacio-tiempo obtenida es:&lt;br /&gt;
&lt;br /&gt;
El método más preciso es el de Euler Implícito como se demuestra gráficamente y el menos el de Heun&lt;br /&gt;
&lt;br /&gt;
las cuatro gráficas que se han mostrado son todas muy parecidas y solo varia la precisiòn de la curva&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
El método de Fourier nos proporciona, al igual que el método de diferencias finitas, una aproximación de la solución del problema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cuyas condiciones iniciales son:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dado que se trata de un sistema con condiciones de frontera homogéneas, el problema de autovalores asociado es:&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(PA)\left\{\begin{matrix}\\x''+μx=0 ,x\in\ (0,7)\\x'(0)=0\\x'(7)=0\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y los autovalores y autofunciones salvo una constante son:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;μ_k=\frac{\pi^2k^2}{49}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/7)x&amp;lt;/math&amp;gt;  k=0,1,2,3...&lt;br /&gt;
&lt;br /&gt;
Se aproxima el dato inicial y el segundo miembro, se elige Q y se toma:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q c_kφ_k(x)=0&amp;lt;/math&amp;gt;:  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\displaystyle\sum_{k=0}^Q a_kφ_k(x)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
donde se deduce que '''c&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;=0''' y &amp;lt;math&amp;gt;a_k=\frac{\displaystyle\int_{0}^{7} u_0cos(kπ/7)x\, dx}{\displaystyle\int_{0}^{7} cos^2(kπ/7)x\, dx}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El problema aproximado queda de la forma:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u_x(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0=\displaystyle\sum_{k=0}^Q a_kφ_k(x), x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada sería:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q T_k(t)φ_k(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sustituyendo en la ecuación de difusión de una sustancia contaminante e igualando los coeficicientes de Fourier se obtiene el sistema:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\left\{\begin{matrix}\\T'_k(t)+μ_kT_k(t)=c_k=0\\T_k(0)=a_k\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Resolviendo el problema de valor inicial, se deduce que &amp;lt;math&amp;gt; T_k(t)=Ce^{-μ_k t}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La solución aproximada queda de la forma &amp;lt;math&amp;gt;u(x,t)=\displaystyle\sum_{k=0}^Q Ce^{-μ_k t} cos(kπ/7)x&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El valor de la constante C depende de la condición inicial,que es la que condiciona el valor de a&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''1,3,5 y 10 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,1);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:3&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,2);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
for k=0:5&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,3);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
 &lt;br /&gt;
for k=0:10&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(3,2,5);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=7, podemos comprobar que la gráfica obtenida por Fourier es la misma que las que obteníamos por el método de diferencias finitas.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
% Datos d&lt;br /&gt;
N=70; % Intervalos de x&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L;&lt;br /&gt;
dt=h/4;&lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)];&lt;br /&gt;
for k=0:20&lt;br /&gt;
phi=cos((k*pi/7)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/49*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
Se calcula la distancia entre la solución estacionaria y la solución u(x,t) para t=0,1,2,10:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
dist0=(sqrt(sum((sol(1,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist1=(sqrt(sum((sol(41,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist2=(sqrt(sum((sol(81,:)-1.17).^2)/(N+1)))&lt;br /&gt;
dist10=(sqrt(sum((sol(401,:)-1.17).^2)/(N+1)))&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
De donde se obtiene:&lt;br /&gt;
&lt;br /&gt;
vamos a calcular la media cuadrática de las distancias desde cada punto de la función al estado estacionario para averiguar el tiempo que tarda la concentración en alcanzar el estado estacionario con un error del 5%:&lt;br /&gt;
&lt;br /&gt;
La media cuadrática para N valores &amp;lt;math&amp;gt;[x_1,x_2,x_3,...,x_N]&amp;lt;/math&amp;gt; de una variable discreta x viene dada por:&lt;br /&gt;
&amp;lt;math&amp;gt;x=\sqrt{\mathstrut \frac{1}{N}\sum_{k=1}^N}x_k^2=(\frac{x_1^2+x_2^2+...+x_N^2}{N})^{1/2} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 para cada tiempo t tenemos:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=10;&lt;br /&gt;
q=1;&lt;br /&gt;
% Datos de la discretizacion espacial&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
% Vector de nodos en en espacio&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
% Aproximacion de -q*u_xx&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
 K(1,2)=-2;&lt;br /&gt;
 K(N+1,N)=-2;&lt;br /&gt;
 K=q*K/h^2;&lt;br /&gt;
 % Calculamos u0&lt;br /&gt;
 u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
 % Discretizacion temporal&lt;br /&gt;
dt=h/4; % Paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1); &lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % Voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % metodo implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum((sol(i,:)-1.17).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se obtiene un tiempo de ..... segundos.&lt;br /&gt;
&lt;br /&gt;
Al dividir &amp;quot;incremento de x&amp;quot; por 10 (usando N=500) sale un tiempo de ...... segundos.&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&lt;br /&gt;
Pasado un tiempo T = 1, colocamos en el extremo izquierdo un limpiador que elimina el contaminante&lt;br /&gt;
en ese extremo izquierdo, lo que modifica las condiciones de frontera del problema provocando que una condición de frontera tipo Neumann se convierta en una condición tipo Dirichlet, obteniendo el siguiente sistema:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;&lt;br /&gt;
(P)\left\{\begin{matrix}\\u_t-u_{xx}=0 ,x\in\ (0,7), t&amp;gt;0\\u(0,t)=0, t&amp;gt;0\\u_x(7,t)=0, t&amp;gt;0\\u(x,0)=u_0, x\in\ (0,7)\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Suponiendo que en el instante inicial se verifica  :&amp;lt;math&amp;gt;&lt;br /&gt;
u(x,0)=\left\{\begin{matrix}\\0, x≤5\\3, x&amp;gt;5\end{matrix}\right.&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Se comprueba que está bien propuesto analizando la existencia de solución, la unicidad de ésta y su estabilidad,&lt;br /&gt;
&lt;br /&gt;
Obtenemos una aproximación numérica de la solución utilizando el '''método de diferencias finitas'''. &lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
% u_t-qu_xx=0, x en (0,L)&lt;br /&gt;
% u_x(0,t)=0 Condicion Neumann para t&amp;lt;=1&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet para t&amp;gt;1&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
L=7;&lt;br /&gt;
T=7;&lt;br /&gt;
q=1;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion espacial&lt;br /&gt;
h=0.1;&lt;br /&gt;
N=L/h;&lt;br /&gt;
x=0:h:L; &lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores&lt;br /&gt;
&lt;br /&gt;
% Discretizacion temporal&lt;br /&gt;
dt=h/4; % Tamaño de paso&lt;br /&gt;
t=0:dt:T; % Vector de tiempos&lt;br /&gt;
&lt;br /&gt;
% Matriz K para t&amp;lt;=1&lt;br /&gt;
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);&lt;br /&gt;
K(1,2)=-2; % Condicion Neumann&lt;br /&gt;
K(N+1,N)=-2; % Condicion Neumann&lt;br /&gt;
K=q*K/h^2;&lt;br /&gt;
% Matriz K para t&amp;gt;1&lt;br /&gt;
K2=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K2(N,N-1)=-2;&lt;br /&gt;
K2=K2/h^2;&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N+1,1);&lt;br /&gt;
F2=zeros(N,1);&lt;br /&gt;
% Calculamos u0&lt;br /&gt;
u0=[zeros(1,1+N*5/7),3*ones(1,N*2/7)]';&lt;br /&gt;
% Guardamos la solucion para t=0 en la matriz solucion&lt;br /&gt;
sol(1,:)=u0'; &lt;br /&gt;
U=u0; % Inicializacion&lt;br /&gt;
&lt;br /&gt;
% Calculamos U_n+1 a partir de U_n con un bucle for&lt;br /&gt;
for j=1:((length(t)-1)/7) &lt;br /&gt;
U=(eye(N+1)+dt*K)\(U+dt*F); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= U'; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
U(1)=[];&lt;br /&gt;
for j=((length(t)-1)/7):length(t)-1 &lt;br /&gt;
U=(eye(N)+dt*K2)\(U+dt*F2); % Euler Implicito&lt;br /&gt;
sol(j+1,:)= [0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
% Dibujamos la solucion&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
surf(xx,tt,sol);&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
La gráfica obtenida sería:&lt;br /&gt;
&lt;br /&gt;
El valor estacionario de la concentración en el tubo será de cero, debido a que se ha colocado un limpiador en uno de sus extremos que irá eliminando el contaminante.&lt;br /&gt;
&lt;br /&gt;
Para averiguar el tiempo que tarda la concentración en alcanzar este otro estado estacionario con un error del 5% vamos a utilizar 2 métodos distintos.&lt;br /&gt;
Primero vamos a calcular el tiempo que tarda la cantidad de contaminante en reducirse hasta el 5%, y después calculando la media cuadrática igual que hemos hecho en el apartado anterior.&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=40;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*5.85;&lt;br /&gt;
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
f=sol(i,:);&lt;br /&gt;
area=trapz(x,f);&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
if area&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la primera forma se obtiene un tiempo de 32.225&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion de difusion&lt;br /&gt;
% u_t-u_xx=0, x en (0,L)&lt;br /&gt;
% u(0,t)=0 Condicion Dirichlet&lt;br /&gt;
% u_x(L,t)=0 Condicion Neumann&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=80;&lt;br /&gt;
% Datos de la discretizacion&lt;br /&gt;
N=50;&lt;br /&gt;
h=L/N;&lt;br /&gt;
x=0:h:L; % Vector de nodos&lt;br /&gt;
xint=h:h:L; % Vector de nodos interiores &lt;br /&gt;
% Discretizacion temporal. &lt;br /&gt;
dt=h/4; &lt;br /&gt;
t=0:dt:T;&lt;br /&gt;
% Aproximacion de -*u_xx&lt;br /&gt;
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);&lt;br /&gt;
K(N,N-1)=-2;&lt;br /&gt;
K=K/h^2;&lt;br /&gt;
% Calculamos U0 (condicion en el instante 0)&lt;br /&gt;
U0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';&lt;br /&gt;
% Definimos F&lt;br /&gt;
F=zeros(N,1);&lt;br /&gt;
% Guardamos la solucion&lt;br /&gt;
sol(1,:)=[0,U0']; &lt;br /&gt;
U=U0; % Inicializacion&lt;br /&gt;
% Calculamos U_n ----&amp;gt; U_n+1&lt;br /&gt;
for j=1:length(t)-1 % voy hasta la longitud de t menos 1 porque ya conozco un valor&lt;br /&gt;
U=(eye(N)+dt*K)\(U+dt*F);&lt;br /&gt;
sol(j+1,:)=[0,U']; % Guardamos la solucion&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
% Calculamos cual es el error del 5%&lt;br /&gt;
limite=0.05*1.17;&lt;br /&gt;
% Buscamos para que tiempo se alcanza ese valor&lt;br /&gt;
for i=1:length(t)&lt;br /&gt;
dist=(sqrt(sum(sol(i,:).^2)/(N+1)));&lt;br /&gt;
if dist&amp;lt;limite&lt;br /&gt;
tiempo=(i-1)*dt&lt;br /&gt;
break&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
}}&lt;br /&gt;
De la segunda forma se obtiene un tiempo de 33.275&lt;br /&gt;
&lt;br /&gt;
===Condiciones tipo Newman===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29245</id>
		<title>Logística con umbral</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29245"/>
				<updated>2015-03-12T21:14:12Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Resolución */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Logística con umbral. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Marta Orellana Jimenez 309&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
==Objetivos y metodología==&lt;br /&gt;
El objetivo del trabajo es el estudio de dos problemas poblacionales independientes.&lt;br /&gt;
&lt;br /&gt;
En el primero de ellos trataremos la resolución de una ecuación logística clásica que modeliza una especie de individuos y su dependencia con el medio, lo que se traduce en un problema de valor inicial. Trataremos de resolverlo mediante distintos metodos numericos (Euler, Heun y Runge-Kutta) a la vez que le daremos un sentido tanto numérico como poblacional.&lt;br /&gt;
 &lt;br /&gt;
En el segundo analizaremos la evolución de dos especies que ocupan un mismo ecosistema, que actuaran como competidores en el uso de los recursos. Esta situacion sera la equivalente a un sistema de ecuaciones no lineal denominado modelo de competencia y para distintos valores de sus constantes analizaremos el tipo de relacion entre las especies (neutralismo, parasitismo...) asi como algunas propiedades que se pueden derivar de la misma. &lt;br /&gt;
==Dinámica de población dependiente del medio==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Considerando el problema del valor inicial;&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
y'=-ry(1-\frac{y}{M1})(1-\frac{y}{M2})\\y=y0&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
nos dispondremos a desarrollar y exponer la resolución del problema, la interpretción de los resultados obtenidos, complementando todo esto con sus gráficas correspondientes para facilitar su entendimiento.&lt;br /&gt;
===Resolución===&lt;br /&gt;
&lt;br /&gt;
Para la resolución general utilizaremos un numero de individuos iniciales igual a 60 (y0=60).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|centro|Resolución de la ecuación diferencial utilizando los métodos de Euler, Heun y RK4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% f(t,y)= -r*yy*(1-yy/m1)*(1-yy/m2)&lt;br /&gt;
&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
r=0.04;&lt;br /&gt;
m1=30;&lt;br /&gt;
m2=100;&lt;br /&gt;
y0=60;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=100;&lt;br /&gt;
Paso=[1 0.1 0.01];&lt;br /&gt;
h=Paso(1); &lt;br /&gt;
% Cambiando entre 1,2 y 3 elegimos el paso de tiempo que queremos.&lt;br /&gt;
% Cuidado que con 0,01 es probable que se cuelgue el ordenador.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
% Vector Euler&lt;br /&gt;
y=zeros(N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
y(1)=yy;&lt;br /&gt;
&lt;br /&gt;
% Vector Heun&lt;br /&gt;
he=zeros(N+1);&lt;br /&gt;
hh=y0;&lt;br /&gt;
he(1)=hh;&lt;br /&gt;
&lt;br /&gt;
% Vector RK4&lt;br /&gt;
rk=zeros(N+1);&lt;br /&gt;
rr=y0;&lt;br /&gt;
rk(1)=rr;&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
% Euler&lt;br /&gt;
yy=yy+h*(-r*yy*(1-yy/m1)*(1-yy/m2));&lt;br /&gt;
y(k+1)=yy;&lt;br /&gt;
% Heun&lt;br /&gt;
k1=-r*hh*(1-hh/m1)*(1-hh/m2);&lt;br /&gt;
k2=-r*(hh+k1*h)*(1-(hh+k1*h)/m1)*(1-(hh+k1*h)/m2);&lt;br /&gt;
hh=hh+0.5*h*(k1+k2);&lt;br /&gt;
he(k+1)=hh;&lt;br /&gt;
% RK4&lt;br /&gt;
% Calculamos k1=f(tn,yn) &lt;br /&gt;
k1=-r*rr*(1-rr/m1)*(1-rr/m2);&lt;br /&gt;
% Calculamos k2=f(tn+h/2,yn+1/2*h*k1) % Cambiar yy por (yy+0.5*h*k1)&lt;br /&gt;
k2=-r*(rr+1/2*h*k1)*(1-(rr+1/2*h*k1)/m1)*(1-(rr+1/2*h*k1)/m2); % Poniendo &amp;quot;(yy+1/2*h*k1)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k3=f(tn+h/2,yn+1/2*h*k2) % Cambiar yy por (yy+0.5*h*k2)&lt;br /&gt;
k3=-r*(rr+1/2*h*k2)*(1-(rr+1/2*h*k2)/m1)*(1-(rr+1/2*h*k2)/m2); % Poniendo &amp;quot;(yy+1/2*h*k2)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k4=f(tn+h,yn+h*k3) % Cambiar yy por (yy+h*k3)&lt;br /&gt;
k4=-r*(rr+h*k3)*(1-(rr+h*k3)/m1)*(1-(rr+h*k3)/m2); % Poniendo &amp;quot;(yy+h*k3)&amp;quot; en vez de yy&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
rr=rr+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
rk(k+1)=rr;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold on&lt;br /&gt;
&lt;br /&gt;
plot(t,y);&lt;br /&gt;
plot(t,he,'r');&lt;br /&gt;
plot(t,rk,'g');&lt;br /&gt;
legend('Euler','Heun','RK4')&lt;br /&gt;
&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion R');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Interpretación===&lt;br /&gt;
====General====&lt;br /&gt;
=====Numérica=====&lt;br /&gt;
Todos los métodos  dividen el dominio del tiempo en  pequeños segmentos h= ∆t y aproximan la solución de la  función para el extremo de cada segmento. Al hacer esto surgen tres posibles  problemas: la obtención del comienzo de integración, la velocidad de cálculo y los errores generados.&lt;br /&gt;
 &lt;br /&gt;
La solución de las Ecuaciones diferenciales por medio de métodos numéricos involucra varios tipos de errores:&lt;br /&gt;
 &lt;br /&gt;
 -Error del Método: por la aproximación de una curva mediante una línea recta.&lt;br /&gt;
&lt;br /&gt;
 -Local: Es la diferencia que se produce entre el valor real de la función y el aproximado mediante la recta tangente.&lt;br /&gt;
&lt;br /&gt;
 -Propagado: Acumulación de errores por las aproximaciones.&lt;br /&gt;
&lt;br /&gt;
 -Redondeo/Truncamiento: Resultado del número límite de cifras significativas que puede retener una computadora.&lt;br /&gt;
 &lt;br /&gt;
Analizando los tres casos empleados en los cálculos;&lt;br /&gt;
 &lt;br /&gt;
El método  de Euler se encarga de aproximar la curva y=F(x) por medio de una serie de segmentos en recta.&lt;br /&gt;
 &lt;br /&gt;
Debido a que la aproximación de una curva por medio de una línea recta no es exacta, se comete un error derivado del método que se puede disminuir reduciendo el valor de h, pero se obtendrá un mayor número de cálculos y, por consiguiente, un error de redondeo mucho más alto.&lt;br /&gt;
 &lt;br /&gt;
Otra fuente fundamental de error en el método de Euler se debe a que la derivada al principio del intervalo se aplica a través del intervalo entero.&lt;br /&gt;
&lt;br /&gt;
Existe una sencilla modificación que ayudan a evitar este inconveniente dando lugar al método de Heun.&lt;br /&gt;
&lt;br /&gt;
La mejora del método consiste en la aproximación a la pendiente mediante la aplicación de dos derivadas del intervalo, una en el punto inicial y otra en el final. La aproximación mejorada de la pendiente será el promedio de las dos derivadas.&lt;br /&gt;
&lt;br /&gt;
Los métodos más sencillos como el de Euler o las mejoras de este procedimiento, tienen dos defectos esenciales: la pequeña precisión del cálculo y el crecimiento sitemático de los errores.&lt;br /&gt;
&lt;br /&gt;
El procedimiento de Runge-Kutta es el que mayor precisión presenta debido a la su exactitud relativamente elevada de la solución aproximada de la ecuación diferencial.&lt;br /&gt;
&lt;br /&gt;
Todo lo expuesto anteriormente queda corroborado en la gráfica adjuntada, donde puede observarse la variaciones de precisión entre los distintos métodos en la representación de las distintas soluciones.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:INTERPRETACIONNUMERICA.jpg|500px|thumb|centro|Zoom de la gráfica para observar la diferencia entre los distintos metodos numéricos]]&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esta no es más que una ampliación de la gráfica dispuesta al inicio del trabajo, en la cual se puede comprobar que, en el caso de que la exigencia en la precisión de los cálculos no sea notoria, cualquiera de los métodos empleados, a grandes rasgos, darán resultados muy similares.&lt;br /&gt;
&lt;br /&gt;
=====Poblacional=====&lt;br /&gt;
En términos de dinámica de poblaciones la ecuación diferencial modeliza una población limitada en 100 individuos, condicionada por distintos factores del medio siendo el más limitativo del crecimiento poblacional la falta de recursos en el ecosistema donde se estudia la población. En el estudio desarrollado a continuación se parte de la base de que con poblaciones inferiores a cierto valor (30 en nuestro caso) estas serán incapaces de adaptarse al medio y prosperar, decreciendo la población de forma continuada hasta la desaparición total de esta.&lt;br /&gt;
  &lt;br /&gt;
Interpretamos, en función de los valores dados, que a partir de 30 componentes  estas agrupaciones son capaces de diversificar las funciones desarrolladas en el grupo siendo suficientes para que estas permitan el desarrollo del grupo.&lt;br /&gt;
En el caso limite, consideraríamos que de la totalidad de los individuos  se repartiría en funciones esenciales, como la obtención de alimento y la defensa del grupo, lo que permitiría un crecimiento poblacional moderado. Sin embargo, para comunidades mayores  la diversificación de  tareas, o bien, desarrollándose las mismas de forma más eficiente o pudiendo llegar a surgir otras, y mientras el factor limitativo de los recursos del medio lo permita, el crecimiento será superior al de poblaciones menores en los valores iniciales .  &lt;br /&gt;
&lt;br /&gt;
Lo expuesto previamente se cumple  hasta valores muy cercanos  al límite de individuos en ese espacio, no obstante,  en zonas cercanas al valor máximo de individuos de este estudio la pendiente en el crecimiento se ve disminuida dando lugar a  un crecimiento más lento de los experimentados previamente. Pudiera interpretarse como que, dado que los recursos empiezan a ser insuficientes, la competencia por ellos se verá incrementada dificultando en mayor medida el desarrollo del censo poblacional.&lt;br /&gt;
&lt;br /&gt;
====Casos Particulares====&lt;br /&gt;
Para un número inicial de individuos igual a 20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP5.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 20 individuos]]&lt;br /&gt;
&lt;br /&gt;
Acorde con lo ya explicado, al no superar el número límite de individuos que permitan el desarrollo de la población,esta decrecerá hasta extinguirse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para un número inicial de individuos igual a 120&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP4.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 120 individuos]]&lt;br /&gt;
&lt;br /&gt;
Como ya expusimos, al superar el número de individuos de la población el máximo permitido por el medio, estos desaparecerán hasta alcanzar el valor sostenible del medio.&lt;br /&gt;
&lt;br /&gt;
==Dinámica de población condicionada por otra especie==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Con el objetivo estudiar las interacciones de diversas especies en el medio, asi como su relación con este empleamos el modelo no lineal ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+b1x^2+c1xy\\y'=a2y+b2y^2+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicho sistema modeliza lo que conocemos como los distintos modelos de competencia (neutralismo, simbiosis o cooperación, competición, parasitismo, comensalismo, amesalismo).&lt;br /&gt;
&lt;br /&gt;
Basándonos en dicho modelo y aplicando los distintos métodos numéricos de resolución de ecuaciones diferenciales ordinarias nos dispondremos  a llevar a cabo un estudio de diversos aspectos propios de cada especie estudiada, su interacción con otras y su relación con el medio.&lt;br /&gt;
&lt;br /&gt;
Analizando los resultados obtenidos y apoyándonos en sus representaciones gráficas seremos capaces de deducir cada uno de los modelos de competencia, los extremos poblacionales de cada comunidad, sus tendencias futuras respecto a su supervivencia…&lt;br /&gt;
&lt;br /&gt;
Otro aspecto de gran relevancia es la posibilidad, mediante los grafos de las funciones programadas e  interpretación de parámetros, de conocer como influyen una especies sobre otras centrándonos en mayor medida en sus crecimientos.&lt;br /&gt;
Esta información nos permite, con una vista más global, poder conocer los caracteres de cada ecosistema siendo de especial importancia el análisis de su estabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Resolución numérica===&lt;br /&gt;
&lt;br /&gt;
====Euler====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x+b1*x^2+c1*x*y&lt;br /&gt;
% y' = a2*y+b2*y^2+c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Euler&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
&lt;br /&gt;
x(k+1)=x(k)+h*(a1*x(k)+b1*x(k)^2+c1*x(k)*y(k));&lt;br /&gt;
y(k+1)=y(k)+h*(a2*y(k)+b2*y(k)^2+c2*x(k)*y(k));&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x+b1*x^2+c1*x*y&lt;br /&gt;
% y' = a2*y+b2*y^2+c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Heun&lt;br /&gt;
for k=1:N&lt;br /&gt;
k1x=a1*x(k)+b1*x(k)^2+c1*x(k)*y(k);&lt;br /&gt;
k1y=a2*y(k)+b2*y(k)^2+c2*x(k)*y(k);&lt;br /&gt;
k2x=a1*(x(k)+h*k1x)+b1*(x(k)+h*k1x)^2+c1*(x(k)+h*k1x)*(y(k)+h*k1y); % (x(k)+h*k1x)&lt;br /&gt;
k2y=a2*(y(k)+h*k1y)+b2*(y(k)+h*k1y)^2+c2*(x(k)+h*k1x)*(y(k)+h*k1y); % (y(k)+h*k1y)&lt;br /&gt;
x(k+1)=x(k)+0.5*h*(k1x+k2x);&lt;br /&gt;
y(k+1)=y(k)+0.5*h*(k1y+k2y);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|Parasitismo Heun]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Parasitismo Euler]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos observar que en este primer caso los parametros b1 y b2 son iguales a 0, con lo que nos queda este sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+c1xy\\y'=a2y+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
                                                                (Con c1 positivo y c2 negativo)&lt;br /&gt;
&lt;br /&gt;
Este es el sistema de ecuaciones del modelo depredador-presa de Lotka-Volterra, por lo que podemos deducir que el modelo de competencia que representa es el parasitismo. También podíamos haberlo deducido observando el crecimiento de las poblaciones en la gráfica, o fijandonos en que los coeficientes c1 y c2 son uno positivo y otro negativo (una especie vive a expensas de la otra (huesped) a la cual produce perjuicios).&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la gráfica, el método de Euler es inestable para este sistema de ecuaciones, es necesario utilizar Heun para obtener la gráfica.&lt;br /&gt;
&lt;br /&gt;
Se observa que ninguna especie tiende a desaparecer ni a estabilizarse, las especies 1 y 2 oscilan en los intervalos [2,42] y [0,26] respectivamente.&lt;br /&gt;
Aunque en la gráfica parezca que la especie 2 llega a 0 individuos, esto provocaría la desaparicion de la especie. Teniendo en cuenta que medimos las problaciones en millones de habitantes, lo que a simple vista parece 0 ronda los 30.000 individuos.&lt;br /&gt;
&lt;br /&gt;
Debido al signo de los coeficientes (c1 positivo y c2 negativo), sabemos que la segunda especie influye positivamente sobre la primera, mientras que la primera influye negativamente sobre la segunda.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso1xy.jpg|500px|thumb|centro|Parasitismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si entendemos la estabilidad de un ecosistema como la tendencia a estabilizar sus poblaciones conforme aumenta el tiempo, al comparar en un gráfico ambas especies observamos que ninguna de ellas se estabiliza porque el comportamiento de ambas es cíclico, así que podemos afirmar que se trata de un ecosistema inestable.&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso2.jpg|500px|thumb|left|Neutralismo Heun]] [[Archivo:Caso2xy.jpg|500px|thumb|centre|Neutralismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por el método de Euler no da ningún problema de inestabilidad , se asemeja bastante a la gráfica definida por Heun. &lt;br /&gt;
&lt;br /&gt;
Si intentamos dar una interpretación mirando la gráfica puede haber ambigüedad y es dificil llegar a una solución certera. A simple vista podríamos interpretar que la especie 1 debido a su crecimiento influencia negativamente en el crecimiento de la otra población y llegaríamos a la conclusión de que es amensalismo.&lt;br /&gt;
                                                                                                                 &lt;br /&gt;
Para llegar a una conclusión mas acertada hay que estudiar las restricciones que se ponen en este apartado:&lt;br /&gt;
Si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos tienen un valor nulo. Esto se interpreta en que ambas especies no se influencian entre si y cada una tendría un crecimiento independiente(neutralismo). Por lo tanto no desaparece ninguna de las especies y ambas se estabilizan en el tiempo .&lt;br /&gt;
 &lt;br /&gt;
En el caso de la especie 1, a partir de t(32) la población es constate y máxima de (4)&lt;br /&gt;
&lt;br /&gt;
Y para la especie 2 desde t(21) en adelante la población es constante y mínima de (2.5)&lt;br /&gt;
&lt;br /&gt;
Por tanto podemos afirmar que es un ecosistema estable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg|500px|thumb|left|Simbiosis Heun]] [[Archivo:Caso3b.jpg|500px|thumb|centre|Simbiosis Heun. Gráfica ampliada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso tampoco tenemos ningun problema de inestabilidad al utilizar el método de Euler, se obtiene la misma gráfica que utilizando Heun.&lt;br /&gt;
De nuevo al interpretar este caso observando la gráfica no queda claro de que modelo de competencia se trata.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos otra vez en los coeficientes c1 y c2 nos damos cuenta de que ambos son positivos (ambas especies se benefician mutuamente), con lo que ahora vemos mucho mas clara la situación.&lt;br /&gt;
Se trata de una simbiosis entre 2 especies en la que inicialmente una tiende a crecer y otra a decrecer. El aumento de la especie 1 provoca un pequeño aumento final en la población de la especie 2.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica que llega hasta t=50, se puede ver que no desaparece ninguna de las especies y que ambas se estabilizan en el tiempo .&lt;br /&gt;
En el caso de la especie 1 se estabiliza alrededor de x=5.3, y en el de la especie 2 se estabiliza en torno a y=3,6.&lt;br /&gt;
&lt;br /&gt;
En este caso también podemos afirmar que se trata de un ecosistema estable, que se estabiliza con el tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso3xy.jpg|500px|thumb|centro|Simbiosis Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
Esta gráfica muestra como la especie 2 que tiende a descender desde un principio, se beneficia ligeramente del crecimiento de la especie 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Competición====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso4.jpg|500px|thumb|left|Competición Heun]] [[Archivo:Caso4xy.jpg|500px|thumb|centre|Competición Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puede observarse mediante la resolución numérica que el método de Euler sale prácticamente igual y sin grandes diferencias con respecto al método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando las gráficas vemos como en el inicio es complicado predecir un modelo, ya que ambas especies parecen salir beneficiadas. Sin embargo, pasado un tiempo se observa con claridad como la especie 1 tiende a expandirse, mientras que la segunda especie comienza a caer. Esto se traduce en un caso de competición entre especies, en la cual la una tiende a eliminar a la otra.&lt;br /&gt;
Este modelo se hace patente mediantes los coeficientes c1 y c2, ambos negativos, lo que quiere decirnos que ambas especies se perjudican la una a la otra.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica podemos ver como llegan a un cierto equilibrio con el paso del tiempo ya que tienden a estabilizarse y ninguna especie desaparece por completo.&lt;br /&gt;
&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso5.jpg|500px|thumb|left|Amensalismo Heun]] [[Archivo:Caso5xy.jpg|500px|thumb|centre|Amensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso no existe ningún problema con el método de Euler, debido a que sale la misma gráfica que si usamos el método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando la gráfica obtenida puede parecer que es un caso de competición, ya que al tiempo que la especie 1 crece, la especie 2 tiende a desaparecer.&lt;br /&gt;
&lt;br /&gt;
Pero al fijarnos en los valores de los coeficientes c1=0 y c2=-0.2 nos damos cuenta de que una especie afecta negativamente al crecimiento de la otra sin estar influenciada por ella.&lt;br /&gt;
&lt;br /&gt;
Esto supone que existe una especie inhibidora (especie 1) que produce efectos negativos en la especie amensal (especie 2) sin obtener ningún beneficio.&lt;br /&gt;
La especie 1 a partir de t(8) tiende a estabilizarse, con población constante, alcanzando un máximo (25); mientras la especie 2 a partir de t(4) desaparece.&lt;br /&gt;
&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso6.jpg|500px|thumb|left|Comensalismo Heun]] [[Archivo:Caso6xy.jpg|500px|thumb|centre|Comensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al igual que en la mayoría de casos previos, el método de Euler presenta un error muy similar al de Heun siendo los resultados gráficos y numéricos prácticamente iguales.&lt;br /&gt;
&lt;br /&gt;
En la última gráfica a analizar interpretamos la solución como un claro ejemplo de comensalismo en el que el crecimiento de una de las especies se ve potenciado por el de la otra mientras que el de el de esta no se altera por el de la primera.&lt;br /&gt;
&lt;br /&gt;
A priori no seriamos capaces de identificar en la gráfica la especie que fundamenta su crecimiento en la otra, mas estudiando los coeficientes de la ecuación nos damos cuenta que es la especie 2 la que se beneficia del crecimiento de la especie 1 (c1=0 y c2=0.2).&lt;br /&gt;
&lt;br /&gt;
Entendiendo la estabilidad del medio como la mínima o nula variación de las poblaciones a lo largo del tiempo, este ultimo analizado se podría considerar como tal, puesto que una vez que las poblaciones estabilizan su crecimiento de la fase inicial mantienen el número de individuos fijos alcanzándose de esta manera el equilibrio en el medio.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29241</id>
		<title>Logística con umbral</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29241"/>
				<updated>2015-03-12T19:00:56Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Logística con umbral. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Marta Orellana Jimenez 309&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
==Objetivos y metodología==&lt;br /&gt;
El objetivo del trabajo es el estudio de dos problemas poblacionales independientes.&lt;br /&gt;
&lt;br /&gt;
En el primero de ellos trataremos la resolución de una ecuación logística clásica que modeliza una especie de individuos y su dependencia con el medio, lo que se traduce en un problema de valor inicial. Trataremos de resolverlo mediante distintos metodos numericos (Euler, Heun y Runge-Kutta) a la vez que le daremos un sentido tanto numérico como poblacional.&lt;br /&gt;
 &lt;br /&gt;
En el segundo analizaremos la evolución de dos especies que ocupan un mismo ecosistema, que actuaran como competidores en el uso de los recursos. Esta situacion sera la equivalente a un sistema de ecuaciones no lineal denominado modelo de competencia y para distintos valores de sus constantes analizaremos el tipo de relacion entre las especies (neutralismo, parasitismo...) asi como algunas propiedades que se pueden derivar de la misma. &lt;br /&gt;
==Dinámica de población dependiente del medio==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Considerando el problema del valor inicial;&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
y'=-ry(1-\frac{y}{M1})(1-\frac{y}{M2})\\y=y0&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
nos dispondremos a desarrollar y exponer la resolución del problema, la interpretción de los resultados obtenidos, complementando todo esto con sus gráficas correspondientes para facilitar su entendimiento.&lt;br /&gt;
===Resolución===&lt;br /&gt;
&lt;br /&gt;
Para la resolución general utilizaremos un numero de individuos iniciales igual a 60 (y0=60).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|centro|Resolución de la ecuación diferencial utilizando los métodos de Euler, Heun y RK4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% f(t,y)= -r*yy*(1-yy/m1)*(1-yy/m2)&lt;br /&gt;
&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
r=0.04;&lt;br /&gt;
m1=30;&lt;br /&gt;
m2=100;&lt;br /&gt;
y0=60;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=100;&lt;br /&gt;
hh=[1 0.1 0.01];&lt;br /&gt;
h=hh(1); &lt;br /&gt;
% Cambiando entre 1,2 y 3 elegimos el paso de tiempo que queremos.&lt;br /&gt;
% Cuidado que con 0,01 es probable que se cuelgue el ordenador.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
% Vector Euler&lt;br /&gt;
y=zeros(N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
y(1)=yy;&lt;br /&gt;
&lt;br /&gt;
% Vector Heun&lt;br /&gt;
he=zeros(N+1);&lt;br /&gt;
hh=y0;&lt;br /&gt;
he(1)=hh;&lt;br /&gt;
&lt;br /&gt;
% Vector RK4&lt;br /&gt;
rk=zeros(N+1);&lt;br /&gt;
rr=y0;&lt;br /&gt;
rk(1)=rr;&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
% Euler&lt;br /&gt;
yy=yy+h*(-r*yy*(1-yy/m1)*(1-yy/m2));&lt;br /&gt;
y(k+1)=yy;&lt;br /&gt;
% Heun&lt;br /&gt;
k1=-r*hh*(1-hh/m1)*(1-hh/m2);&lt;br /&gt;
k2=-r*(hh+k1*h)*(1-(hh+k1*h)/m1)*(1-(hh+k1*h)/m2);&lt;br /&gt;
hh=hh+0.5*h*(k1+k2);&lt;br /&gt;
he(k+1)=hh;&lt;br /&gt;
% RK4&lt;br /&gt;
% Calculamos k1=f(tn,yn) &lt;br /&gt;
k1=-r*rr*(1-rr/m1)*(1-rr/m2);&lt;br /&gt;
% Calculamos k2=f(tn+h/2,yn+1/2*h*k1) % Cambiar yy por (yy+0.5*h*k1)&lt;br /&gt;
k2=-r*(rr+1/2*h*k1)*(1-(rr+1/2*h*k1)/m1)*(1-(rr+1/2*h*k1)/m2); % Poniendo &amp;quot;(yy+1/2*h*k1)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k3=f(tn+h/2,yn+1/2*h*k2) % Cambiar yy por (yy+0.5*h*k2)&lt;br /&gt;
k3=-r*(rr+1/2*h*k2)*(1-(rr+1/2*h*k2)/m1)*(1-(rr+1/2*h*k2)/m2); % Poniendo &amp;quot;(yy+1/2*h*k2)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k4=f(tn+h,yn+h*k3) % Cambiar yy por (yy+h*k3)&lt;br /&gt;
k4=-r*(rr+h*k3)*(1-(rr+h*k3)/m1)*(1-(rr+h*k3)/m2); % Poniendo &amp;quot;(yy+h*k3)&amp;quot; en vez de yy&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
rr=rr+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
rk(k+1)=rr;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold on&lt;br /&gt;
&lt;br /&gt;
plot(t,y);&lt;br /&gt;
plot(t,he,'r');&lt;br /&gt;
plot(t,rk,'g');&lt;br /&gt;
legend('Euler','Heun','RK4')&lt;br /&gt;
&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion R');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Interpretación===&lt;br /&gt;
====General====&lt;br /&gt;
=====Numérica=====&lt;br /&gt;
Todos los métodos  dividen el dominio del tiempo en  pequeños segmentos h= ∆t y aproximan la solución de la  función para el extremo de cada segmento. Al hacer esto surgen tres posibles  problemas: la obtención del comienzo de integración, la velocidad de cálculo y los errores generados.&lt;br /&gt;
 &lt;br /&gt;
La solución de las Ecuaciones diferenciales por medio de métodos numéricos involucra varios tipos de errores:&lt;br /&gt;
 &lt;br /&gt;
 -Error del Método: por la aproximación de una curva mediante una línea recta.&lt;br /&gt;
&lt;br /&gt;
 -Local: Es la diferencia que se produce entre el valor real de la función y el aproximado mediante la recta tangente.&lt;br /&gt;
&lt;br /&gt;
 -Propagado: Acumulación de errores por las aproximaciones.&lt;br /&gt;
&lt;br /&gt;
 -Redondeo/Truncamiento: Resultado del número límite de cifras significativas que puede retener una computadora.&lt;br /&gt;
 &lt;br /&gt;
Analizando los tres casos empleados en los cálculos;&lt;br /&gt;
 &lt;br /&gt;
El método  de Euler se encarga de aproximar la curva y=F(x) por medio de una serie de segmentos en recta.&lt;br /&gt;
 &lt;br /&gt;
Debido a que la aproximación de una curva por medio de una línea recta no es exacta, se comete un error derivado del método que se puede disminuir reduciendo el valor de h, pero se obtendrá un mayor número de cálculos y, por consiguiente, un error de redondeo mucho más alto.&lt;br /&gt;
 &lt;br /&gt;
Otra fuente fundamental de error en el método de Euler se debe a que la derivada al principio del intervalo se aplica a través del intervalo entero.&lt;br /&gt;
&lt;br /&gt;
Existe una sencilla modificación que ayudan a evitar este inconveniente dando lugar al método de Heun.&lt;br /&gt;
&lt;br /&gt;
La mejora del método consiste en la aproximación a la pendiente mediante la aplicación de dos derivadas del intervalo, una en el punto inicial y otra en el final. La aproximación mejorada de la pendiente será el promedio de las dos derivadas.&lt;br /&gt;
&lt;br /&gt;
Los métodos más sencillos como el de Euler o las mejoras de este procedimiento, tienen dos defectos esenciales: la pequeña precisión del cálculo y el crecimiento sitemático de los errores.&lt;br /&gt;
&lt;br /&gt;
El procedimiento de Runge-Kutta es el que mayor precisión presenta debido a la su exactitud relativamente elevada de la solución aproximada de la ecuación diferencial.&lt;br /&gt;
&lt;br /&gt;
Todo lo expuesto anteriormente queda corroborado en la gráfica adjuntada, donde puede observarse la variaciones de precisión entre los distintos métodos en la representación de las distintas soluciones.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:INTERPRETACIONNUMERICA.jpg|500px|thumb|centro|Zoom de la gráfica para observar la diferencia entre los distintos metodos numéricos]]&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esta no es más que una ampliación de la gráfica dispuesta al inicio del trabajo, en la cual se puede comprobar que, en el caso de que la exigencia en la precisión de los cálculos no sea notoria, cualquiera de los métodos empleados, a grandes rasgos, darán resultados muy similares.&lt;br /&gt;
&lt;br /&gt;
=====Poblacional=====&lt;br /&gt;
En términos de dinámica de poblaciones la ecuación diferencial modeliza una población limitada en 100 individuos, condicionada por distintos factores del medio siendo el más limitativo del crecimiento poblacional la falta de recursos en el ecosistema donde se estudia la población. En el estudio desarrollado a continuación se parte de la base de que con poblaciones inferiores a cierto valor (30 en nuestro caso) estas serán incapaces de adaptarse al medio y prosperar, decreciendo la población de forma continuada hasta la desaparición total de esta.&lt;br /&gt;
  &lt;br /&gt;
Interpretamos, en función de los valores dados, que a partir de 30 componentes  estas agrupaciones son capaces de diversificar las funciones desarrolladas en el grupo siendo suficientes para que estas permitan el desarrollo del grupo.&lt;br /&gt;
En el caso limite, consideraríamos que de la totalidad de los individuos  se repartiría en funciones esenciales, como la obtención de alimento y la defensa del grupo, lo que permitiría un crecimiento poblacional moderado. Sin embargo, para comunidades mayores  la diversificación de  tareas, o bien, desarrollándose las mismas de forma más eficiente o pudiendo llegar a surgir otras, y mientras el factor limitativo de los recursos del medio lo permita, el crecimiento será superior al de poblaciones menores en los valores iniciales .  &lt;br /&gt;
&lt;br /&gt;
Lo expuesto previamente se cumple  hasta valores muy cercanos  al límite de individuos en ese espacio, no obstante,  en zonas cercanas al valor máximo de individuos de este estudio la pendiente en el crecimiento se ve disminuida dando lugar a  un crecimiento más lento de los experimentados previamente. Pudiera interpretarse como que, dado que los recursos empiezan a ser insuficientes, la competencia por ellos se verá incrementada dificultando en mayor medida el desarrollo del censo poblacional.&lt;br /&gt;
&lt;br /&gt;
====Casos Particulares====&lt;br /&gt;
Para un número inicial de individuos igual a 20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP5.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 20 individuos]]&lt;br /&gt;
&lt;br /&gt;
Acorde con lo ya explicado, al no superar el número límite de individuos que permitan el desarrollo de la población,esta decrecerá hasta extinguirse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para un número inicial de individuos igual a 120&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP4.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 120 individuos]]&lt;br /&gt;
&lt;br /&gt;
Como ya expusimos, al superar el número de individuos de la población el máximo permitido por el medio, estos desaparecerán hasta alcanzar el valor sostenible del medio.&lt;br /&gt;
&lt;br /&gt;
==Dinámica de población condicionada por otra especie==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Con el objetivo estudiar las interacciones de diversas especies en el medio, asi como su relación con este empleamos el modelo no lineal ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+b1x^2+c1xy\\y'=a2y+b2y^2+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicho sistema modeliza lo que conocemos como los distintos modelos de competencia (neutralismo, simbiosis o cooperación, competición, parasitismo, comensalismo, amesalismo).&lt;br /&gt;
&lt;br /&gt;
Basándonos en dicho modelo y aplicando los distintos métodos numéricos de resolución de ecuaciones diferenciales ordinarias nos dispondremos  a llevar a cabo un estudio de diversos aspectos propios de cada especie estudiada, su interacción con otras y su relación con el medio.&lt;br /&gt;
&lt;br /&gt;
Analizando los resultados obtenidos y apoyándonos en sus representaciones gráficas seremos capaces de deducir cada uno de los modelos de competencia, los extremos poblacionales de cada comunidad, sus tendencias futuras respecto a su supervivencia…&lt;br /&gt;
&lt;br /&gt;
Otro aspecto de gran relevancia es la posibilidad, mediante los grafos de las funciones programadas e  interpretación de parámetros, de conocer como influyen una especies sobre otras centrándonos en mayor medida en sus crecimientos.&lt;br /&gt;
Esta información nos permite, con una vista más global, poder conocer los caracteres de cada ecosistema siendo de especial importancia el análisis de su estabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Resolución numérica===&lt;br /&gt;
&lt;br /&gt;
====Euler====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x+b1*x^2+c1*x*y&lt;br /&gt;
% y' = a2*y+b2*y^2+c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Euler&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
&lt;br /&gt;
x(k+1)=x(k)+h*(a1*x(k)+b1*x(k)^2+c1*x(k)*y(k));&lt;br /&gt;
y(k+1)=y(k)+h*(a2*y(k)+b2*y(k)^2+c2*x(k)*y(k));&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x+b1*x^2+c1*x*y&lt;br /&gt;
% y' = a2*y+b2*y^2+c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Heun&lt;br /&gt;
for k=1:N&lt;br /&gt;
k1x=a1*x(k)+b1*x(k)^2+c1*x(k)*y(k);&lt;br /&gt;
k1y=a2*y(k)+b2*y(k)^2+c2*x(k)*y(k);&lt;br /&gt;
k2x=a1*(x(k)+h*k1x)+b1*(x(k)+h*k1x)^2+c1*(x(k)+h*k1x)*(y(k)+h*k1y); % (x(k)+h*k1x)&lt;br /&gt;
k2y=a2*(y(k)+h*k1y)+b2*(y(k)+h*k1y)^2+c2*(x(k)+h*k1x)*(y(k)+h*k1y); % (y(k)+h*k1y)&lt;br /&gt;
x(k+1)=x(k)+0.5*h*(k1x+k2x);&lt;br /&gt;
y(k+1)=y(k)+0.5*h*(k1y+k2y);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|Parasitismo Heun]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Parasitismo Euler]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos observar que en este primer caso los parametros b1 y b2 son iguales a 0, con lo que nos queda este sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+c1xy\\y'=a2y+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
                                                                (Con c1 positivo y c2 negativo)&lt;br /&gt;
&lt;br /&gt;
Este es el sistema de ecuaciones del modelo depredador-presa de Lotka-Volterra, por lo que podemos deducir que el modelo de competencia que representa es el parasitismo. También podíamos haberlo deducido observando el crecimiento de las poblaciones en la gráfica, o fijandonos en que los coeficientes c1 y c2 son uno positivo y otro negativo (una especie vive a expensas de la otra (huesped) a la cual produce perjuicios).&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la gráfica, el método de Euler es inestable para este sistema de ecuaciones, es necesario utilizar Heun para obtener la gráfica.&lt;br /&gt;
&lt;br /&gt;
Se observa que ninguna especie tiende a desaparecer ni a estabilizarse, las especies 1 y 2 oscilan en los intervalos [2,42] y [0,26] respectivamente.&lt;br /&gt;
Aunque en la gráfica parezca que la especie 2 llega a 0 individuos, esto provocaría la desaparicion de la especie. Teniendo en cuenta que medimos las problaciones en millones de habitantes, lo que a simple vista parece 0 ronda los 30.000 individuos.&lt;br /&gt;
&lt;br /&gt;
Debido al signo de los coeficientes (c1 positivo y c2 negativo), sabemos que la segunda especie influye positivamente sobre la primera, mientras que la primera influye negativamente sobre la segunda.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso1xy.jpg|500px|thumb|centro|Parasitismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si entendemos la estabilidad de un ecosistema como la tendencia a estabilizar sus poblaciones conforme aumenta el tiempo, al comparar en un gráfico ambas especies observamos que ninguna de ellas se estabiliza porque el comportamiento de ambas es cíclico, así que podemos afirmar que se trata de un ecosistema inestable.&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso2.jpg|500px|thumb|left|Neutralismo Heun]] [[Archivo:Caso2xy.jpg|500px|thumb|centre|Neutralismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por el método de Euler no da ningún problema de inestabilidad , se asemeja bastante a la gráfica definida por Heun. &lt;br /&gt;
&lt;br /&gt;
Si intentamos dar una interpretación mirando la gráfica puede haber ambigüedad y es dificil llegar a una solución certera. A simple vista podríamos interpretar que la especie 1 debido a su crecimiento influencia negativamente en el crecimiento de la otra población y llegaríamos a la conclusión de que es amensalismo.&lt;br /&gt;
                                                                                                                 &lt;br /&gt;
Para llegar a una conclusión mas acertada hay que estudiar las restricciones que se ponen en este apartado:&lt;br /&gt;
Si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos tienen un valor nulo. Esto se interpreta en que ambas especies no se influencian entre si y cada una tendría un crecimiento independiente(neutralismo). Por lo tanto no desaparece ninguna de las especies y ambas se estabilizan en el tiempo .&lt;br /&gt;
 &lt;br /&gt;
En el caso de la especie 1, a partir de t(32) la población es constate y máxima de (4)&lt;br /&gt;
&lt;br /&gt;
Y para la especie 2 desde t(21) en adelante la población es constante y mínima de (2.5)&lt;br /&gt;
&lt;br /&gt;
Por tanto podemos afirmar que es un ecosistema estable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg|500px|thumb|left|Simbiosis Heun]] [[Archivo:Caso3b.jpg|500px|thumb|centre|Simbiosis Heun. Gráfica ampliada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso tampoco tenemos ningun problema de inestabilidad al utilizar el método de Euler, se obtiene la misma gráfica que utilizando Heun.&lt;br /&gt;
De nuevo al interpretar este caso observando la gráfica no queda claro de que modelo de competencia se trata.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos otra vez en los coeficientes c1 y c2 nos damos cuenta de que ambos son positivos (ambas especies se benefician mutuamente), con lo que ahora vemos mucho mas clara la situación.&lt;br /&gt;
Se trata de una simbiosis entre 2 especies en la que inicialmente una tiende a crecer y otra a decrecer. El aumento de la especie 1 provoca un pequeño aumento final en la población de la especie 2.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica que llega hasta t=50, se puede ver que no desaparece ninguna de las especies y que ambas se estabilizan en el tiempo .&lt;br /&gt;
En el caso de la especie 1 se estabiliza alrededor de x=5.3, y en el de la especie 2 se estabiliza en torno a y=3,6.&lt;br /&gt;
&lt;br /&gt;
En este caso también podemos afirmar que se trata de un ecosistema estable, que se estabiliza con el tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso3xy.jpg|500px|thumb|centro|Simbiosis Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
Esta gráfica muestra como la especie 2 que tiende a descender desde un principio, se beneficia ligeramente del crecimiento de la especie 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Competición====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso4.jpg|500px|thumb|left|Competición Heun]] [[Archivo:Caso4xy.jpg|500px|thumb|centre|Competición Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puede observarse mediante la resolución numérica que el método de Euler sale prácticamente igual y sin grandes diferencias con respecto al método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando las gráficas vemos como en el inicio es complicado predecir un modelo, ya que ambas especies parecen salir beneficiadas. Sin embargo, pasado un tiempo se observa con claridad como la especie 1 tiende a expandirse, mientras que la segunda especie comienza a caer. Esto se traduce en un caso de competición entre especies, en la cual la una tiende a eliminar a la otra.&lt;br /&gt;
Este modelo se hace patente mediantes los coeficientes c1 y c2, ambos negativos, lo que quiere decirnos que ambas especies se perjudican la una a la otra.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica podemos ver como llegan a un cierto equilibrio con el paso del tiempo ya que tienden a estabilizarse y ninguna especie desaparece por completo.&lt;br /&gt;
&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso5.jpg|500px|thumb|left|Amensalismo Heun]] [[Archivo:Caso5xy.jpg|500px|thumb|centre|Amensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso no existe ningún problema con el método de Euler, debido a que sale la misma gráfica que si usamos el método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando la gráfica obtenida puede parecer que es un caso de competición, ya que al tiempo que la especie 1 crece, la especie 2 tiende a desaparecer.&lt;br /&gt;
&lt;br /&gt;
Pero al fijarnos en los valores de los coeficientes c1=0 y c2=-0.2 nos damos cuenta de que una especie afecta negativamente al crecimiento de la otra sin estar influenciada por ella.&lt;br /&gt;
&lt;br /&gt;
Esto supone que existe una especie inhibidora (especie 1) que produce efectos negativos en la especie amensal (especie 2) sin obtener ningún beneficio.&lt;br /&gt;
La especie 1 a partir de t(8) tiende a estabilizarse, con población constante, alcanzando un máximo (25); mientras la especie 2 a partir de t(4) desaparece.&lt;br /&gt;
&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso6.jpg|500px|thumb|left|Comensalismo Heun]] [[Archivo:Caso6xy.jpg|500px|thumb|centre|Comensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al igual que en la mayoría de casos previos, el método de Euler presenta un error muy similar al de Heun siendo los resultados gráficos y numéricos prácticamente iguales.&lt;br /&gt;
&lt;br /&gt;
En la última gráfica a analizar interpretamos la solución como un claro ejemplo de comensalismo en el que el crecimiento de una de las especies se ve potenciado por el de la otra mientras que el de el de esta no se altera por el de la primera.&lt;br /&gt;
&lt;br /&gt;
A priori no seriamos capaces de identificar en la gráfica la especie que fundamenta su crecimiento en la otra, mas estudiando los coeficientes de la ecuación nos damos cuenta que es la especie 2 la que se beneficia del crecimiento de la especie 1 (c1=0 y c2=0.2).&lt;br /&gt;
&lt;br /&gt;
Entendiendo la estabilidad del medio como la mínima o nula variación de las poblaciones a lo largo del tiempo, este ultimo analizado se podría considerar como tal, puesto que una vez que las poblaciones estabilizan su crecimiento de la fase inicial mantienen el número de individuos fijos alcanzándose de esta manera el equilibrio en el medio.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29016</id>
		<title>Logística con umbral</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29016"/>
				<updated>2015-03-06T21:25:46Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Comensalismo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Logística con umbral. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Marta Orellana Jimenez 309&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
==Objetivos y metodología==&lt;br /&gt;
El objetivo del trabajo es el estudio de dos problemas poblacionales independientes.&lt;br /&gt;
&lt;br /&gt;
En el primero de ellos trataremos la resolución de una ecuación logística clásica que modeliza una especie de individuos y su dependencia con el medio, lo que se traduce en un problema de valor inicial. Trataremos de resolverlo mediante distintos metodos numericos (Euler, Heun y Runge-Kutta) a la vez que le daremos un sentido tanto numérico como poblacional.&lt;br /&gt;
 &lt;br /&gt;
En el segundo analizaremos la evolución de dos especies que ocupan un mismo ecosistema, que actuaran como competidores en el uso de los recursos. Esta situacion sera la equivalente a un sistema de ecuaciones no lineal denominado modelo de competencia y para distintos valores de sus constantes analizaremos el tipo de relacion entre las especies (neutralismo, parasitismo...) asi como algunas propiedades que se pueden derivar de la misma. &lt;br /&gt;
==Dinámica de población dependiente del medio==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Considerando el problema del valor inicial;&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
y'=-ry(1-\frac{y}{M1})(1-\frac{y}{M2})\\y=y0&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
nos dispondremos a desarrollar y exponer la resolución del problema, la interpretción de los resultados obtenidos, complementando todo esto con sus gráficas correspondientes para facilitar su entendimiento.&lt;br /&gt;
===Resolución===&lt;br /&gt;
&lt;br /&gt;
Para la resolución general utilizaremos un numero de individuos iniciales igual a 60 (y0=60).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|centro|Resolución de la ecuación diferencial utilizando los métodos de Euler, Heun y RK4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% f(t,y)= -r*yy*(1-yy/m1)*(1-yy/m2)&lt;br /&gt;
&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
r=0.04;&lt;br /&gt;
m1=30;&lt;br /&gt;
m2=100;&lt;br /&gt;
y0=60;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=100;&lt;br /&gt;
hh=[1 0.1 0.01];&lt;br /&gt;
h=hh(1); &lt;br /&gt;
% Cambiando entre 1,2 y 3 elegimos el paso de tiempo que queremos.&lt;br /&gt;
% Cuidado que con 0,01 es probable que se cuelgue el ordenador.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
% Vector Euler&lt;br /&gt;
y=zeros(N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
y(1)=yy;&lt;br /&gt;
&lt;br /&gt;
% Vector Heun&lt;br /&gt;
he=zeros(N+1);&lt;br /&gt;
hh=y0;&lt;br /&gt;
he(1)=hh;&lt;br /&gt;
&lt;br /&gt;
% Vector RK4&lt;br /&gt;
rk=zeros(N+1);&lt;br /&gt;
rr=y0;&lt;br /&gt;
rk(1)=rr;&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
% Euler&lt;br /&gt;
yy=yy+h*(-r*yy*(1-yy/m1)*(1-yy/m2));&lt;br /&gt;
y(k+1)=yy;&lt;br /&gt;
% Heun&lt;br /&gt;
k1=-r*hh*(1-hh/m1)*(1-hh/m2);&lt;br /&gt;
k2=-r*(hh+k1*h)*(1-(hh+k1*h)/m1)*(1-(hh+k1*h)/m2);&lt;br /&gt;
hh=hh+0.5*h*(k1+k2);&lt;br /&gt;
he(k+1)=hh;&lt;br /&gt;
% RK4&lt;br /&gt;
% Calculamos k1=f(tn,yn) &lt;br /&gt;
k1=-r*rr*(1-rr/m1)*(1-rr/m2);&lt;br /&gt;
% Calculamos k2=f(tn+h/2,yn+1/2*h*k1) % Cambiar yy por (yy+0.5*h*k1)&lt;br /&gt;
k2=-r*(rr+1/2*h*k1)*(1-(rr+1/2*h*k1)/m1)*(1-(rr+1/2*h*k1)/m2); % Poniendo &amp;quot;(yy+1/2*h*k1)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k3=f(tn+h/2,yn+1/2*h*k2) % Cambiar yy por (yy+0.5*h*k2)&lt;br /&gt;
k3=-r*(rr+1/2*h*k2)*(1-(rr+1/2*h*k2)/m1)*(1-(rr+1/2*h*k2)/m2); % Poniendo &amp;quot;(yy+1/2*h*k2)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k4=f(tn+h,yn+h*k3) % Cambiar yy por (yy+h*k3)&lt;br /&gt;
k4=-r*(rr+h*k3)*(1-(rr+h*k3)/m1)*(1-(rr+h*k3)/m2); % Poniendo &amp;quot;(yy+h*k3)&amp;quot; en vez de yy&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
rr=rr+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
rk(k+1)=rr;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold on&lt;br /&gt;
&lt;br /&gt;
plot(t,y);&lt;br /&gt;
plot(t,he,'r');&lt;br /&gt;
plot(t,rk,'g');&lt;br /&gt;
legend('Euler','Heun','RK4')&lt;br /&gt;
&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion R');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Interpretación===&lt;br /&gt;
====General====&lt;br /&gt;
=====Numérica=====&lt;br /&gt;
Todos los métodos  dividen el dominio del tiempo en  pequeños segmentos h= ∆t y aproximan la solución de la  función para el extremo de cada segmento. Al hacer esto surgen tres posibles  problemas: la obtención del comienzo de integración, la velocidad de cálculo y los errores generados.&lt;br /&gt;
 &lt;br /&gt;
La solución de las Ecuaciones diferenciales por medio de métodos numéricos involucra varios tipos de errores:&lt;br /&gt;
 &lt;br /&gt;
 -Error del Método: por la aproximación de una curva mediante una línea recta.&lt;br /&gt;
&lt;br /&gt;
 -Local: Es la diferencia que se produce entre el valor real de la función y el aproximado mediante la recta tangente.&lt;br /&gt;
&lt;br /&gt;
 -Propagado: Acumulación de errores por las aproximaciones.&lt;br /&gt;
&lt;br /&gt;
 -Redondeo/Truncamiento: Resultado del número límite de cifras significativas que puede retener una computadora.&lt;br /&gt;
 &lt;br /&gt;
Analizando los tres casos empleados en los cálculos;&lt;br /&gt;
 &lt;br /&gt;
El método  de Euler se encarga de aproximar la curva y=F(x) por medio de una serie de segmentos en recta.&lt;br /&gt;
 &lt;br /&gt;
Debido a que la aproximación de una curva por medio de una línea recta no es exacta, se comete un error derivado del método que se puede disminuir reduciendo el valor de h, pero se obtendrá un mayor número de cálculos y, por consiguiente, un error de redondeo mucho más alto.&lt;br /&gt;
 &lt;br /&gt;
Otra fuente fundamental de error en el método de Euler se debe a que la derivada al principio del intervalo se aplica a través del intervalo entero.&lt;br /&gt;
&lt;br /&gt;
Existe una sencilla modificación que ayudan a evitar este inconveniente dando lugar al método de Heun.&lt;br /&gt;
&lt;br /&gt;
La mejora del método consiste en la aproximación a la pendiente mediante la aplicación de dos derivadas del intervalo, una en el punto inicial y otra en el final. La aproximación mejorada de la pendiente será el promedio de las dos derivadas.&lt;br /&gt;
&lt;br /&gt;
Los métodos más sencillos como el de Euler o las mejoras de este procedimiento, tienen dos defectos esenciales: la pequeña precisión del cálculo y el crecimiento sitemático de los errores.&lt;br /&gt;
&lt;br /&gt;
El procedimiento de Runge-Kutta es el que mayor precisión presenta debido a la su exactitud relativamente elevada de la solución aproximada de la ecuación diferencial.&lt;br /&gt;
&lt;br /&gt;
Todo lo expuesto anteriormente queda corroborado en la gráfica adjuntada, donde puede observarse la variaciones de precisión entre los distintos métodos en la representación de las distintas soluciones.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:INTERPRETACIONNUMERICA.jpg|500px|thumb|centro|Zoom de la gráfica para observar la diferencia entre los distintos metodos numéricos]]&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esta no es más que una ampliación de la gráfica dispuesta al inicio del trabajo, en la cual se puede comprobar que, en el caso de que la exigencia en la precisión de los cálculos no sea notoria, cualquiera de los métodos empleados, a grandes rasgos, darán resultados muy similares.&lt;br /&gt;
&lt;br /&gt;
=====Poblacional=====&lt;br /&gt;
En términos de dinámica de poblaciones la ecuación diferencial modeliza una población limitada en 100 individuos, condicionada por distintos factores del medio siendo el más limitativo del crecimiento poblacional la falta de recursos en el ecosistema donde se estudia la población. En el estudio desarrollado a continuación se parte de la base de que con poblaciones inferiores a cierto valor (30 en nuestro caso) estas serán incapaces de adaptarse al medio y prosperar, decreciendo la población de forma continuada hasta la desaparición total de esta.&lt;br /&gt;
  &lt;br /&gt;
Interpretamos, en función de los valores dados, que a partir de 30 componentes  estas agrupaciones son capaces de diversificar las funciones desarrolladas en el grupo siendo suficientes para que estas permitan el desarrollo del grupo.&lt;br /&gt;
En el caso limite, consideraríamos que de la totalidad de los individuos  se repartiría en funciones esenciales, como la obtención de alimento y la defensa del grupo, lo que permitiría un crecimiento poblacional moderado. Sin embargo, para comunidades mayores  la diversificación de  tareas, o bien, desarrollándose las mismas de forma más eficiente o pudiendo llegar a surgir otras, y mientras el factor limitativo de los recursos del medio lo permita, el crecimiento será superior al de poblaciones menores en los valores iniciales .  &lt;br /&gt;
&lt;br /&gt;
Lo expuesto previamente se cumple  hasta valores muy cercanos  al límite de individuos en ese espacio, no obstante,  en zonas cercanas al valor máximo de individuos de este estudio la pendiente en el crecimiento se ve disminuida dando lugar a  un crecimiento más lento de los experimentados previamente. Pudiera interpretarse como que, dado que los recursos empiezan a ser insuficientes, la competencia por ellos se verá incrementada dificultando en mayor medida el desarrollo del censo poblacional.&lt;br /&gt;
&lt;br /&gt;
====Casos Particulares====&lt;br /&gt;
Para un número inicial de individuos igual a 20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP5.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 20 individuos]]&lt;br /&gt;
&lt;br /&gt;
Acorde con lo ya explicado, al no superar el número límite de individuos que permitan el desarrollo de la población,esta decrecerá hasta extinguirse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para un número inicial de individuos igual a 120&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP4.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 120 individuos]]&lt;br /&gt;
&lt;br /&gt;
Como ya expusimos, al superar el número de individuos de la población el máximo permitido por el medio, estos desaparecerán hasta alcanzar el valor sostenible del medio.&lt;br /&gt;
&lt;br /&gt;
==Dinámica de población condicionada por otra especie==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Con el objetivo estudiar las interacciones de diversas especies en el medio, asi como su relación con este empleamos el modelo no lineal ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+b1x^2+c1xy\\y'=a2y+b2y^2+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicho sistema modeliza lo que conocemos como los distintos modelos de competencia (neutralismo, simbiosis o cooperación, competición, parasitismo, comensalismo, amesalismo).&lt;br /&gt;
&lt;br /&gt;
Basándonos en dicho modelo y aplicando los distintos métodos numéricos de resolución de ecuaciones diferenciales ordinarias nos dispondremos  a llevar a cabo un estudio de diversos aspectos propios de cada especie estudiada, su interacción con otras y su relación con el medio.&lt;br /&gt;
&lt;br /&gt;
Analizando los resultados obtenidos y apoyándonos en sus representaciones gráficas seremos capaces de deducir cada uno de los modelos de competencia, los extremos poblacionales de cada comunidad, sus tendencias futuras respecto a su supervivencia…&lt;br /&gt;
&lt;br /&gt;
Otro aspecto de gran relevancia es la posibilidad, mediante los grafos de las funciones programadas e  interpretación de parámetros, de conocer como influyen una especies sobre otras centrándonos en mayor medida en sus crecimientos.&lt;br /&gt;
Esta información nos permite, con una vista más global, poder conocer los caracteres de cada ecosistema siendo de especial importancia el análisis de su estabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Resolución numérica===&lt;br /&gt;
&lt;br /&gt;
====Euler====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Euler&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
&lt;br /&gt;
x(k+1)=x(k)+h*(a1*x(k)+b1*x(k)^2+c1*x(k)*y(k));&lt;br /&gt;
y(k+1)=y(k)+h*(a2*y(k)+b2*y(k)^2+c2*x(k)*y(k));&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Heun&lt;br /&gt;
for k=1:N&lt;br /&gt;
k1x=a1*x(k)+b1*x(k)^2+c1*x(k)*y(k);&lt;br /&gt;
k1y=a2*y(k)+b2*y(k)^2+c2*x(k)*y(k);&lt;br /&gt;
k2x=a1*(x(k)+h*k1x)+b1*(x(k)+h*k1x)^2+c1*(x(k)+h*k1x)*(y(k)+h*k1y); % (x(k)+h*k1x)&lt;br /&gt;
k2y=a2*(y(k)+h*k1y)+b2*(y(k)+h*k1y)^2+c2*(x(k)+h*k1x)*(y(k)+h*k1y); % (y(k)+h*k1y)&lt;br /&gt;
x(k+1)=x(k)+0.5*h*(k1x+k2x);&lt;br /&gt;
y(k+1)=y(k)+0.5*h*(k1y+k2y);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|Parasitismo Heun]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Parasitismo Euler]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos observar que en este primer caso los parametros b1 y b2 son iguales a 0, con lo que nos queda este sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+c1xy\\y'=a2y+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
                                                                (Con c1 positivo y c2 negativo)&lt;br /&gt;
&lt;br /&gt;
Este es el sistema de ecuaciones del modelo depredador-presa de Lotka-Volterra, por lo que podemos deducir que el modelo de competencia que representa es el parasitismo. También podíamos haberlo deducido observando el crecimiento de las poblaciones en la gráfica, o fijandonos en que los coeficientes c1 y c2 son uno positivo y otro negativo (una especie vive a expensas de la otra (huesped) a la cual produce perjuicios).&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la gráfica, el método de Euler es inestable para este sistema de ecuaciones, es necesario utilizar Heun para obtener la gráfica.&lt;br /&gt;
&lt;br /&gt;
Se observa que ninguna especie tiende a desaparecer ni a estabilizarse, las especies 1 y 2 oscilan en los intervalos [2,42] y [0,26] respectivamente.&lt;br /&gt;
Aunque en la gráfica parezca que la especie 2 llega a 0 individuos, esto provocaría la desaparicion de la especie. Teniendo en cuenta que medimos las problaciones en millones de habitantes, lo que a simple vista parece 0 ronda los 30.000 individuos.&lt;br /&gt;
&lt;br /&gt;
Debido al signo de los coeficientes (c1 positivo y c2 negativo), sabemos que la segunda especie influye positivamente sobre la primera, mientras que la primera influye negativamente sobre la segunda.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso1xy.jpg|500px|thumb|centro|Parasitismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si entendemos la estabilidad de un ecosistema como la tendencia a estabilizar sus poblaciones conforme aumenta el tiempo, al comparar en un gráfico ambas especies observamos que ninguna de ellas se estabiliza porque el comportamiento de ambas es cíclico, así que podemos afirmar que se trata de un ecosistema inestable.&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso2.jpg|500px|thumb|left|Neutralismo Heun]] [[Archivo:Caso2xy.jpg|500px|thumb|centre|Neutralismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por el método de Euler no da ningún problema de inestabilidad , se asemeja bastante a la gráfica definida por Heun. &lt;br /&gt;
&lt;br /&gt;
Si intentamos dar una interpretación mirando la gráfica puede haber ambigüedad y es dificil llegar a una solución certera. A simple vista podríamos interpretar que la especie 1 debido a su crecimiento influencia negativamente en el crecimiento de la otra población y llegaríamos a la conclusión de que es amensalismo.&lt;br /&gt;
                                                                                                                 &lt;br /&gt;
Para llegar a una conclusión mas acertada hay que estudiar las restricciones que se ponen en este apartado:&lt;br /&gt;
Si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos tienen un valor nulo. Esto se interpreta en que ambas especies no se influencian entre si y cada una tendría un crecimiento independiente(neutralismo). Por lo tanto no desaparece ninguna de las especies y ambas se estabilizan en el tiempo .&lt;br /&gt;
 &lt;br /&gt;
En el caso de la especie 1, a partir de t(32) la población es constate y máxima de (4)&lt;br /&gt;
&lt;br /&gt;
Y para la especie 2 desde t(21) en adelante la población es constante y mínima de (2.5)&lt;br /&gt;
&lt;br /&gt;
Por tanto podemos afirmar que es un ecosistema estable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg|500px|thumb|left|Simbiosis Heun]] [[Archivo:Caso3b.jpg|500px|thumb|centre|Simbiosis Heun. Gráfica ampliada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso tampoco tenemos ningun problema de inestabilidad al utilizar el método de Euler, se obtiene la misma gráfica que utilizando Heun.&lt;br /&gt;
De nuevo al interpretar este caso observando la gráfica no queda claro de que modelo de competencia se trata.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos otra vez en los coeficientes c1 y c2 nos damos cuenta de que ambos son positivos (ambas especies se benefician mutuamente), con lo que ahora vemos mucho mas clara la situación.&lt;br /&gt;
Se trata de una simbiosis entre 2 especies en la que inicialmente una tiende a crecer y otra a decrecer. El aumento de la especie 1 provoca un pequeño aumento final en la población de la especie 2.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica que llega hasta t=50, se puede ver que no desaparece ninguna de las especies y que ambas se estabilizan en el tiempo .&lt;br /&gt;
En el caso de la especie 1 se estabiliza alrededor de x=5.3, y en el de la especie 2 se estabiliza en torno a y=3,6.&lt;br /&gt;
&lt;br /&gt;
En este caso también podemos afirmar que se trata de un ecosistema estable, que se estabiliza con el tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso3xy.jpg|500px|thumb|centro|Simbiosis Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
Esta gráfica muestra como la especie 2 que tiende a descender desde un principio, se beneficia ligeramente del crecimiento de la especie 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Competición====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso4.jpg|500px|thumb|left|Competición Heun]] [[Archivo:Caso4xy.jpg|500px|thumb|centre|Competición Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puede observarse mediante la resolución numérica que el método de Euler sale prácticamente igual y sin grandes diferencias con respecto al método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando las gráficas vemos como en el inicio es complicado predecir un modelo, ya que ambas especies parecen salir beneficiadas. Sin embargo, pasado un tiempo se observa con claridad como la especie 1 tiende a expandirse, mientras que la segunda especie comienza a caer. Esto se traduce en un caso de competición entre especies, en la cual la una tiende a eliminar a la otra.&lt;br /&gt;
Este modelo se hace patente mediantes los coeficientes c1 y c2, ambos negativos, lo que quiere decirnos que ambas especies se perjudican la una a la otra.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica podemos ver como llegan a un cierto equilibrio con el paso del tiempo ya que tienden a estabilizarse y ninguna especie desaparece por completo.&lt;br /&gt;
&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso5.jpg|500px|thumb|left|Amensalismo Heun]] [[Archivo:Caso5xy.jpg|500px|thumb|centre|Amensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso no existe ningún problema con el método de Euler, debido a que sale la misma gráfica que si usamos el método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando la gráfica obtenida puede parecer que es un caso de competición, ya que al tiempo que la especie 1 crece, la especie 2 tiende a desaparecer.&lt;br /&gt;
&lt;br /&gt;
Pero al fijarnos en los valores de los coeficientes c1=0 y c2=-0.2 nos damos cuenta de que una especie afecta negativamente al crecimiento de la otra sin estar influenciada por ella.&lt;br /&gt;
&lt;br /&gt;
Esto supone que existe una especie inhibidora (especie 1) que produce efectos negativos en la especie amensal (especie 2) sin obtener ningún beneficio.&lt;br /&gt;
La especie 1 a partir de t(8) tiende a estabilizarse, con población constante, alcanzando un máximo (25); mientras la especie 2 a partir de t(4) desaparece.&lt;br /&gt;
&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso6.jpg|500px|thumb|left|Comensalismo Heun]] [[Archivo:Caso6xy.jpg|500px|thumb|centre|Comensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al igual que en la mayoría de casos previos, el método de Euler presenta un error muy similar al de Heun siendo los resultados gráficos y numéricos prácticamente iguales.&lt;br /&gt;
&lt;br /&gt;
En la última gráfica a analizar interpretamos la solución como un claro ejemplo de comensalismo en el que el crecimiento de una de las especies se ve potenciado por el de la otra mientras que el de el de esta no se altera por el de la primera.&lt;br /&gt;
&lt;br /&gt;
A priori no seriamos capaces de identificar en la gráfica la especie que fundamenta su crecimiento en la otra, mas estudiando los coeficientes de la ecuación nos damos cuenta que es la especie 2 la que se beneficia del crecimiento de la especie 1 (c1=0 y c2=0.2).&lt;br /&gt;
&lt;br /&gt;
Entendiendo la estabilidad del medio como la mínima o nula variación de las poblaciones a lo largo del tiempo, este ultimo analizado se podría considerar como tal, puesto que una vez que las poblaciones estabilizan su crecimiento de la fase inicial mantienen el número de individuos fijos alcanzándose de esta manera el equilibrio en el medio.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29015</id>
		<title>Logística con umbral</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29015"/>
				<updated>2015-03-06T21:25:28Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Comensalismo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Logística con umbral. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Marta Orellana Jimenez 309&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
==Objetivos y metodología==&lt;br /&gt;
El objetivo del trabajo es el estudio de dos problemas poblacionales independientes.&lt;br /&gt;
&lt;br /&gt;
En el primero de ellos trataremos la resolución de una ecuación logística clásica que modeliza una especie de individuos y su dependencia con el medio, lo que se traduce en un problema de valor inicial. Trataremos de resolverlo mediante distintos metodos numericos (Euler, Heun y Runge-Kutta) a la vez que le daremos un sentido tanto numérico como poblacional.&lt;br /&gt;
 &lt;br /&gt;
En el segundo analizaremos la evolución de dos especies que ocupan un mismo ecosistema, que actuaran como competidores en el uso de los recursos. Esta situacion sera la equivalente a un sistema de ecuaciones no lineal denominado modelo de competencia y para distintos valores de sus constantes analizaremos el tipo de relacion entre las especies (neutralismo, parasitismo...) asi como algunas propiedades que se pueden derivar de la misma. &lt;br /&gt;
==Dinámica de población dependiente del medio==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Considerando el problema del valor inicial;&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
y'=-ry(1-\frac{y}{M1})(1-\frac{y}{M2})\\y=y0&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
nos dispondremos a desarrollar y exponer la resolución del problema, la interpretción de los resultados obtenidos, complementando todo esto con sus gráficas correspondientes para facilitar su entendimiento.&lt;br /&gt;
===Resolución===&lt;br /&gt;
&lt;br /&gt;
Para la resolución general utilizaremos un numero de individuos iniciales igual a 60 (y0=60).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|centro|Resolución de la ecuación diferencial utilizando los métodos de Euler, Heun y RK4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% f(t,y)= -r*yy*(1-yy/m1)*(1-yy/m2)&lt;br /&gt;
&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
r=0.04;&lt;br /&gt;
m1=30;&lt;br /&gt;
m2=100;&lt;br /&gt;
y0=60;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=100;&lt;br /&gt;
hh=[1 0.1 0.01];&lt;br /&gt;
h=hh(1); &lt;br /&gt;
% Cambiando entre 1,2 y 3 elegimos el paso de tiempo que queremos.&lt;br /&gt;
% Cuidado que con 0,01 es probable que se cuelgue el ordenador.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
% Vector Euler&lt;br /&gt;
y=zeros(N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
y(1)=yy;&lt;br /&gt;
&lt;br /&gt;
% Vector Heun&lt;br /&gt;
he=zeros(N+1);&lt;br /&gt;
hh=y0;&lt;br /&gt;
he(1)=hh;&lt;br /&gt;
&lt;br /&gt;
% Vector RK4&lt;br /&gt;
rk=zeros(N+1);&lt;br /&gt;
rr=y0;&lt;br /&gt;
rk(1)=rr;&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
% Euler&lt;br /&gt;
yy=yy+h*(-r*yy*(1-yy/m1)*(1-yy/m2));&lt;br /&gt;
y(k+1)=yy;&lt;br /&gt;
% Heun&lt;br /&gt;
k1=-r*hh*(1-hh/m1)*(1-hh/m2);&lt;br /&gt;
k2=-r*(hh+k1*h)*(1-(hh+k1*h)/m1)*(1-(hh+k1*h)/m2);&lt;br /&gt;
hh=hh+0.5*h*(k1+k2);&lt;br /&gt;
he(k+1)=hh;&lt;br /&gt;
% RK4&lt;br /&gt;
% Calculamos k1=f(tn,yn) &lt;br /&gt;
k1=-r*rr*(1-rr/m1)*(1-rr/m2);&lt;br /&gt;
% Calculamos k2=f(tn+h/2,yn+1/2*h*k1) % Cambiar yy por (yy+0.5*h*k1)&lt;br /&gt;
k2=-r*(rr+1/2*h*k1)*(1-(rr+1/2*h*k1)/m1)*(1-(rr+1/2*h*k1)/m2); % Poniendo &amp;quot;(yy+1/2*h*k1)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k3=f(tn+h/2,yn+1/2*h*k2) % Cambiar yy por (yy+0.5*h*k2)&lt;br /&gt;
k3=-r*(rr+1/2*h*k2)*(1-(rr+1/2*h*k2)/m1)*(1-(rr+1/2*h*k2)/m2); % Poniendo &amp;quot;(yy+1/2*h*k2)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k4=f(tn+h,yn+h*k3) % Cambiar yy por (yy+h*k3)&lt;br /&gt;
k4=-r*(rr+h*k3)*(1-(rr+h*k3)/m1)*(1-(rr+h*k3)/m2); % Poniendo &amp;quot;(yy+h*k3)&amp;quot; en vez de yy&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
rr=rr+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
rk(k+1)=rr;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold on&lt;br /&gt;
&lt;br /&gt;
plot(t,y);&lt;br /&gt;
plot(t,he,'r');&lt;br /&gt;
plot(t,rk,'g');&lt;br /&gt;
legend('Euler','Heun','RK4')&lt;br /&gt;
&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion R');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Interpretación===&lt;br /&gt;
====General====&lt;br /&gt;
=====Numérica=====&lt;br /&gt;
Todos los métodos  dividen el dominio del tiempo en  pequeños segmentos h= ∆t y aproximan la solución de la  función para el extremo de cada segmento. Al hacer esto surgen tres posibles  problemas: la obtención del comienzo de integración, la velocidad de cálculo y los errores generados.&lt;br /&gt;
 &lt;br /&gt;
La solución de las Ecuaciones diferenciales por medio de métodos numéricos involucra varios tipos de errores:&lt;br /&gt;
 &lt;br /&gt;
 -Error del Método: por la aproximación de una curva mediante una línea recta.&lt;br /&gt;
&lt;br /&gt;
 -Local: Es la diferencia que se produce entre el valor real de la función y el aproximado mediante la recta tangente.&lt;br /&gt;
&lt;br /&gt;
 -Propagado: Acumulación de errores por las aproximaciones.&lt;br /&gt;
&lt;br /&gt;
 -Redondeo/Truncamiento: Resultado del número límite de cifras significativas que puede retener una computadora.&lt;br /&gt;
 &lt;br /&gt;
Analizando los tres casos empleados en los cálculos;&lt;br /&gt;
 &lt;br /&gt;
El método  de Euler se encarga de aproximar la curva y=F(x) por medio de una serie de segmentos en recta.&lt;br /&gt;
 &lt;br /&gt;
Debido a que la aproximación de una curva por medio de una línea recta no es exacta, se comete un error derivado del método que se puede disminuir reduciendo el valor de h, pero se obtendrá un mayor número de cálculos y, por consiguiente, un error de redondeo mucho más alto.&lt;br /&gt;
 &lt;br /&gt;
Otra fuente fundamental de error en el método de Euler se debe a que la derivada al principio del intervalo se aplica a través del intervalo entero.&lt;br /&gt;
&lt;br /&gt;
Existe una sencilla modificación que ayudan a evitar este inconveniente dando lugar al método de Heun.&lt;br /&gt;
&lt;br /&gt;
La mejora del método consiste en la aproximación a la pendiente mediante la aplicación de dos derivadas del intervalo, una en el punto inicial y otra en el final. La aproximación mejorada de la pendiente será el promedio de las dos derivadas.&lt;br /&gt;
&lt;br /&gt;
Los métodos más sencillos como el de Euler o las mejoras de este procedimiento, tienen dos defectos esenciales: la pequeña precisión del cálculo y el crecimiento sitemático de los errores.&lt;br /&gt;
&lt;br /&gt;
El procedimiento de Runge-Kutta es el que mayor precisión presenta debido a la su exactitud relativamente elevada de la solución aproximada de la ecuación diferencial.&lt;br /&gt;
&lt;br /&gt;
Todo lo expuesto anteriormente queda corroborado en la gráfica adjuntada, donde puede observarse la variaciones de precisión entre los distintos métodos en la representación de las distintas soluciones.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:INTERPRETACIONNUMERICA.jpg|500px|thumb|centro|Zoom de la gráfica para observar la diferencia entre los distintos metodos numéricos]]&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esta no es más que una ampliación de la gráfica dispuesta al inicio del trabajo, en la cual se puede comprobar que, en el caso de que la exigencia en la precisión de los cálculos no sea notoria, cualquiera de los métodos empleados, a grandes rasgos, darán resultados muy similares.&lt;br /&gt;
&lt;br /&gt;
=====Poblacional=====&lt;br /&gt;
En términos de dinámica de poblaciones la ecuación diferencial modeliza una población limitada en 100 individuos, condicionada por distintos factores del medio siendo el más limitativo del crecimiento poblacional la falta de recursos en el ecosistema donde se estudia la población. En el estudio desarrollado a continuación se parte de la base de que con poblaciones inferiores a cierto valor (30 en nuestro caso) estas serán incapaces de adaptarse al medio y prosperar, decreciendo la población de forma continuada hasta la desaparición total de esta.&lt;br /&gt;
  &lt;br /&gt;
Interpretamos, en función de los valores dados, que a partir de 30 componentes  estas agrupaciones son capaces de diversificar las funciones desarrolladas en el grupo siendo suficientes para que estas permitan el desarrollo del grupo.&lt;br /&gt;
En el caso limite, consideraríamos que de la totalidad de los individuos  se repartiría en funciones esenciales, como la obtención de alimento y la defensa del grupo, lo que permitiría un crecimiento poblacional moderado. Sin embargo, para comunidades mayores  la diversificación de  tareas, o bien, desarrollándose las mismas de forma más eficiente o pudiendo llegar a surgir otras, y mientras el factor limitativo de los recursos del medio lo permita, el crecimiento será superior al de poblaciones menores en los valores iniciales .  &lt;br /&gt;
&lt;br /&gt;
Lo expuesto previamente se cumple  hasta valores muy cercanos  al límite de individuos en ese espacio, no obstante,  en zonas cercanas al valor máximo de individuos de este estudio la pendiente en el crecimiento se ve disminuida dando lugar a  un crecimiento más lento de los experimentados previamente. Pudiera interpretarse como que, dado que los recursos empiezan a ser insuficientes, la competencia por ellos se verá incrementada dificultando en mayor medida el desarrollo del censo poblacional.&lt;br /&gt;
&lt;br /&gt;
====Casos Particulares====&lt;br /&gt;
Para un número inicial de individuos igual a 20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP5.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 20 individuos]]&lt;br /&gt;
&lt;br /&gt;
Acorde con lo ya explicado, al no superar el número límite de individuos que permitan el desarrollo de la población,esta decrecerá hasta extinguirse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para un número inicial de individuos igual a 120&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP4.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 120 individuos]]&lt;br /&gt;
&lt;br /&gt;
Como ya expusimos, al superar el número de individuos de la población el máximo permitido por el medio, estos desaparecerán hasta alcanzar el valor sostenible del medio.&lt;br /&gt;
&lt;br /&gt;
==Dinámica de población condicionada por otra especie==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Con el objetivo estudiar las interacciones de diversas especies en el medio, asi como su relación con este empleamos el modelo no lineal ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+b1x^2+c1xy\\y'=a2y+b2y^2+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicho sistema modeliza lo que conocemos como los distintos modelos de competencia (neutralismo, simbiosis o cooperación, competición, parasitismo, comensalismo, amesalismo).&lt;br /&gt;
&lt;br /&gt;
Basándonos en dicho modelo y aplicando los distintos métodos numéricos de resolución de ecuaciones diferenciales ordinarias nos dispondremos  a llevar a cabo un estudio de diversos aspectos propios de cada especie estudiada, su interacción con otras y su relación con el medio.&lt;br /&gt;
&lt;br /&gt;
Analizando los resultados obtenidos y apoyándonos en sus representaciones gráficas seremos capaces de deducir cada uno de los modelos de competencia, los extremos poblacionales de cada comunidad, sus tendencias futuras respecto a su supervivencia…&lt;br /&gt;
&lt;br /&gt;
Otro aspecto de gran relevancia es la posibilidad, mediante los grafos de las funciones programadas e  interpretación de parámetros, de conocer como influyen una especies sobre otras centrándonos en mayor medida en sus crecimientos.&lt;br /&gt;
Esta información nos permite, con una vista más global, poder conocer los caracteres de cada ecosistema siendo de especial importancia el análisis de su estabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Resolución numérica===&lt;br /&gt;
&lt;br /&gt;
====Euler====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Euler&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
&lt;br /&gt;
x(k+1)=x(k)+h*(a1*x(k)+b1*x(k)^2+c1*x(k)*y(k));&lt;br /&gt;
y(k+1)=y(k)+h*(a2*y(k)+b2*y(k)^2+c2*x(k)*y(k));&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Heun&lt;br /&gt;
for k=1:N&lt;br /&gt;
k1x=a1*x(k)+b1*x(k)^2+c1*x(k)*y(k);&lt;br /&gt;
k1y=a2*y(k)+b2*y(k)^2+c2*x(k)*y(k);&lt;br /&gt;
k2x=a1*(x(k)+h*k1x)+b1*(x(k)+h*k1x)^2+c1*(x(k)+h*k1x)*(y(k)+h*k1y); % (x(k)+h*k1x)&lt;br /&gt;
k2y=a2*(y(k)+h*k1y)+b2*(y(k)+h*k1y)^2+c2*(x(k)+h*k1x)*(y(k)+h*k1y); % (y(k)+h*k1y)&lt;br /&gt;
x(k+1)=x(k)+0.5*h*(k1x+k2x);&lt;br /&gt;
y(k+1)=y(k)+0.5*h*(k1y+k2y);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|Parasitismo Heun]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Parasitismo Euler]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos observar que en este primer caso los parametros b1 y b2 son iguales a 0, con lo que nos queda este sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+c1xy\\y'=a2y+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
                                                                (Con c1 positivo y c2 negativo)&lt;br /&gt;
&lt;br /&gt;
Este es el sistema de ecuaciones del modelo depredador-presa de Lotka-Volterra, por lo que podemos deducir que el modelo de competencia que representa es el parasitismo. También podíamos haberlo deducido observando el crecimiento de las poblaciones en la gráfica, o fijandonos en que los coeficientes c1 y c2 son uno positivo y otro negativo (una especie vive a expensas de la otra (huesped) a la cual produce perjuicios).&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la gráfica, el método de Euler es inestable para este sistema de ecuaciones, es necesario utilizar Heun para obtener la gráfica.&lt;br /&gt;
&lt;br /&gt;
Se observa que ninguna especie tiende a desaparecer ni a estabilizarse, las especies 1 y 2 oscilan en los intervalos [2,42] y [0,26] respectivamente.&lt;br /&gt;
Aunque en la gráfica parezca que la especie 2 llega a 0 individuos, esto provocaría la desaparicion de la especie. Teniendo en cuenta que medimos las problaciones en millones de habitantes, lo que a simple vista parece 0 ronda los 30.000 individuos.&lt;br /&gt;
&lt;br /&gt;
Debido al signo de los coeficientes (c1 positivo y c2 negativo), sabemos que la segunda especie influye positivamente sobre la primera, mientras que la primera influye negativamente sobre la segunda.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso1xy.jpg|500px|thumb|centro|Parasitismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si entendemos la estabilidad de un ecosistema como la tendencia a estabilizar sus poblaciones conforme aumenta el tiempo, al comparar en un gráfico ambas especies observamos que ninguna de ellas se estabiliza porque el comportamiento de ambas es cíclico, así que podemos afirmar que se trata de un ecosistema inestable.&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso2.jpg|500px|thumb|left|Neutralismo Heun]] [[Archivo:Caso2xy.jpg|500px|thumb|centre|Neutralismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por el método de Euler no da ningún problema de inestabilidad , se asemeja bastante a la gráfica definida por Heun. &lt;br /&gt;
&lt;br /&gt;
Si intentamos dar una interpretación mirando la gráfica puede haber ambigüedad y es dificil llegar a una solución certera. A simple vista podríamos interpretar que la especie 1 debido a su crecimiento influencia negativamente en el crecimiento de la otra población y llegaríamos a la conclusión de que es amensalismo.&lt;br /&gt;
                                                                                                                 &lt;br /&gt;
Para llegar a una conclusión mas acertada hay que estudiar las restricciones que se ponen en este apartado:&lt;br /&gt;
Si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos tienen un valor nulo. Esto se interpreta en que ambas especies no se influencian entre si y cada una tendría un crecimiento independiente(neutralismo). Por lo tanto no desaparece ninguna de las especies y ambas se estabilizan en el tiempo .&lt;br /&gt;
 &lt;br /&gt;
En el caso de la especie 1, a partir de t(32) la población es constate y máxima de (4)&lt;br /&gt;
&lt;br /&gt;
Y para la especie 2 desde t(21) en adelante la población es constante y mínima de (2.5)&lt;br /&gt;
&lt;br /&gt;
Por tanto podemos afirmar que es un ecosistema estable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg|500px|thumb|left|Simbiosis Heun]] [[Archivo:Caso3b.jpg|500px|thumb|centre|Simbiosis Heun. Gráfica ampliada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso tampoco tenemos ningun problema de inestabilidad al utilizar el método de Euler, se obtiene la misma gráfica que utilizando Heun.&lt;br /&gt;
De nuevo al interpretar este caso observando la gráfica no queda claro de que modelo de competencia se trata.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos otra vez en los coeficientes c1 y c2 nos damos cuenta de que ambos son positivos (ambas especies se benefician mutuamente), con lo que ahora vemos mucho mas clara la situación.&lt;br /&gt;
Se trata de una simbiosis entre 2 especies en la que inicialmente una tiende a crecer y otra a decrecer. El aumento de la especie 1 provoca un pequeño aumento final en la población de la especie 2.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica que llega hasta t=50, se puede ver que no desaparece ninguna de las especies y que ambas se estabilizan en el tiempo .&lt;br /&gt;
En el caso de la especie 1 se estabiliza alrededor de x=5.3, y en el de la especie 2 se estabiliza en torno a y=3,6.&lt;br /&gt;
&lt;br /&gt;
En este caso también podemos afirmar que se trata de un ecosistema estable, que se estabiliza con el tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso3xy.jpg|500px|thumb|centro|Simbiosis Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
Esta gráfica muestra como la especie 2 que tiende a descender desde un principio, se beneficia ligeramente del crecimiento de la especie 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Competición====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso4.jpg|500px|thumb|left|Competición Heun]] [[Archivo:Caso4xy.jpg|500px|thumb|centre|Competición Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puede observarse mediante la resolución numérica que el método de Euler sale prácticamente igual y sin grandes diferencias con respecto al método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando las gráficas vemos como en el inicio es complicado predecir un modelo, ya que ambas especies parecen salir beneficiadas. Sin embargo, pasado un tiempo se observa con claridad como la especie 1 tiende a expandirse, mientras que la segunda especie comienza a caer. Esto se traduce en un caso de competición entre especies, en la cual la una tiende a eliminar a la otra.&lt;br /&gt;
Este modelo se hace patente mediantes los coeficientes c1 y c2, ambos negativos, lo que quiere decirnos que ambas especies se perjudican la una a la otra.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica podemos ver como llegan a un cierto equilibrio con el paso del tiempo ya que tienden a estabilizarse y ninguna especie desaparece por completo.&lt;br /&gt;
&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso5.jpg|500px|thumb|left|Amensalismo Heun]] [[Archivo:Caso5xy.jpg|500px|thumb|centre|Amensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso no existe ningún problema con el método de Euler, debido a que sale la misma gráfica que si usamos el método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando la gráfica obtenida puede parecer que es un caso de competición, ya que al tiempo que la especie 1 crece, la especie 2 tiende a desaparecer.&lt;br /&gt;
&lt;br /&gt;
Pero al fijarnos en los valores de los coeficientes c1=0 y c2=-0.2 nos damos cuenta de que una especie afecta negativamente al crecimiento de la otra sin estar influenciada por ella.&lt;br /&gt;
&lt;br /&gt;
Esto supone que existe una especie inhibidora (especie 1) que produce efectos negativos en la especie amensal (especie 2) sin obtener ningún beneficio.&lt;br /&gt;
La especie 1 a partir de t(8) tiende a estabilizarse, con población constante, alcanzando un máximo (25); mientras la especie 2 a partir de t(4) desaparece.&lt;br /&gt;
&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso6.jpg|500px|thumb|left|Comensalismo Heun]] [[Archivo:Caso6xy.jpg|500px|thumb|centre|Comensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al igual que en la mayoría de casos previos, el método de Euler presenta un error muy similar al de Heun siendo los resultados gráficos y numéricos prácticamente iguales.&lt;br /&gt;
&lt;br /&gt;
En la última gráfica a analizar interpretamos la solución como un claro ejemplo de comensalismo en el que el crecimiento de una de las especies se ve potenciado por el de la otra mientras que el de el de esta no se altera por el de la primera.&lt;br /&gt;
&lt;br /&gt;
A priori no seriamos capaces de identificar en la gráfica la especie que fundamenta su crecimiento en la otra, mas estudiando los coeficientes de la ecuación nos damos cuenta que es la especie 2 la que se beneficia del crecimiento de la especie 1 (c1 = 0 y c2 = 0.2).&lt;br /&gt;
&lt;br /&gt;
Entendiendo la estabilidad del medio como la mínima o nula variación de las poblaciones a lo largo del tiempo, este ultimo analizado se podría considerar como tal, puesto que una vez que las poblaciones estabilizan su crecimiento de la fase inicial mantienen el número de individuos fijos alcanzándose de esta manera el equilibrio en el medio.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29009</id>
		<title>Logística con umbral</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29009"/>
				<updated>2015-03-06T21:21:48Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Logística con umbral. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Marta Orellana Jimenez 309&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
==Objetivos y metodología==&lt;br /&gt;
El objetivo del trabajo es el estudio de dos problemas poblacionales independientes.&lt;br /&gt;
&lt;br /&gt;
En el primero de ellos trataremos la resolución de una ecuación logística clásica que modeliza una especie de individuos y su dependencia con el medio, lo que se traduce en un problema de valor inicial. Trataremos de resolverlo mediante distintos metodos numericos (Euler, Heun y Runge-Kutta) a la vez que le daremos un sentido tanto numérico como poblacional.&lt;br /&gt;
 &lt;br /&gt;
En el segundo analizaremos la evolución de dos especies que ocupan un mismo ecosistema, que actuaran como competidores en el uso de los recursos. Esta situacion sera la equivalente a un sistema de ecuaciones no lineal denominado modelo de competencia y para distintos valores de sus constantes analizaremos el tipo de relacion entre las especies (neutralismo, parasitismo...) asi como algunas propiedades que se pueden derivar de la misma. &lt;br /&gt;
==Dinámica de población dependiente del medio==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Considerando el problema del valor inicial;&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
y'=-ry(1-\frac{y}{M1})(1-\frac{y}{M2})\\y=y0&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
nos dispondremos a desarrollar y exponer la resolución del problema, la interpretción de los resultados obtenidos, complementando todo esto con sus gráficas correspondientes para facilitar su entendimiento.&lt;br /&gt;
===Resolución===&lt;br /&gt;
&lt;br /&gt;
Para la resolución general utilizaremos un numero de individuos iniciales igual a 60 (y0=60).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|centro|Resolución de la ecuación diferencial utilizando los métodos de Euler, Heun y RK4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% f(t,y)= -r*yy*(1-yy/m1)*(1-yy/m2)&lt;br /&gt;
&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
r=0.04;&lt;br /&gt;
m1=30;&lt;br /&gt;
m2=100;&lt;br /&gt;
y0=60;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=100;&lt;br /&gt;
hh=[1 0.1 0.01];&lt;br /&gt;
h=hh(1); &lt;br /&gt;
% Cambiando entre 1,2 y 3 elegimos el paso de tiempo que queremos.&lt;br /&gt;
% Cuidado que con 0,01 es probable que se cuelgue el ordenador.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
% Vector Euler&lt;br /&gt;
y=zeros(N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
y(1)=yy;&lt;br /&gt;
&lt;br /&gt;
% Vector Heun&lt;br /&gt;
he=zeros(N+1);&lt;br /&gt;
hh=y0;&lt;br /&gt;
he(1)=hh;&lt;br /&gt;
&lt;br /&gt;
% Vector RK4&lt;br /&gt;
rk=zeros(N+1);&lt;br /&gt;
rr=y0;&lt;br /&gt;
rk(1)=rr;&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
% Euler&lt;br /&gt;
yy=yy+h*(-r*yy*(1-yy/m1)*(1-yy/m2));&lt;br /&gt;
y(k+1)=yy;&lt;br /&gt;
% Heun&lt;br /&gt;
k1=-r*hh*(1-hh/m1)*(1-hh/m2);&lt;br /&gt;
k2=-r*(hh+k1*h)*(1-(hh+k1*h)/m1)*(1-(hh+k1*h)/m2);&lt;br /&gt;
hh=hh+0.5*h*(k1+k2);&lt;br /&gt;
he(k+1)=hh;&lt;br /&gt;
% RK4&lt;br /&gt;
% Calculamos k1=f(tn,yn) &lt;br /&gt;
k1=-r*rr*(1-rr/m1)*(1-rr/m2);&lt;br /&gt;
% Calculamos k2=f(tn+h/2,yn+1/2*h*k1) % Cambiar yy por (yy+0.5*h*k1)&lt;br /&gt;
k2=-r*(rr+1/2*h*k1)*(1-(rr+1/2*h*k1)/m1)*(1-(rr+1/2*h*k1)/m2); % Poniendo &amp;quot;(yy+1/2*h*k1)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k3=f(tn+h/2,yn+1/2*h*k2) % Cambiar yy por (yy+0.5*h*k2)&lt;br /&gt;
k3=-r*(rr+1/2*h*k2)*(1-(rr+1/2*h*k2)/m1)*(1-(rr+1/2*h*k2)/m2); % Poniendo &amp;quot;(yy+1/2*h*k2)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k4=f(tn+h,yn+h*k3) % Cambiar yy por (yy+h*k3)&lt;br /&gt;
k4=-r*(rr+h*k3)*(1-(rr+h*k3)/m1)*(1-(rr+h*k3)/m2); % Poniendo &amp;quot;(yy+h*k3)&amp;quot; en vez de yy&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
rr=rr+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
rk(k+1)=rr;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold on&lt;br /&gt;
&lt;br /&gt;
plot(t,y);&lt;br /&gt;
plot(t,he,'r');&lt;br /&gt;
plot(t,rk,'g');&lt;br /&gt;
legend('Euler','Heun','RK4')&lt;br /&gt;
&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion R');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Interpretación===&lt;br /&gt;
====General====&lt;br /&gt;
=====Numérica=====&lt;br /&gt;
Todos los métodos  dividen el dominio del tiempo en  pequeños segmentos h= ∆t y aproximan la solución de la  función para el extremo de cada segmento. Al hacer esto surgen tres posibles  problemas: la obtención del comienzo de integración, la velocidad de cálculo y los errores generados.&lt;br /&gt;
 &lt;br /&gt;
La solución de las Ecuaciones diferenciales por medio de métodos numéricos involucra varios tipos de errores:&lt;br /&gt;
 &lt;br /&gt;
 -Error del Método: por la aproximación de una curva mediante una línea recta.&lt;br /&gt;
&lt;br /&gt;
 -Local: Es la diferencia que se produce entre el valor real de la función y el aproximado mediante la recta tangente.&lt;br /&gt;
&lt;br /&gt;
 -Propagado: Acumulación de errores por las aproximaciones.&lt;br /&gt;
&lt;br /&gt;
 -Redondeo/Truncamiento: Resultado del número límite de cifras significativas que puede retener una computadora.&lt;br /&gt;
 &lt;br /&gt;
Analizando los tres casos empleados en los cálculos;&lt;br /&gt;
 &lt;br /&gt;
El método  de Euler se encarga de aproximar la curva y=F(x) por medio de una serie de segmentos en recta.&lt;br /&gt;
 &lt;br /&gt;
Debido a que la aproximación de una curva por medio de una línea recta no es exacta, se comete un error derivado del método que se puede disminuir reduciendo el valor de h, pero se obtendrá un mayor número de cálculos y, por consiguiente, un error de redondeo mucho más alto.&lt;br /&gt;
 &lt;br /&gt;
Otra fuente fundamental de error en el método de Euler se debe a que la derivada al principio del intervalo se aplica a través del intervalo entero.&lt;br /&gt;
&lt;br /&gt;
Existe una sencilla modificación que ayudan a evitar este inconveniente dando lugar al método de Heun.&lt;br /&gt;
&lt;br /&gt;
La mejora del método consiste en la aproximación a la pendiente mediante la aplicación de dos derivadas del intervalo, una en el punto inicial y otra en el final. La aproximación mejorada de la pendiente será el promedio de las dos derivadas.&lt;br /&gt;
&lt;br /&gt;
Los métodos más sencillos como el de Euler o las mejoras de este procedimiento, tienen dos defectos esenciales: la pequeña precisión del cálculo y el crecimiento sitemático de los errores.&lt;br /&gt;
&lt;br /&gt;
El procedimiento de Runge-Kutta es el que mayor precisión presenta debido a la su exactitud relativamente elevada de la solución aproximada de la ecuación diferencial.&lt;br /&gt;
&lt;br /&gt;
Todo lo expuesto anteriormente queda corroborado en la gráfica adjuntada, donde puede observarse la variaciones de precisión entre los distintos métodos en la representación de las distintas soluciones.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:INTERPRETACIONNUMERICA.jpg|500px|thumb|centro|Zoom de la gráfica para observar la diferencia entre los distintos metodos numéricos]]&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esta no es más que una ampliación de la gráfica dispuesta al inicio del trabajo, en la cual se puede comprobar que, en el caso de que la exigencia en la precisión de los cálculos no sea notoria, cualquiera de los métodos empleados, a grandes rasgos, darán resultados muy similares.&lt;br /&gt;
&lt;br /&gt;
=====Poblacional=====&lt;br /&gt;
En términos de dinámica de poblaciones la ecuación diferencial modeliza una población limitada en 100 individuos, condicionada por distintos factores del medio siendo el más limitativo del crecimiento poblacional la falta de recursos en el ecosistema donde se estudia la población. En el estudio desarrollado a continuación se parte de la base de que con poblaciones inferiores a cierto valor (30 en nuestro caso) estas serán incapaces de adaptarse al medio y prosperar, decreciendo la población de forma continuada hasta la desaparición total de esta.&lt;br /&gt;
  &lt;br /&gt;
Interpretamos, en función de los valores dados, que a partir de 30 componentes  estas agrupaciones son capaces de diversificar las funciones desarrolladas en el grupo siendo suficientes para que estas permitan el desarrollo del grupo.&lt;br /&gt;
En el caso limite, consideraríamos que de la totalidad de los individuos  se repartiría en funciones esenciales, como la obtención de alimento y la defensa del grupo, lo que permitiría un crecimiento poblacional moderado. Sin embargo, para comunidades mayores  la diversificación de  tareas, o bien, desarrollándose las mismas de forma más eficiente o pudiendo llegar a surgir otras, y mientras el factor limitativo de los recursos del medio lo permita, el crecimiento será superior al de poblaciones menores en los valores iniciales .  &lt;br /&gt;
&lt;br /&gt;
Lo expuesto previamente se cumple  hasta valores muy cercanos  al límite de individuos en ese espacio, no obstante,  en zonas cercanas al valor máximo de individuos de este estudio la pendiente en el crecimiento se ve disminuida dando lugar a  un crecimiento más lento de los experimentados previamente. Pudiera interpretarse como que, dado que los recursos empiezan a ser insuficientes, la competencia por ellos se verá incrementada dificultando en mayor medida el desarrollo del censo poblacional.&lt;br /&gt;
&lt;br /&gt;
====Casos Particulares====&lt;br /&gt;
Para un número inicial de individuos igual a 20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP5.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 20 individuos]]&lt;br /&gt;
&lt;br /&gt;
Acorde con lo ya explicado, al no superar el número límite de individuos que permitan el desarrollo de la población,esta decrecerá hasta extinguirse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para un número inicial de individuos igual a 120&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP4.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 120 individuos]]&lt;br /&gt;
&lt;br /&gt;
Como ya expusimos, al superar el número de individuos de la población el máximo permitido por el medio, estos desaparecerán hasta alcanzar el valor sostenible del medio.&lt;br /&gt;
&lt;br /&gt;
==Dinámica de población condicionada por otra especie==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Con el objetivo estudiar las interacciones de diversas especies en el medio, asi como su relación con este empleamos el modelo no lineal ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+b1x^2+c1xy\\y'=a2y+b2y^2+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicho sistema modeliza lo que conocemos como los distintos modelos de competencia (neutralismo, simbiosis o cooperación, competición, parasitismo, comensalismo, amesalismo).&lt;br /&gt;
&lt;br /&gt;
Basándonos en dicho modelo y aplicando los distintos métodos numéricos de resolución de ecuaciones diferenciales ordinarias nos dispondremos  a llevar a cabo un estudio de diversos aspectos propios de cada especie estudiada, su interacción con otras y su relación con el medio.&lt;br /&gt;
&lt;br /&gt;
Analizando los resultados obtenidos y apoyándonos en sus representaciones gráficas seremos capaces de deducir cada uno de los modelos de competencia, los extremos poblacionales de cada comunidad, sus tendencias futuras respecto a su supervivencia…&lt;br /&gt;
&lt;br /&gt;
Otro aspecto de gran relevancia es la posibilidad, mediante los grafos de las funciones programadas e  interpretación de parámetros, de conocer como influyen una especies sobre otras centrándonos en mayor medida en sus crecimientos.&lt;br /&gt;
Esta información nos permite, con una vista más global, poder conocer los caracteres de cada ecosistema siendo de especial importancia el análisis de su estabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Resolución numérica===&lt;br /&gt;
&lt;br /&gt;
====Euler====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Euler&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
&lt;br /&gt;
x(k+1)=x(k)+h*(a1*x(k)+b1*x(k)^2+c1*x(k)*y(k));&lt;br /&gt;
y(k+1)=y(k)+h*(a2*y(k)+b2*y(k)^2+c2*x(k)*y(k));&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Heun&lt;br /&gt;
for k=1:N&lt;br /&gt;
k1x=a1*x(k)+b1*x(k)^2+c1*x(k)*y(k);&lt;br /&gt;
k1y=a2*y(k)+b2*y(k)^2+c2*x(k)*y(k);&lt;br /&gt;
k2x=a1*(x(k)+h*k1x)+b1*(x(k)+h*k1x)^2+c1*(x(k)+h*k1x)*(y(k)+h*k1y); % (x(k)+h*k1x)&lt;br /&gt;
k2y=a2*(y(k)+h*k1y)+b2*(y(k)+h*k1y)^2+c2*(x(k)+h*k1x)*(y(k)+h*k1y); % (y(k)+h*k1y)&lt;br /&gt;
x(k+1)=x(k)+0.5*h*(k1x+k2x);&lt;br /&gt;
y(k+1)=y(k)+0.5*h*(k1y+k2y);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|Parasitismo Heun]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Parasitismo Euler]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos observar que en este primer caso los parametros b1 y b2 son iguales a 0, con lo que nos queda este sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+c1xy\\y'=a2y+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
                                                                (Con c1 positivo y c2 negativo)&lt;br /&gt;
&lt;br /&gt;
Este es el sistema de ecuaciones del modelo depredador-presa de Lotka-Volterra, por lo que podemos deducir que el modelo de competencia que representa es el parasitismo. También podíamos haberlo deducido observando el crecimiento de las poblaciones en la gráfica, o fijandonos en que los coeficientes c1 y c2 son uno positivo y otro negativo (una especie vive a expensas de la otra (huesped) a la cual produce perjuicios).&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la gráfica, el método de Euler es inestable para este sistema de ecuaciones, es necesario utilizar Heun para obtener la gráfica.&lt;br /&gt;
&lt;br /&gt;
Se observa que ninguna especie tiende a desaparecer ni a estabilizarse, las especies 1 y 2 oscilan en los intervalos [2,42] y [0,26] respectivamente.&lt;br /&gt;
Aunque en la gráfica parezca que la especie 2 llega a 0 individuos, esto provocaría la desaparicion de la especie. Teniendo en cuenta que medimos las problaciones en millones de habitantes, lo que a simple vista parece 0 ronda los 30.000 individuos.&lt;br /&gt;
&lt;br /&gt;
Debido al signo de los coeficientes (c1 positivo y c2 negativo), sabemos que la segunda especie influye positivamente sobre la primera, mientras que la primera influye negativamente sobre la segunda.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso1xy.jpg|500px|thumb|centro|Parasitismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si entendemos la estabilidad de un ecosistema como la tendencia a estabilizar sus poblaciones conforme aumenta el tiempo, al comparar en un gráfico ambas especies observamos que ninguna de ellas se estabiliza porque el comportamiento de ambas es cíclico, así que podemos afirmar que se trata de un ecosistema inestable.&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso2.jpg|500px|thumb|left|Neutralismo Heun]] [[Archivo:Caso2xy.jpg|500px|thumb|centre|Neutralismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por el método de Euler no da ningún problema de inestabilidad , se asemeja bastante a la gráfica definida por Heun. &lt;br /&gt;
&lt;br /&gt;
Si intentamos dar una interpretación mirando la gráfica puede haber ambigüedad y es dificil llegar a una solución certera. A simple vista podríamos interpretar que la especie 1 debido a su crecimiento influencia negativamente en el crecimiento de la otra población y llegaríamos a la conclusión de que es amensalismo.&lt;br /&gt;
                                                                                                                 &lt;br /&gt;
Para llegar a una conclusión mas acertada hay que estudiar las restricciones que se ponen en este apartado:&lt;br /&gt;
Si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos tienen un valor nulo. Esto se interpreta en que ambas especies no se influencian entre si y cada una tendría un crecimiento independiente(neutralismo). Por lo tanto no desaparece ninguna de las especies y ambas se estabilizan en el tiempo .&lt;br /&gt;
 &lt;br /&gt;
En el caso de la especie 1, a partir de t(32) la población es constate y máxima de (4)&lt;br /&gt;
&lt;br /&gt;
Y para la especie 2 desde t(21) en adelante la población es constante y mínima de (2.5)&lt;br /&gt;
&lt;br /&gt;
Por tanto podemos afirmar que es un ecosistema estable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg|500px|thumb|left|Simbiosis Heun]] [[Archivo:Caso3b.jpg|500px|thumb|centre|Simbiosis Heun. Gráfica ampliada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso tampoco tenemos ningun problema de inestabilidad al utilizar el método de Euler, se obtiene la misma gráfica que utilizando Heun.&lt;br /&gt;
De nuevo al interpretar este caso observando la gráfica no queda claro de que modelo de competencia se trata.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos otra vez en los coeficientes c1 y c2 nos damos cuenta de que ambos son positivos (ambas especies se benefician mutuamente), con lo que ahora vemos mucho mas clara la situación.&lt;br /&gt;
Se trata de una simbiosis entre 2 especies en la que inicialmente una tiende a crecer y otra a decrecer. El aumento de la especie 1 provoca un pequeño aumento final en la población de la especie 2.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica que llega hasta t=50, se puede ver que no desaparece ninguna de las especies y que ambas se estabilizan en el tiempo .&lt;br /&gt;
En el caso de la especie 1 se estabiliza alrededor de x=5.3, y en el de la especie 2 se estabiliza en torno a y=3,6.&lt;br /&gt;
&lt;br /&gt;
En este caso también podemos afirmar que se trata de un ecosistema estable, que se estabiliza con el tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso3xy.jpg|500px|thumb|centro|Simbiosis Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
Esta gráfica muestra como la especie 2 que tiende a descender desde un principio, se beneficia ligeramente del crecimiento de la especie 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Competición====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso4.jpg|500px|thumb|left|Competición Heun]] [[Archivo:Caso4xy.jpg|500px|thumb|centre|Competición Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puede observarse mediante la resolución numérica que el método de Euler sale prácticamente igual y sin grandes diferencias con respecto al método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando las gráficas vemos como en el inicio es complicado predecir un modelo, ya que ambas especies parecen salir beneficiadas. Sin embargo, pasado un tiempo se observa con claridad como la especie 1 tiende a expandirse, mientras que la segunda especie comienza a caer. Esto se traduce en un caso de competición entre especies, en la cual la una tiende a eliminar a la otra.&lt;br /&gt;
Este modelo se hace patente mediantes los coeficientes c1 y c2, ambos negativos, lo que quiere decirnos que ambas especies se perjudican la una a la otra.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica podemos ver como llegan a un cierto equilibrio con el paso del tiempo ya que tienden a estabilizarse y ninguna especie desaparece por completo.&lt;br /&gt;
&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso5.jpg|500px|thumb|left|Amensalismo Heun]] [[Archivo:Caso5xy.jpg|500px|thumb|centre|Amensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso no existe ningún problema con el método de Euler, debido a que sale la misma gráfica que si usamos el método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando la gráfica obtenida puede parecer que es un caso de competición, ya que al tiempo que la especie 1 crece, la especie 2 tiende a desaparecer.&lt;br /&gt;
&lt;br /&gt;
Pero al fijarnos en los valores de los coeficientes c1=0 y c2=-0.2 nos damos cuenta de que una especie afecta negativamente al crecimiento de la otra sin estar influenciada por ella.&lt;br /&gt;
&lt;br /&gt;
Esto supone que existe una especie inhibidora (especie 1) que produce efectos negativos en la especie amensal (especie 2) sin obtener ningún beneficio.&lt;br /&gt;
La especie 1 a partir de t(8) tiende a estabilizarse, con población constante, alcanzando un máximo (25); mientras la especie 2 a partir de t(4) desaparece.&lt;br /&gt;
&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso6.jpg|500px|thumb|left|Comensalismo Heun]] [[Archivo:Caso6xy.jpg|500px|thumb|centre|Comensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al igual que en la mayoría de casos previos, el método de Euler presenta un error muy similar al de Heun siendo los resultados gráficos y numéricos prácticamente iguales.&lt;br /&gt;
&lt;br /&gt;
En la última gráfica a analizar interpretamos la solución como un claro ejemplo de comensalismo en el que el crecimiento de una de las especies se ve potenciado por el de la otra mientras que el de el de esta no se altera por el de la primera.&lt;br /&gt;
&lt;br /&gt;
A priori no seriamos capaces de identificar en la gráfica la especie que fundamenta su crecimiento en la otra, mas estudiando los coeficientes de la ecuación que las relaciona se conoce el papel de cada una de ellas siendo el coeficiente de la especie que no influya igual a 0 y coeficiente mayor que 0 la que influencia de manera positiva a la otra.&lt;br /&gt;
&lt;br /&gt;
Entendiendo la estabilidad del medio como la mínima o nula variación de las poblaciones a lo largo del tiempo, este ultimo analizado se podría considerar como tal, puesto que una vez que las poblaciones estabilizan su crecimiento de la fase inicial mantienen el número de individuos fijos alcanzándose de esta manera el equilibrio en el medio.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29005</id>
		<title>Logística con umbral</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29005"/>
				<updated>2015-03-06T21:20:57Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Amensalismo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Logística con umbral. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Marta Orellana Jimenez 309&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
==Objetivos y metodología==&lt;br /&gt;
El objetivo del trabajo es el estudio de dos problemas poblacionales independientes.&lt;br /&gt;
&lt;br /&gt;
En el primero de ellos trataremos la resolución de una ecuación logística clásica que modeliza una especie de individuos y su dependencia con el medio, lo que se traduce en un problema de valor inicial. Trataremos de resolverlo mediante distintos metodos numericos (Euler, Heun y Runge-Kutta) a la vez que le daremos un sentido tanto numérico como poblacional.&lt;br /&gt;
 &lt;br /&gt;
En el segundo analizaremos la evolución de dos especies que ocupan un mismo ecosistema, que actuaran como competidores en el uso de los recursos. Esta situacion sera la equivalente a un sistema de ecuaciones no lineal denominado modelo de competencia y para distintos valores de sus constantes analizaremos el tipo de relacion entre las especies (neutralismo, parasitismo...) asi como algunas propiedades que se pueden derivar de la misma. &lt;br /&gt;
==Dinámica de población dependiente del medio==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Considerando el problema del valor inicial;&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
y'=-ry(1-\frac{y}{M1})(1-\frac{y}{M2})\\y=y0&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
nos dispondremos a desarrollar y exponer la resolución del problema, la interpretción de los resultados obtenidos, complementando todo esto con sus gráficas correspondientes para facilitar su entendimiento.&lt;br /&gt;
===Resolución===&lt;br /&gt;
&lt;br /&gt;
Para la resolución general utilizaremos un numero de individuos iniciales igual a 60 (y0=60).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|centro|Resolución de la ecuación diferencial utilizando los métodos de Euler, Heun y RK4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% f(t,y)= -r*yy*(1-yy/m1)*(1-yy/m2)&lt;br /&gt;
&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
r=0.04;&lt;br /&gt;
m1=30;&lt;br /&gt;
m2=100;&lt;br /&gt;
y0=60;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=100;&lt;br /&gt;
hh=[1 0.1 0.01];&lt;br /&gt;
h=hh(1); &lt;br /&gt;
% Cambiando entre 1,2 y 3 elegimos el paso de tiempo que queremos.&lt;br /&gt;
% Cuidado que con 0,01 es probable que se cuelgue el ordenador.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
% Vector Euler&lt;br /&gt;
y=zeros(N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
y(1)=yy;&lt;br /&gt;
&lt;br /&gt;
% Vector Heun&lt;br /&gt;
he=zeros(N+1);&lt;br /&gt;
hh=y0;&lt;br /&gt;
he(1)=hh;&lt;br /&gt;
&lt;br /&gt;
% Vector RK4&lt;br /&gt;
rk=zeros(N+1);&lt;br /&gt;
rr=y0;&lt;br /&gt;
rk(1)=rr;&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
% Euler&lt;br /&gt;
yy=yy+h*(-r*yy*(1-yy/m1)*(1-yy/m2));&lt;br /&gt;
y(k+1)=yy;&lt;br /&gt;
% Heun&lt;br /&gt;
k1=-r*hh*(1-hh/m1)*(1-hh/m2);&lt;br /&gt;
k2=-r*(hh+k1*h)*(1-(hh+k1*h)/m1)*(1-(hh+k1*h)/m2);&lt;br /&gt;
hh=hh+0.5*h*(k1+k2);&lt;br /&gt;
he(k+1)=hh;&lt;br /&gt;
% RK4&lt;br /&gt;
% Calculamos k1=f(tn,yn) &lt;br /&gt;
k1=-r*rr*(1-rr/m1)*(1-rr/m2);&lt;br /&gt;
% Calculamos k2=f(tn+h/2,yn+1/2*h*k1) % Cambiar yy por (yy+0.5*h*k1)&lt;br /&gt;
k2=-r*(rr+1/2*h*k1)*(1-(rr+1/2*h*k1)/m1)*(1-(rr+1/2*h*k1)/m2); % Poniendo &amp;quot;(yy+1/2*h*k1)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k3=f(tn+h/2,yn+1/2*h*k2) % Cambiar yy por (yy+0.5*h*k2)&lt;br /&gt;
k3=-r*(rr+1/2*h*k2)*(1-(rr+1/2*h*k2)/m1)*(1-(rr+1/2*h*k2)/m2); % Poniendo &amp;quot;(yy+1/2*h*k2)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k4=f(tn+h,yn+h*k3) % Cambiar yy por (yy+h*k3)&lt;br /&gt;
k4=-r*(rr+h*k3)*(1-(rr+h*k3)/m1)*(1-(rr+h*k3)/m2); % Poniendo &amp;quot;(yy+h*k3)&amp;quot; en vez de yy&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
rr=rr+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
rk(k+1)=rr;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold on&lt;br /&gt;
&lt;br /&gt;
plot(t,y);&lt;br /&gt;
plot(t,he,'r');&lt;br /&gt;
plot(t,rk,'g');&lt;br /&gt;
legend('Euler','Heun','RK4')&lt;br /&gt;
&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion R');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Interpretación===&lt;br /&gt;
====General====&lt;br /&gt;
=====Numérica=====&lt;br /&gt;
Todos los métodos  dividen el dominio del tiempo en  pequeños segmentos h= ∆t y aproximan la solución de la  función para el extremo de cada segmento. Al hacer esto surgen tres posibles  problemas: la obtención del comienzo de integración, la velocidad de cálculo y los errores generados.&lt;br /&gt;
 &lt;br /&gt;
La solución de las Ecuaciones diferenciales por medio de métodos numéricos involucra varios tipos de errores:&lt;br /&gt;
 &lt;br /&gt;
 -Error del Método: por la aproximación de una curva mediante una línea recta.&lt;br /&gt;
&lt;br /&gt;
 -Local: Es la diferencia que se produce entre el valor real de la función y el aproximado mediante la recta tangente.&lt;br /&gt;
&lt;br /&gt;
 -Propagado: Acumulación de errores por las aproximaciones.&lt;br /&gt;
&lt;br /&gt;
 -Redondeo/Truncamiento: Resultado del número límite de cifras significativas que puede retener una computadora.&lt;br /&gt;
 &lt;br /&gt;
Analizando los tres casos empleados en los cálculos;&lt;br /&gt;
 &lt;br /&gt;
El método  de Euler se encarga de aproximar la curva y=F(x) por medio de una serie de segmentos en recta.&lt;br /&gt;
 &lt;br /&gt;
Debido a que la aproximación de una curva por medio de una línea recta no es exacta, se comete un error derivado del método que se puede disminuir reduciendo el valor de h, pero se obtendrá un mayor número de cálculos y, por consiguiente, un error de redondeo mucho más alto.&lt;br /&gt;
 &lt;br /&gt;
Otra fuente fundamental de error en el método de Euler se debe a que la derivada al principio del intervalo se aplica a través del intervalo entero.&lt;br /&gt;
&lt;br /&gt;
Existe una sencilla modificación que ayudan a evitar este inconveniente dando lugar al método de Heun.&lt;br /&gt;
&lt;br /&gt;
La mejora del método consiste en la aproximación a la pendiente mediante la aplicación de dos derivadas del intervalo, una en el punto inicial y otra en el final. La aproximación mejorada de la pendiente será el promedio de las dos derivadas.&lt;br /&gt;
&lt;br /&gt;
Los métodos más sencillos como el de Euler o las mejoras de este procedimiento, tienen dos defectos esenciales: la pequeña precisión del cálculo y el crecimiento sitemático de los errores.&lt;br /&gt;
&lt;br /&gt;
El procedimiento de Runge-Kutta es el que mayor precisión presenta debido a la su exactitud relativamente elevada de la solución aproximada de la ecuación diferencial.&lt;br /&gt;
&lt;br /&gt;
Todo lo expuesto anteriormente queda corroborado en la gráfica adjuntada, donde puede observarse la variaciones de precisión entre los distintos métodos en la representación de las distintas soluciones.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:INTERPRETACIONNUMERICA.jpg|500px|thumb|centro|Zoom de la gráfica para observar la diferencia entre los distintos metodos numéricos]]&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esta no es más que una ampliación de la gráfica dispuesta al inicio del trabajo, en la cual se puede comprobar que, en el caso de que la exigencia en la precisión de los cálculos no sea notoria, cualquiera de los métodos empleados, a grandes rasgos, darán resultados muy similares.&lt;br /&gt;
&lt;br /&gt;
=====Poblacional=====&lt;br /&gt;
En términos de dinámica de poblaciones la ecuación diferencial modeliza una población limitada en 100 individuos, condicionada por distintos factores del medio siendo el más limitativo del crecimiento poblacional la falta de recursos en el ecosistema donde se estudia la población. En el estudio desarrollado a continuación se parte de la base de que con poblaciones inferiores a cierto valor (30 en nuestro caso) estas serán incapaces de adaptarse al medio y prosperar, decreciendo la población de forma continuada hasta la desaparición total de esta.&lt;br /&gt;
  &lt;br /&gt;
Interpretamos, en función de los valores dados, que a partir de 30 componentes  estas agrupaciones son capaces de diversificar las funciones desarrolladas en el grupo siendo suficientes para que estas permitan el desarrollo del grupo.&lt;br /&gt;
En el caso limite, consideraríamos que de la totalidad de los individuos  se repartiría en funciones esenciales, como la obtención de alimento y la defensa del grupo, lo que permitiría un crecimiento poblacional moderado. Sin embargo, para comunidades mayores  la diversificación de  tareas, o bien, desarrollándose las mismas de forma más eficiente o pudiendo llegar a surgir otras, y mientras el factor limitativo de los recursos del medio lo permita, el crecimiento será superior al de poblaciones menores en los valores iniciales .  &lt;br /&gt;
&lt;br /&gt;
Lo expuesto previamente se cumple  hasta valores muy cercanos  al límite de individuos en ese espacio, no obstante,  en zonas cercanas al valor máximo de individuos de este estudio la pendiente en el crecimiento se ve disminuida dando lugar a  un crecimiento más lento de los experimentados previamente. Pudiera interpretarse como que, dado que los recursos empiezan a ser insuficientes, la competencia por ellos se verá incrementada dificultando en mayor medida el desarrollo del censo poblacional.&lt;br /&gt;
&lt;br /&gt;
====Casos Particulares====&lt;br /&gt;
Para un número inicial de individuos igual a 20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP5.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 20 individuos]]&lt;br /&gt;
&lt;br /&gt;
Acorde con lo ya explicado, al no superar el número límite de individuos que permitan el desarrollo de la población,esta decrecerá hasta extinguirse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para un número inicial de individuos igual a 120&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP4.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 120 individuos]]&lt;br /&gt;
&lt;br /&gt;
Como ya expusimos, al superar el número de individuos de la población el máximo permitido por el medio, estos desaparecerán hasta alcanzar el valor sostenible del medio.&lt;br /&gt;
&lt;br /&gt;
==Dinámica de población condicionada por otra especie==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Con el objetivo estudiar las interacciones de diversas especies en el medio, asi como su relación con este empleamos el modelo no lineal ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+b1x^2+c1xy\\y'=a2y+b2y^2+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicho sistema modeliza lo que conocemos como los distintos modelos de competencia (neutralismo, simbiosis o cooperación, competición, parasitismo, comensalismo, amesalismo).&lt;br /&gt;
&lt;br /&gt;
Basándonos en dicho modelo y aplicando los distintos métodos numéricos de resolución de ecuaciones diferenciales ordinarias nos dispondremos  a llevar a cabo un estudio de diversos aspectos propios de cada especie estudiada, su interacción con otras y su relación con el medio.&lt;br /&gt;
&lt;br /&gt;
Analizando los resultados obtenidos y apoyándonos en sus representaciones gráficas seremos capaces de deducir cada uno de los modelos de competencia, los extremos poblacionales de cada comunidad, sus tendencias futuras respecto a su supervivencia…&lt;br /&gt;
&lt;br /&gt;
Otro aspecto de gran relevancia es la posibilidad, mediante los grafos de las funciones programadas e  interpretación de parámetros, de conocer como influyen una especies sobre otras centrándonos en mayor medida en sus crecimientos.&lt;br /&gt;
Esta información nos permite, con una vista más global, poder conocer los caracteres de cada ecosistema siendo de especial importancia el análisis de su estabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Resolución numérica===&lt;br /&gt;
&lt;br /&gt;
====Euler====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Euler&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
&lt;br /&gt;
x(k+1)=x(k)+h*(a1*x(k)+b1*x(k)^2+c1*x(k)*y(k));&lt;br /&gt;
y(k+1)=y(k)+h*(a2*y(k)+b2*y(k)^2+c2*x(k)*y(k));&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Heun&lt;br /&gt;
for k=1:N&lt;br /&gt;
k1x=a1*x(k)+b1*x(k)^2+c1*x(k)*y(k);&lt;br /&gt;
k1y=a2*y(k)+b2*y(k)^2+c2*x(k)*y(k);&lt;br /&gt;
k2x=a1*(x(k)+h*k1x)+b1*(x(k)+h*k1x)^2+c1*(x(k)+h*k1x)*(y(k)+h*k1y); % (x(k)+h*k1x)&lt;br /&gt;
k2y=a2*(y(k)+h*k1y)+b2*(y(k)+h*k1y)^2+c2*(x(k)+h*k1x)*(y(k)+h*k1y); % (y(k)+h*k1y)&lt;br /&gt;
x(k+1)=x(k)+0.5*h*(k1x+k2x);&lt;br /&gt;
y(k+1)=y(k)+0.5*h*(k1y+k2y);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|Parasitismo Heun]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Parasitismo Euler]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos observar que en este primer caso los parametros b1 y b2 son iguales a 0, con lo que nos queda este sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+c1xy\\y'=a2y+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
                                                                (Con c1 positivo y c2 negativo)&lt;br /&gt;
&lt;br /&gt;
Este es el sistema de ecuaciones del modelo depredador-presa de Lotka-Volterra, por lo que podemos deducir que el modelo de competencia que representa es el parasitismo. También podíamos haberlo deducido observando el crecimiento de las poblaciones en la gráfica, o fijandonos en que los coeficientes c1 y c2 son uno positivo y otro negativo (una especie vive a expensas de la otra (huesped) a la cual produce perjuicios).&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la gráfica, el método de Euler es inestable para este sistema de ecuaciones, es necesario utilizar Heun para obtener la gráfica.&lt;br /&gt;
&lt;br /&gt;
Se observa que ninguna especie tiende a desaparecer ni a estabilizarse, las especies 1 y 2 oscilan en los intervalos [2,42] y [0,26] respectivamente.&lt;br /&gt;
Aunque en la gráfica parezca que la especie 2 llega a 0 individuos, esto provocaría la desaparicion de la especie. Teniendo en cuenta que medimos las problaciones en millones de habitantes, lo que a simple vista parece 0 ronda los 30.000 individuos.&lt;br /&gt;
&lt;br /&gt;
Debido al signo de los coeficientes (c1 positivo y c2 negativo), sabemos que la segunda especie influye positivamente sobre la primera, mientras que la primera influye negativamente sobre la segunda.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso1xy.jpg|500px|thumb|centro|Parasitismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si entendemos la estabilidad de un ecosistema como la tendencia a estabilizar sus poblaciones conforme aumenta el tiempo, al comparar en un gráfico ambas especies observamos que ninguna de ellas se estabiliza porque el comportamiento de ambas es cíclico, así que podemos afirmar que se trata de un ecosistema inestable.&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso2.jpg|500px|thumb|left|Neutralismo Heun]] [[Archivo:Caso2xy.jpg|500px|thumb|centre|Neutralismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por el método de Euler no da ningún problema de inestabilidad , se asemeja bastante a la gráfica definida por Heun. &lt;br /&gt;
&lt;br /&gt;
Si intentamos dar una interpretación mirando la gráfica puede haber ambigüedad y es dificil llegar a una solución certera. A simple vista podríamos interpretar que la especie 1 debido a su crecimiento influencia negativamente en el crecimiento de la otra población y llegaríamos a la conclusión de que es amensalismo.&lt;br /&gt;
                                                                                                                 &lt;br /&gt;
Para llegar a una conclusión mas acertada hay que estudiar las restricciones que se ponen en este apartado:&lt;br /&gt;
Si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos tienen un valor nulo. Esto se interpreta en que ambas especies no se influencian entre si y cada una tendría un crecimiento independiente(neutralismo). Por lo tanto no desaparece ninguna de las especies y ambas se estabilizan en el tiempo .&lt;br /&gt;
 &lt;br /&gt;
En el caso de la especie 1, a partir de t(32) la población es constate y máxima de (4)&lt;br /&gt;
&lt;br /&gt;
Y para la especie 2 desde t(21) en adelante la población es constante y mínima de (2.5)&lt;br /&gt;
&lt;br /&gt;
Por tanto podemos afirmar que es un ecosistema estable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg|500px|thumb|left|Simbiosis Heun]] [[Archivo:Caso3b.jpg|500px|thumb|centre|Simbiosis Heun. Gráfica ampliada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso tampoco tenemos ningun problema de inestabilidad al utilizar el método de Euler, se obtiene la misma gráfica que utilizando Heun.&lt;br /&gt;
De nuevo al interpretar este caso observando la gráfica no queda claro de que modelo de competencia se trata.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos otra vez en los coeficientes c1 y c2 nos damos cuenta de que ambos son positivos (ambas especies se benefician mutuamente), con lo que ahora vemos mucho mas clara la situación.&lt;br /&gt;
Se trata de una simbiosis entre 2 especies en la que inicialmente una tiende a crecer y otra a decrecer. El aumento de la especie 1 provoca un pequeño aumento final en la población de la especie 2.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica que llega hasta t=50, se puede ver que no desaparece ninguna de las especies y que ambas se estabilizan en el tiempo .&lt;br /&gt;
En el caso de la especie 1 se estabiliza alrededor de x=5.3, y en el de la especie 2 se estabiliza en torno a y=3,6.&lt;br /&gt;
&lt;br /&gt;
En este caso también podemos afirmar que se trata de un ecosistema estable, que se estabiliza con el tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso3xy.jpg|500px|thumb|centro|Simbiosis Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
Esta gráfica muestra como la especie 2 que tiende a descender desde un principio, se beneficia ligeramente del crecimiento de la especie 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Competición====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso4.jpg|500px|thumb|left|Competición Heun]] [[Archivo:Caso4xy.jpg|500px|thumb|centre|Competición Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puede observarse mediante la resolución numérica que el método de Euler sale prácticamente igual y sin grandes diferencias con respecto al método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando las gráficas vemos como en el inicio es complicado predecir un modelo, ya que ambas especies parecen salir beneficiadas. Sin embargo, pasado un tiempo se observa con claridad como la especie 1 tiende a expandirse, mientras que la segunda especie comienza a caer. Esto se traduce en un caso de competición entre especies, en la cual la una tiende a eliminar a la otra.&lt;br /&gt;
Este modelo se hace patente mediantes los coeficientes c1 y c2, ambos negativos, lo que quiere decirnos que ambas especies se perjudican la una a la otra.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica podemos ver como llegan a un cierto equilibrio con el paso del tiempo ya que tienden a estabilizarse y ninguna especie desaparece por completo.&lt;br /&gt;
&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso5.jpg|500px|thumb|left|Amensalismo Heun]] [[Archivo:Caso5xy.jpg|500px|thumb|centre|Amensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso no existe ningún problema con el método de Euler, debido a que sale la misma gráfica que si usamos el método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando la gráfica obtenida puede parecer que es un caso de competición, ya que al tiempo que la especie 1 crece, la especie 2 tiende a desaparecer.&lt;br /&gt;
&lt;br /&gt;
Pero al fijarnos en los valores de los coeficientes c1=0 y c2=-0.2 nos damos cuenta de que una especie afecta negativamente al crecimiento de la otra sin estar influenciada por ella.&lt;br /&gt;
&lt;br /&gt;
Esto supone que existe una especie inhibidora (especie 1) que produce efectos negativos en la especie amensal (especie 2) sin obtener ningún beneficio.&lt;br /&gt;
La especie 1 a partir de t(8) tiende a estabilizarse, con población constante, alcanzando un máximo (25); mientras la especie 2 a partir de t(4) desaparece.&lt;br /&gt;
&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso6.jpg|500px|thumb|left|Comensalismo Heun]] [[Archivo:Caso6xy.jpg|500px|thumb|centre|Comensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al igual que en la mayoría de casos previos, el método de Euler presenta un error muy similar al de Heun siendo los resultados gráficos y numéricos prácticamente iguales.&lt;br /&gt;
&lt;br /&gt;
En la última gráfica a analizar interpretamos la solución como un claro ejemplo de comensalismo en el que el crecimiento de una de las especies se ve potenciado por el de la otra mientras que el de el de esta no se altera por el de la primera.&lt;br /&gt;
&lt;br /&gt;
A priori no seriamos capaces de identificar en la gráfica la especie que fundamenta su crecimiento en la otra, mas estudiando los coeficientes de la ecuación que las relaciona se conoce el papel de cada una de ellas siendo el coeficiente de la especie que no influya igual a 0 y coeficiente mayor que 0 la que influencia de manera positiva a la otra.&lt;br /&gt;
&lt;br /&gt;
Entendiendo la estabilidad del medio como la mínima o nula variación de las poblaciones a lo largo del tiempo, este ultimo analizado se podría considerar como tal, puesto que una vez que las poblaciones estabilizan su crecimiento de la fase inicial mantienen el número de individuos fijos alcanzándose de esta manera el equilibrio en el medio.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]] &lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29001</id>
		<title>Logística con umbral</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=29001"/>
				<updated>2015-03-06T21:14:22Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: /* Competición */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Logística con umbral. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Marta Orellana Jimenez 309&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
==Objetivos y metodología==&lt;br /&gt;
El objetivo del trabajo es el estudio de dos problemas poblacionales independientes.&lt;br /&gt;
&lt;br /&gt;
En el primero de ellos trataremos la resolución de una ecuación logística clásica que modeliza una especie de individuos y su dependencia con el medio, lo que se traduce en un problema de valor inicial. Trataremos de resolverlo mediante distintos metodos numericos (Euler, Heun y Runge-Kutta) a la vez que le daremos un sentido tanto numérico como poblacional.&lt;br /&gt;
 &lt;br /&gt;
En el segundo analizaremos la evolución de dos especies que ocupan un mismo ecosistema, que actuaran como competidores en el uso de los recursos. Esta situacion sera la equivalente a un sistema de ecuaciones no lineal denominado modelo de competencia y para distintos valores de sus constantes analizaremos el tipo de relacion entre las especies (neutralismo, parasitismo...) asi como algunas propiedades que se pueden derivar de la misma. &lt;br /&gt;
==Dinámica de población dependiente del medio==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Considerando el problema del valor inicial;&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
y'=-ry(1-\frac{y}{M1})(1-\frac{y}{M2})\\y=y0&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
nos dispondremos a desarrollar y exponer la resolución del problema, la interpretción de los resultados obtenidos, complementando todo esto con sus gráficas correspondientes para facilitar su entendimiento.&lt;br /&gt;
===Resolución===&lt;br /&gt;
&lt;br /&gt;
Para la resolución general utilizaremos un numero de individuos iniciales igual a 60 (y0=60).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|centro|Resolución de la ecuación diferencial utilizando los métodos de Euler, Heun y RK4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% f(t,y)= -r*yy*(1-yy/m1)*(1-yy/m2)&lt;br /&gt;
&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
r=0.04;&lt;br /&gt;
m1=30;&lt;br /&gt;
m2=100;&lt;br /&gt;
y0=60;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=100;&lt;br /&gt;
hh=[1 0.1 0.01];&lt;br /&gt;
h=hh(1); &lt;br /&gt;
% Cambiando entre 1,2 y 3 elegimos el paso de tiempo que queremos.&lt;br /&gt;
% Cuidado que con 0,01 es probable que se cuelgue el ordenador.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
% Vector Euler&lt;br /&gt;
y=zeros(N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
y(1)=yy;&lt;br /&gt;
&lt;br /&gt;
% Vector Heun&lt;br /&gt;
he=zeros(N+1);&lt;br /&gt;
hh=y0;&lt;br /&gt;
he(1)=hh;&lt;br /&gt;
&lt;br /&gt;
% Vector RK4&lt;br /&gt;
rk=zeros(N+1);&lt;br /&gt;
rr=y0;&lt;br /&gt;
rk(1)=rr;&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
% Euler&lt;br /&gt;
yy=yy+h*(-r*yy*(1-yy/m1)*(1-yy/m2));&lt;br /&gt;
y(k+1)=yy;&lt;br /&gt;
% Heun&lt;br /&gt;
k1=-r*hh*(1-hh/m1)*(1-hh/m2);&lt;br /&gt;
k2=-r*(hh+k1*h)*(1-(hh+k1*h)/m1)*(1-(hh+k1*h)/m2);&lt;br /&gt;
hh=hh+0.5*h*(k1+k2);&lt;br /&gt;
he(k+1)=hh;&lt;br /&gt;
% RK4&lt;br /&gt;
% Calculamos k1=f(tn,yn) &lt;br /&gt;
k1=-r*rr*(1-rr/m1)*(1-rr/m2);&lt;br /&gt;
% Calculamos k2=f(tn+h/2,yn+1/2*h*k1) % Cambiar yy por (yy+0.5*h*k1)&lt;br /&gt;
k2=-r*(rr+1/2*h*k1)*(1-(rr+1/2*h*k1)/m1)*(1-(rr+1/2*h*k1)/m2); % Poniendo &amp;quot;(yy+1/2*h*k1)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k3=f(tn+h/2,yn+1/2*h*k2) % Cambiar yy por (yy+0.5*h*k2)&lt;br /&gt;
k3=-r*(rr+1/2*h*k2)*(1-(rr+1/2*h*k2)/m1)*(1-(rr+1/2*h*k2)/m2); % Poniendo &amp;quot;(yy+1/2*h*k2)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k4=f(tn+h,yn+h*k3) % Cambiar yy por (yy+h*k3)&lt;br /&gt;
k4=-r*(rr+h*k3)*(1-(rr+h*k3)/m1)*(1-(rr+h*k3)/m2); % Poniendo &amp;quot;(yy+h*k3)&amp;quot; en vez de yy&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
rr=rr+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
rk(k+1)=rr;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold on&lt;br /&gt;
&lt;br /&gt;
plot(t,y);&lt;br /&gt;
plot(t,he,'r');&lt;br /&gt;
plot(t,rk,'g');&lt;br /&gt;
legend('Euler','Heun','RK4')&lt;br /&gt;
&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion R');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Interpretación===&lt;br /&gt;
====General====&lt;br /&gt;
=====Numérica=====&lt;br /&gt;
Todos los métodos  dividen el dominio del tiempo en  pequeños segmentos h= ∆t y aproximan la solución de la  función para el extremo de cada segmento. Al hacer esto surgen tres posibles  problemas: la obtención del comienzo de integración, la velocidad de cálculo y los errores generados.&lt;br /&gt;
 &lt;br /&gt;
La solución de las Ecuaciones diferenciales por medio de métodos numéricos involucra varios tipos de errores:&lt;br /&gt;
 &lt;br /&gt;
 -Error del Método: por la aproximación de una curva mediante una línea recta.&lt;br /&gt;
&lt;br /&gt;
 -Local: Es la diferencia que se produce entre el valor real de la función y el aproximado mediante la recta tangente.&lt;br /&gt;
&lt;br /&gt;
 -Propagado: Acumulación de errores por las aproximaciones.&lt;br /&gt;
&lt;br /&gt;
 -Redondeo/Truncamiento: Resultado del número límite de cifras significativas que puede retener una computadora.&lt;br /&gt;
 &lt;br /&gt;
Analizando los tres casos empleados en los cálculos;&lt;br /&gt;
 &lt;br /&gt;
El método  de Euler se encarga de aproximar la curva y=F(x) por medio de una serie de segmentos en recta.&lt;br /&gt;
 &lt;br /&gt;
Debido a que la aproximación de una curva por medio de una línea recta no es exacta, se comete un error derivado del método que se puede disminuir reduciendo el valor de h, pero se obtendrá un mayor número de cálculos y, por consiguiente, un error de redondeo mucho más alto.&lt;br /&gt;
 &lt;br /&gt;
Otra fuente fundamental de error en el método de Euler se debe a que la derivada al principio del intervalo se aplica a través del intervalo entero.&lt;br /&gt;
&lt;br /&gt;
Existe una sencilla modificación que ayudan a evitar este inconveniente dando lugar al método de Heun.&lt;br /&gt;
&lt;br /&gt;
La mejora del método consiste en la aproximación a la pendiente mediante la aplicación de dos derivadas del intervalo, una en el punto inicial y otra en el final. La aproximación mejorada de la pendiente será el promedio de las dos derivadas.&lt;br /&gt;
&lt;br /&gt;
Los métodos más sencillos como el de Euler o las mejoras de este procedimiento, tienen dos defectos esenciales: la pequeña precisión del cálculo y el crecimiento sitemático de los errores.&lt;br /&gt;
&lt;br /&gt;
El procedimiento de Runge-Kutta es el que mayor precisión presenta debido a la su exactitud relativamente elevada de la solución aproximada de la ecuación diferencial.&lt;br /&gt;
&lt;br /&gt;
Todo lo expuesto anteriormente queda corroborado en la gráfica adjuntada, donde puede observarse la variaciones de precisión entre los distintos métodos en la representación de las distintas soluciones.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:INTERPRETACIONNUMERICA.jpg|500px|thumb|centro|Zoom de la gráfica para observar la diferencia entre los distintos metodos numéricos]]&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esta no es más que una ampliación de la gráfica dispuesta al inicio del trabajo, en la cual se puede comprobar que, en el caso de que la exigencia en la precisión de los cálculos no sea notoria, cualquiera de los métodos empleados, a grandes rasgos, darán resultados muy similares.&lt;br /&gt;
&lt;br /&gt;
=====Poblacional=====&lt;br /&gt;
En términos de dinámica de poblaciones la ecuación diferencial modeliza una población limitada en 100 individuos, condicionada por distintos factores del medio siendo el más limitativo del crecimiento poblacional la falta de recursos en el ecosistema donde se estudia la población. En el estudio desarrollado a continuación se parte de la base de que con poblaciones inferiores a cierto valor (30 en nuestro caso) estas serán incapaces de adaptarse al medio y prosperar, decreciendo la población de forma continuada hasta la desaparición total de esta.&lt;br /&gt;
  &lt;br /&gt;
Interpretamos, en función de los valores dados, que a partir de 30 componentes  estas agrupaciones son capaces de diversificar las funciones desarrolladas en el grupo siendo suficientes para que estas permitan el desarrollo del grupo.&lt;br /&gt;
En el caso limite, consideraríamos que de la totalidad de los individuos  se repartiría en funciones esenciales, como la obtención de alimento y la defensa del grupo, lo que permitiría un crecimiento poblacional moderado. Sin embargo, para comunidades mayores  la diversificación de  tareas, o bien, desarrollándose las mismas de forma más eficiente o pudiendo llegar a surgir otras, y mientras el factor limitativo de los recursos del medio lo permita, el crecimiento será superior al de poblaciones menores en los valores iniciales .  &lt;br /&gt;
&lt;br /&gt;
Lo expuesto previamente se cumple  hasta valores muy cercanos  al límite de individuos en ese espacio, no obstante,  en zonas cercanas al valor máximo de individuos de este estudio la pendiente en el crecimiento se ve disminuida dando lugar a  un crecimiento más lento de los experimentados previamente. Pudiera interpretarse como que, dado que los recursos empiezan a ser insuficientes, la competencia por ellos se verá incrementada dificultando en mayor medida el desarrollo del censo poblacional.&lt;br /&gt;
&lt;br /&gt;
====Casos Particulares====&lt;br /&gt;
Para un número inicial de individuos igual a 20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP5.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 20 individuos]]&lt;br /&gt;
&lt;br /&gt;
Acorde con lo ya explicado, al no superar el número límite de individuos que permitan el desarrollo de la población,esta decrecerá hasta extinguirse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para un número inicial de individuos igual a 120&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP4.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 120 individuos]]&lt;br /&gt;
&lt;br /&gt;
Como ya expusimos, al superar el número de individuos de la población el máximo permitido por el medio, estos desaparecerán hasta alcanzar el valor sostenible del medio.&lt;br /&gt;
&lt;br /&gt;
==Dinámica de población condicionada por otra especie==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Con el objetivo estudiar las interacciones de diversas especies en el medio, asi como su relación con este empleamos el modelo no lineal ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+b1x^2+c1xy\\y'=a2y+b2y^2+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicho sistema modeliza lo que conocemos como los distintos modelos de competencia (neutralismo, simbiosis o cooperación, competición, parasitismo, comensalismo, amesalismo).&lt;br /&gt;
&lt;br /&gt;
Basándonos en dicho modelo y aplicando los distintos métodos numéricos de resolución de ecuaciones diferenciales ordinarias nos dispondremos  a llevar a cabo un estudio de diversos aspectos propios de cada especie estudiada, su interacción con otras y su relación con el medio.&lt;br /&gt;
&lt;br /&gt;
Analizando los resultados obtenidos y apoyándonos en sus representaciones gráficas seremos capaces de deducir cada uno de los modelos de competencia, los extremos poblacionales de cada comunidad, sus tendencias futuras respecto a su supervivencia…&lt;br /&gt;
&lt;br /&gt;
Otro aspecto de gran relevancia es la posibilidad, mediante los grafos de las funciones programadas e  interpretación de parámetros, de conocer como influyen una especies sobre otras centrándonos en mayor medida en sus crecimientos.&lt;br /&gt;
Esta información nos permite, con una vista más global, poder conocer los caracteres de cada ecosistema siendo de especial importancia el análisis de su estabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Resolución numérica===&lt;br /&gt;
&lt;br /&gt;
====Euler====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Euler&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
&lt;br /&gt;
x(k+1)=x(k)+h*(a1*x(k)+b1*x(k)^2+c1*x(k)*y(k));&lt;br /&gt;
y(k+1)=y(k)+h*(a2*y(k)+b2*y(k)^2+c2*x(k)*y(k));&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Heun&lt;br /&gt;
for k=1:N&lt;br /&gt;
k1x=a1*x(k)+b1*x(k)^2+c1*x(k)*y(k);&lt;br /&gt;
k1y=a2*y(k)+b2*y(k)^2+c2*x(k)*y(k);&lt;br /&gt;
k2x=a1*(x(k)+h*k1x)+b1*(x(k)+h*k1x)^2+c1*(x(k)+h*k1x)*(y(k)+h*k1y); % (x(k)+h*k1x)&lt;br /&gt;
k2y=a2*(y(k)+h*k1y)+b2*(y(k)+h*k1y)^2+c2*(x(k)+h*k1x)*(y(k)+h*k1y); % (y(k)+h*k1y)&lt;br /&gt;
x(k+1)=x(k)+0.5*h*(k1x+k2x);&lt;br /&gt;
y(k+1)=y(k)+0.5*h*(k1y+k2y);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|Parasitismo Heun]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Parasitismo Euler]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos observar que en este primer caso los parametros b1 y b2 son iguales a 0, con lo que nos queda este sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+c1xy\\y'=a2y+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
                                                                (Con c1 positivo y c2 negativo)&lt;br /&gt;
&lt;br /&gt;
Este es el sistema de ecuaciones del modelo depredador-presa de Lotka-Volterra, por lo que podemos deducir que el modelo de competencia que representa es el parasitismo. También podíamos haberlo deducido observando el crecimiento de las poblaciones en la gráfica, o fijandonos en que los coeficientes c1 y c2 son uno positivo y otro negativo (una especie vive a expensas de la otra (huesped) a la cual produce perjuicios).&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la gráfica, el método de Euler es inestable para este sistema de ecuaciones, es necesario utilizar Heun para obtener la gráfica.&lt;br /&gt;
&lt;br /&gt;
Se observa que ninguna especie tiende a desaparecer ni a estabilizarse, las especies 1 y 2 oscilan en los intervalos [2,42] y [0,26] respectivamente.&lt;br /&gt;
Aunque en la gráfica parezca que la especie 2 llega a 0 individuos, esto provocaría la desaparicion de la especie. Teniendo en cuenta que medimos las problaciones en millones de habitantes, lo que a simple vista parece 0 ronda los 30.000 individuos.&lt;br /&gt;
&lt;br /&gt;
Debido al signo de los coeficientes (c1 positivo y c2 negativo), sabemos que la segunda especie influye positivamente sobre la primera, mientras que la primera influye negativamente sobre la segunda.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso1xy.jpg|500px|thumb|centro|Parasitismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si entendemos la estabilidad de un ecosistema como la tendencia a estabilizar sus poblaciones conforme aumenta el tiempo, al comparar en un gráfico ambas especies observamos que ninguna de ellas se estabiliza porque el comportamiento de ambas es cíclico, así que podemos afirmar que se trata de un ecosistema inestable.&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso2.jpg|500px|thumb|left|Neutralismo Heun]] [[Archivo:Caso2xy.jpg|500px|thumb|centre|Neutralismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por el método de Euler no da ningún problema de inestabilidad , se asemeja bastante a la gráfica definida por Heun. &lt;br /&gt;
&lt;br /&gt;
Si intentamos dar una interpretación mirando la gráfica puede haber ambigüedad y es dificil llegar a una solución certera. A simple vista podríamos interpretar que la especie 1 debido a su crecimiento influencia negativamente en el crecimiento de la otra población y llegaríamos a la conclusión de que es amensalismo.&lt;br /&gt;
                                                                                                                 &lt;br /&gt;
Para llegar a una conclusión mas acertada hay que estudiar las restricciones que se ponen en este apartado:&lt;br /&gt;
Si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos tienen un valor nulo. Esto se interpreta en que ambas especies no se influencian entre si y cada una tendría un crecimiento independiente(neutralismo). Por lo tanto no desaparece ninguna de las especies y ambas se estabilizan en el tiempo .&lt;br /&gt;
 &lt;br /&gt;
En el caso de la especie 1, a partir de t(32) la población es constate y máxima de (4)&lt;br /&gt;
&lt;br /&gt;
Y para la especie 2 desde t(21) en adelante la población es constante y mínima de (2.5)&lt;br /&gt;
&lt;br /&gt;
Por tanto podemos afirmar que es un ecosistema estable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg|500px|thumb|left|Simbiosis Heun]] [[Archivo:Caso3b.jpg|500px|thumb|centre|Simbiosis Heun. Gráfica ampliada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso tampoco tenemos ningun problema de inestabilidad al utilizar el método de Euler, se obtiene la misma gráfica que utilizando Heun.&lt;br /&gt;
De nuevo al interpretar este caso observando la gráfica no queda claro de que modelo de competencia se trata.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos otra vez en los coeficientes c1 y c2 nos damos cuenta de que ambos son positivos (ambas especies se benefician mutuamente), con lo que ahora vemos mucho mas clara la situación.&lt;br /&gt;
Se trata de una simbiosis entre 2 especies en la que inicialmente una tiende a crecer y otra a decrecer. El aumento de la especie 1 provoca un pequeño aumento final en la población de la especie 2.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica que llega hasta t=50, se puede ver que no desaparece ninguna de las especies y que ambas se estabilizan en el tiempo .&lt;br /&gt;
En el caso de la especie 1 se estabiliza alrededor de x=5.3, y en el de la especie 2 se estabiliza en torno a y=3,6.&lt;br /&gt;
&lt;br /&gt;
En este caso también podemos afirmar que se trata de un ecosistema estable, que se estabiliza con el tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso3xy.jpg|500px|thumb|centro|Simbiosis Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
Esta gráfica muestra como la especie 2 que tiende a descender desde un principio, se beneficia ligeramente del crecimiento de la especie 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Competición====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso4.jpg|500px|thumb|left|Competición Heun]] [[Archivo:Caso4xy.jpg|500px|thumb|centre|Competición Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Puede observarse mediante la resolución numérica que el método de Euler sale prácticamente igual y sin grandes diferencias con respecto al método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando las gráficas vemos como en el inicio es complicado predecir un modelo, ya que ambas especies parecen salir beneficiadas. Sin embargo, pasado un tiempo se observa con claridad como la especie 1 tiende a expandirse, mientras que la segunda especie comienza a caer. Esto se traduce en un caso de competición entre especies, en la cual la una tiende a eliminar a la otra.&lt;br /&gt;
Este modelo se hace patente mediantes los coeficientes c1 y c2, ambos negativos, lo que quiere decirnos que ambas especies se perjudican la una a la otra.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica podemos ver como llegan a un cierto equilibrio con el paso del tiempo ya que tienden a estabilizarse y ninguna especie desaparece por completo.&lt;br /&gt;
&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso5.jpg|500px|thumb|left|Amensalismo Heun]] [[Archivo:Caso5xy.jpg|500px|thumb|centre|Amensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso no existe ningún problema con el método de Euler, debido a que sale la misma gráfica que si usamos el método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando la gráfica obtenida puede parecer que es un caso de competición, ya que al tiempo que la especie 1 crece, la especie 2 tiende a desaparecer.&lt;br /&gt;
Pero al fijarnos en que c1=0 y c2=-0.2 (términos que hacen que una especie influya sobre la otra) nos damos cuenta que se trata de amensalismo; lo que supone que existe una especie inhibidora (especie 1) que produce efectos negativos en la especie amensal (especie 2) sin obtener ningún beneficio.&lt;br /&gt;
La especie 1 a partir de t(8) tiende a estabilizarse, con población constante, alcanzando un máximo (25); mientras la especie 2 a partir de t(4) desaparece.&lt;br /&gt;
&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso6.jpg|500px|thumb|left|Comensalismo Heun]] [[Archivo:Caso6xy.jpg|500px|thumb|centre|Comensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Al igual que en la mayoría de casos previos, el método de Euler presenta un error muy similar al de Heun siendo los resultados gráficos y numéricos prácticamente iguales.&lt;br /&gt;
&lt;br /&gt;
En la última gráfica a analizar interpretamos la solución como un claro ejemplo de comensalismo en el que el crecimiento de una de las especies se ve potenciado por el de la otra mientras que el de el de esta no se altera por el de la primera.&lt;br /&gt;
&lt;br /&gt;
A priori no seriamos capaces de identificar en la gráfica la especie que fundamenta su crecimiento en la otra, mas estudiando los coeficientes de la ecuación que las relaciona se conoce el papel de cada una de ellas siendo el coeficiente de la especie que no influya igual a 0 y coeficiente mayor que 0 la que influencia de manera positiva a la otra.&lt;br /&gt;
&lt;br /&gt;
Entendiendo la estabilidad del medio como la mínima o nula variación de las poblaciones a lo largo del tiempo, este ultimo analizado se podría considerar como tal, puesto que una vez que las poblaciones estabilizan su crecimiento de la fase inicial mantienen el número de individuos fijos alcanzándose de esta manera el equilibrio en el medio.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]] &lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=28175</id>
		<title>Logística con umbral</title>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=28175"/>
				<updated>2015-03-06T13:33:51Z</updated>
		
		<summary type="html">&lt;p&gt;Feyerabend: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ TrabajoED | Logística con umbral. Grupo 24-C | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | &lt;br /&gt;
Jose Antonio Martinez Montalvo 1494&lt;br /&gt;
Jorge Sempere Ruíz 4&lt;br /&gt;
Isaac Rebollo Palos 1522&lt;br /&gt;
Marta Orellana Jimenez 309&lt;br /&gt;
Rodrigo Bellot Rodriguez 1270 }}&lt;br /&gt;
==Objetivos y metodología==&lt;br /&gt;
El objetivo del trabajo es el estudio de dos problemas poblacionales independientes.&lt;br /&gt;
&lt;br /&gt;
En el primero de ellos trataremos la resolución de una ecuación logística clásica que modeliza una especie de individuos y su dependencia con el medio, lo que se traduce en un problema de valor inicial. Trataremos de resolverlo mediante distintos metodos numericos (Euler, Heun y Runge-Kutta) a la vez que le daremos un sentido tanto numérico como poblacional.&lt;br /&gt;
 &lt;br /&gt;
En el segundo analizaremos la evolución de dos especies que ocupan un mismo ecosistema, que actuaran como competidores en el uso de los recursos. Esta situacion sera la equivalente a un sistema de ecuaciones no lineal denominado modelo de competencia y para distintos valores de sus constantes analizaremos el tipo de relacion entre las especies (neutralismo, parasitismo...) asi como algunas propiedades que se pueden derivar de la misma. &lt;br /&gt;
==Dinámica de población dependiente del medio==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Considerando el problema del valor inicial;&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
y'=-ry(1-\frac{y}{M1})(1-\frac{y}{M2})\\y=y0&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
nos dispondremos a desarrollar y exponer la resolución del problema, la interpretción de los resultados obtenidos, complementando todo esto con sus gráficas correspondientes para facilitar su entendimiento.&lt;br /&gt;
===Resolución===&lt;br /&gt;
&lt;br /&gt;
Para la resolución general utilizaremos un numero de individuos iniciales igual a 60 (y0=60).&lt;br /&gt;
&lt;br /&gt;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|centro|Resolución de la ecuación diferencial utilizando los métodos de Euler, Heun y RK4]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% f(t,y)= -r*yy*(1-yy/m1)*(1-yy/m2)&lt;br /&gt;
&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Datos&lt;br /&gt;
r=0.04;&lt;br /&gt;
m1=30;&lt;br /&gt;
m2=100;&lt;br /&gt;
y0=60;&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=100;&lt;br /&gt;
hh=[1 0.1 0.01];&lt;br /&gt;
h=hh(1); &lt;br /&gt;
% Cambiando entre 1,2 y 3 elegimos el paso de tiempo que queremos.&lt;br /&gt;
% Cuidado que con 0,01 es probable que se cuelgue el ordenador.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
% Vector Euler&lt;br /&gt;
y=zeros(N+1);&lt;br /&gt;
yy=y0;&lt;br /&gt;
y(1)=yy;&lt;br /&gt;
&lt;br /&gt;
% Vector Heun&lt;br /&gt;
he=zeros(N+1);&lt;br /&gt;
hh=y0;&lt;br /&gt;
he(1)=hh;&lt;br /&gt;
&lt;br /&gt;
% Vector RK4&lt;br /&gt;
rk=zeros(N+1);&lt;br /&gt;
rr=y0;&lt;br /&gt;
rk(1)=rr;&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
% Euler&lt;br /&gt;
yy=yy+h*(-r*yy*(1-yy/m1)*(1-yy/m2));&lt;br /&gt;
y(k+1)=yy;&lt;br /&gt;
% Heun&lt;br /&gt;
k1=-r*hh*(1-hh/m1)*(1-hh/m2);&lt;br /&gt;
k2=-r*(hh+k1*h)*(1-(hh+k1*h)/m1)*(1-(hh+k1*h)/m2);&lt;br /&gt;
hh=hh+0.5*h*(k1+k2);&lt;br /&gt;
he(k+1)=hh;&lt;br /&gt;
% RK4&lt;br /&gt;
% Calculamos k1=f(tn,yn) &lt;br /&gt;
k1=-r*rr*(1-rr/m1)*(1-rr/m2);&lt;br /&gt;
% Calculamos k2=f(tn+h/2,yn+1/2*h*k1) % Cambiar yy por (yy+0.5*h*k1)&lt;br /&gt;
k2=-r*(rr+1/2*h*k1)*(1-(rr+1/2*h*k1)/m1)*(1-(rr+1/2*h*k1)/m2); % Poniendo &amp;quot;(yy+1/2*h*k1)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k3=f(tn+h/2,yn+1/2*h*k2) % Cambiar yy por (yy+0.5*h*k2)&lt;br /&gt;
k3=-r*(rr+1/2*h*k2)*(1-(rr+1/2*h*k2)/m1)*(1-(rr+1/2*h*k2)/m2); % Poniendo &amp;quot;(yy+1/2*h*k2)&amp;quot; en vez de yy&lt;br /&gt;
% Calculamos k4=f(tn+h,yn+h*k3) % Cambiar yy por (yy+h*k3)&lt;br /&gt;
k4=-r*(rr+h*k3)*(1-(rr+h*k3)/m1)*(1-(rr+h*k3)/m2); % Poniendo &amp;quot;(yy+h*k3)&amp;quot; en vez de yy&lt;br /&gt;
% Meto los datos en el vector&lt;br /&gt;
rr=rr+h/6*(k1+2*k2+2*k3+k4);&lt;br /&gt;
rk(k+1)=rr;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
hold on&lt;br /&gt;
&lt;br /&gt;
plot(t,y);&lt;br /&gt;
plot(t,he,'r');&lt;br /&gt;
plot(t,rk,'g');&lt;br /&gt;
legend('Euler','Heun','RK4')&lt;br /&gt;
&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion R');&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Interpretación===&lt;br /&gt;
====General====&lt;br /&gt;
=====Numérica=====&lt;br /&gt;
Todos los métodos  dividen el dominio del tiempo en  pequeños segmentos h= ∆t y aproximan la solución de la  función para el extremo de cada segmento. Al hacer esto surgen tres posibles  problemas: la obtención del comienzo de integración, la velocidad de cálculo y los errores generados.&lt;br /&gt;
 &lt;br /&gt;
La solución de las Ecuaciones diferenciales por medio de métodos numéricos involucra varios tipos de errores:&lt;br /&gt;
 &lt;br /&gt;
 -Error del Método: por la aproximación de una curva mediante una línea recta.&lt;br /&gt;
&lt;br /&gt;
 -Local: Es la diferencia que se produce entre el valor real de la función y el aproximado mediante la recta tangente.&lt;br /&gt;
&lt;br /&gt;
 -Propagado: Acumulación de errores por las aproximaciones.&lt;br /&gt;
&lt;br /&gt;
 -Redondeo/Truncamiento: Resultado del número límite de cifras significativas que puede retener una computadora.&lt;br /&gt;
 &lt;br /&gt;
Analizando los tres casos empleados en los cálculos;&lt;br /&gt;
 &lt;br /&gt;
El método  de Euler se encarga de aproximar la curva y=F(x) por medio de una serie de segmentos en recta.&lt;br /&gt;
 &lt;br /&gt;
Debido a que la aproximación de una curva por medio de una línea recta no es exacta, se comete un error derivado del método que se puede disminuir reduciendo el valor de h, pero se obtendrá un mayor número de cálculos y, por consiguiente, un error de redondeo mucho más alto.&lt;br /&gt;
 &lt;br /&gt;
Otra fuente fundamental de error en el método de Euler se debe a que la derivada al principio del intervalo se aplica a través del intervalo entero.&lt;br /&gt;
&lt;br /&gt;
Existe una sencilla modificación que ayudan a evitar este inconveniente dando lugar al método de Heun.&lt;br /&gt;
&lt;br /&gt;
La mejora del método consiste en la aproximación a la pendiente mediante la aplicación de dos derivadas del intervalo, una en el punto inicial y otra en el final. La aproximación mejorada de la pendiente será el promedio de las dos derivadas.&lt;br /&gt;
&lt;br /&gt;
Los métodos más sencillos como el de Euler o las mejoras de este procedimiento, tienen dos defectos esenciales: la pequeña precisión del cálculo y el crecimiento sitemático de los errores.&lt;br /&gt;
&lt;br /&gt;
El procedimiento de Runge-Kutta es el que mayor precisión presenta debido a la su exactitud relativamente elevada de la solución aproximada de la ecuación diferencial.&lt;br /&gt;
&lt;br /&gt;
Todo lo expuesto anteriormente queda corroborado en la gráfica adjuntada, donde puede observarse la variaciones de precisión entre los distintos métodos en la representación de las distintas soluciones.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:INTERPRETACIONNUMERICA.jpg|500px|thumb|centro|Zoom de la gráfica para observar la diferencia entre los distintos metodos numéricos]]&lt;br /&gt;
&lt;br /&gt;
Sin embargo, esta no es más que una ampliación de la gráfica dispuesta al inicio del trabajo, en la cual se puede comprobar que, en el caso de que la exigencia en la precisión de los cálculos no sea notoria, cualquiera de los métodos empleados, a grandes rasgos, darán resultados muy similares.&lt;br /&gt;
&lt;br /&gt;
=====Poblacional=====&lt;br /&gt;
En términos de dinámica de poblaciones la ecuación diferencial modeliza una población limitada en 100 individuos, condicionada por distintos factores del medio siendo el más limitativo del crecimiento poblacional la falta de recursos en el ecosistema donde se estudia la población. En el estudio desarrollado a continuación se parte de la base de que con poblaciones inferiores a cierto valor (30 en nuestro caso) estas serán incapaces de adaptarse al medio y prosperar, decreciendo la población de forma continuada hasta la desaparición total de esta.&lt;br /&gt;
  &lt;br /&gt;
Interpretamos, en función de los valores dados, que a partir de 30 componentes  estas agrupaciones son capaces de diversificar las funciones desarrolladas en el grupo siendo suficientes para que estas permitan el desarrollo del grupo.&lt;br /&gt;
En el caso limite, consideraríamos que de la totalidad de los individuos  se repartiría en funciones esenciales, como la obtención de alimento y la defensa del grupo, lo que permitiría un crecimiento poblacional moderado. Sin embargo, para comunidades mayores  la diversificación de  tareas, o bien, desarrollándose las mismas de forma más eficiente o pudiendo llegar a surgir otras, y mientras el factor limitativo de los recursos del medio lo permita, el crecimiento será superior al de poblaciones menores en los valores iniciales .  &lt;br /&gt;
&lt;br /&gt;
Lo expuesto previamente se cumple  hasta valores muy cercanos  al límite de individuos en ese espacio, no obstante,  en zonas cercanas al valor máximo de individuos de este estudio la pendiente en el crecimiento se ve disminuida dando lugar a  un crecimiento más lento de los experimentados previamente. Pudiera interpretarse como que, dado que los recursos empiezan a ser insuficientes, la competencia por ellos se verá incrementada dificultando en mayor medida el desarrollo del censo poblacional.&lt;br /&gt;
&lt;br /&gt;
====Casos Particulares====&lt;br /&gt;
Para un número inicial de individuos igual a 20&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP5.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 20 individuos]]&lt;br /&gt;
&lt;br /&gt;
Acorde con lo ya explicado, al no superar el número límite de individuos que permitan el desarrollo de la población,esta decrecerá hasta extinguirse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para un número inicial de individuos igual a 120&lt;br /&gt;
&lt;br /&gt;
[[Archivo:24CAP4.jpg|500px|thumb|centro|Desarrollo de la especie con una poblacion inicial de 120 individuos]]&lt;br /&gt;
&lt;br /&gt;
Como ya expusimos, al superar el número de individuos de la población el máximo permitido por el medio, estos desaparecerán hasta alcanzar el valor sostenible del medio.&lt;br /&gt;
&lt;br /&gt;
==Dinámica de población condicionada por otra especie==&lt;br /&gt;
===Introducción===&lt;br /&gt;
Con el objetivo estudiar las interacciones de diversas especies en el medio, asi como su relación con este empleamos el modelo no lineal ;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+b1x^2+c1xy\\y'=a2y+b2y^2+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dicho sistema modeliza lo que conocemos como los distintos modelos de competencia (neutralismo, simbiosis o cooperación, competición, parasitismo, comensalismo, amesalismo).&lt;br /&gt;
&lt;br /&gt;
Basándonos en dicho modelo y aplicando los distintos métodos numéricos de resolución de ecuaciones diferenciales ordinarias nos dispondremos  a llevar a cabo un estudio de diversos aspectos propios de cada especie estudiada, su interacción con otras y su relación con el medio.&lt;br /&gt;
&lt;br /&gt;
Analizando los resultados obtenidos y apoyándonos en sus representaciones gráficas seremos capaces de deducir cada uno de los modelos de competencia, los extremos poblacionales de cada comunidad, sus tendencias futuras respecto a su supervivencia…&lt;br /&gt;
&lt;br /&gt;
Otro aspecto de gran relevancia es la posibilidad, mediante los grafos de las funciones programadas e  interpretación de parámetros, de conocer como influyen una especies sobre otras centrándonos en mayor medida en sus crecimientos.&lt;br /&gt;
Esta información nos permite, con una vista más global, poder conocer los caracteres de cada ecosistema siendo de especial importancia el análisis de su estabilidad.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Resolución numérica===&lt;br /&gt;
&lt;br /&gt;
====Euler====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Euler&lt;br /&gt;
&lt;br /&gt;
for k=1:N&lt;br /&gt;
&lt;br /&gt;
x(k+1)=x(k)+h*(a1*x(k)+b1*x(k)^2+c1*x(k)*y(k));&lt;br /&gt;
y(k+1)=y(k)+h*(a2*y(k)+b2*y(k)^2+c2*x(k)*y(k));&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
{{matlab|codigo=&lt;br /&gt;
% x' = a1*x-b1*x^2-c1*x*y&lt;br /&gt;
% y' = a2*y-b2*y^2-c2*x*y&lt;br /&gt;
&lt;br /&gt;
clear all&lt;br /&gt;
clf&lt;br /&gt;
&lt;br /&gt;
% Introduciendo el numero del caso que queremos resolver, el programa nos lo resuelve directamente.&lt;br /&gt;
Apartado=1; &lt;br /&gt;
&lt;br /&gt;
% Datos en forma de matriz&lt;br /&gt;
Datos=[-0.3 1.15 0 0 0.08 -0.09 150; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0 0 40; ...&lt;br /&gt;
        0.16 0.25 -0.04 -0.1 0.015 0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 -0.015 -0.02 20; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 -0.2 10; ...&lt;br /&gt;
        1 1 -0.04 -0.1 0 0.2 20];&lt;br /&gt;
&lt;br /&gt;
% Seleccion de los datos segun el caso que queremos resolver.&lt;br /&gt;
D=Datos(Apartado,:); &lt;br /&gt;
a1=D(1);&lt;br /&gt;
a2=D(2);&lt;br /&gt;
b1=D(3);&lt;br /&gt;
b2=D(4);&lt;br /&gt;
c1=D(5);&lt;br /&gt;
c2=D(6);&lt;br /&gt;
&lt;br /&gt;
% Discretizacion tiempo&lt;br /&gt;
t0=0;&lt;br /&gt;
tf=D(7);&lt;br /&gt;
&lt;br /&gt;
% Seleccion de tamaño de paso y creacion de vector tiempo.&lt;br /&gt;
Paso=[0.1 0.001];&lt;br /&gt;
h=Paso(1); % Cambiando el valor entre 1 y 2 elegimos el paso de tiempo que queremos.&lt;br /&gt;
N=(tf-t0)/h;&lt;br /&gt;
t=t0:h:tf;&lt;br /&gt;
&lt;br /&gt;
y=zeros(1,N+1);&lt;br /&gt;
x=zeros(1,N+1);&lt;br /&gt;
x(1)=2;&lt;br /&gt;
y(1)=7;&lt;br /&gt;
&lt;br /&gt;
% Resolucion con Heun&lt;br /&gt;
for k=1:N&lt;br /&gt;
k1x=a1*x(k)+b1*x(k)^2+c1*x(k)*y(k);&lt;br /&gt;
k1y=a2*y(k)+b2*y(k)^2+c2*x(k)*y(k);&lt;br /&gt;
k2x=a1*(x(k)+h*k1x)+b1*(x(k)+h*k1x)^2+c1*(x(k)+h*k1x)*(y(k)+h*k1y); % (x(k)+h*k1x)&lt;br /&gt;
k2y=a2*(y(k)+h*k1y)+b2*(y(k)+h*k1y)^2+c2*(x(k)+h*k1x)*(y(k)+h*k1y); % (y(k)+h*k1y)&lt;br /&gt;
x(k+1)=x(k)+0.5*h*(k1x+k2x);&lt;br /&gt;
y(k+1)=y(k)+0.5*h*(k1y+k2y);&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
figure(1)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(t,x,'g');&lt;br /&gt;
plot(t,y,'r');&lt;br /&gt;
legend('Especie 1', 'Especie 2')&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Tiempo');&lt;br /&gt;
ylabel('Poblacion');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
figure(2)&lt;br /&gt;
clf&lt;br /&gt;
hold on&lt;br /&gt;
plot(x,y);&lt;br /&gt;
grid minor;&lt;br /&gt;
xlabel('Especie 1');&lt;br /&gt;
ylabel('Especie 2');&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|Parasitismo Heun]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Parasitismo Euler]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Podemos observar que en este primer caso los parametros b1 y b2 son iguales a 0, con lo que nos queda este sistema de ecuaciones:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \left\{\begin{matrix}&lt;br /&gt;
x'=a1x+c1xy\\y'=a2y+c2xy&lt;br /&gt;
\end{matrix}\right. &amp;lt;/math&amp;gt;&lt;br /&gt;
                                                                (Con c1 positivo y c2 negativo)&lt;br /&gt;
&lt;br /&gt;
Este es el sistema de ecuaciones del modelo depredador-presa de Lotka-Volterra, por lo que podemos deducir que el modelo de competencia que representa es el parasitismo. También podíamos haberlo deducido observando el crecimiento de las poblaciones en la gráfica, o fijandonos en que los coeficientes c1 y c2 son uno positivo y otro negativo (una especie vive a expensas de la otra (huesped) a la cual produce perjuicios).&lt;br /&gt;
&lt;br /&gt;
Como podemos ver en la gráfica, el método de Euler es inestable para este sistema de ecuaciones, es necesario utilizar Heun para obtener la gráfica.&lt;br /&gt;
&lt;br /&gt;
Se observa que ninguna especie tiende a desaparecer ni a estabilizarse, las especies 1 y 2 oscilan en los intervalos [2,42] y [0,26] respectivamente.&lt;br /&gt;
Aunque en la gráfica parezca que la especie 2 llega a 0 individuos, esto provocaría la desaparicion de la especie. Teniendo en cuenta que medimos las problaciones en millones de habitantes, lo que a simple vista parece 0 ronda los 30.000 individuos.&lt;br /&gt;
&lt;br /&gt;
Debido al signo de los coeficientes (c1 positivo y c2 negativo), sabemos que la segunda especie influye positivamente sobre la primera, mientras que la primera influye negativamente sobre la segunda.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso1xy.jpg|500px|thumb|centro|Parasitismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si entendemos la estabilidad de un ecosistema como la tendencia a estabilizar sus poblaciones conforme aumenta el tiempo, al comparar en un gráfico ambas especies observamos que ninguna de ellas se estabiliza porque el comportamiento de ambas es cíclico, así que podemos afirmar que se trata de un ecosistema inestable.&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso2.jpg|500px|thumb|left|Neutralismo Heun]] [[Archivo:Caso2xy.jpg|500px|thumb|centre|Neutralismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Por el método de Euler no da ningún problema de inestabilidad , se asemeja bastante a la gráfica definida por Heun. &lt;br /&gt;
&lt;br /&gt;
Si intentamos dar una interpretación mirando la gráfica puede haber ambigüedad y es dificil llegar a una solución certera. A simple vista podríamos interpretar que la especie 1 debido a su crecimiento influencia negativamente en el crecimiento de la otra población y llegaríamos a la conclusión de que es amensalismo.&lt;br /&gt;
                                                                                                                 &lt;br /&gt;
Para llegar a una conclusión mas acertada hay que estudiar las restricciones que se ponen en este apartado:&lt;br /&gt;
Si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos tienen un valor nulo. Esto se interpreta en que ambas especies no se influencian entre si y cada una tendría un crecimiento independiente(neutralismo). Por lo tanto no desaparece ninguna de las especies y ambas se estabilizan en el tiempo .&lt;br /&gt;
 &lt;br /&gt;
En el caso de la especie 1, a partir de t(32) la población es constate y máxima de (4)&lt;br /&gt;
&lt;br /&gt;
Y para la especie 2 desde t(21) en adelante la población es constante y mínima de (2.5)&lt;br /&gt;
&lt;br /&gt;
Por tanto podemos afirmar que es un ecosistema estable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg|500px|thumb|left|Simbiosis Heun]] [[Archivo:Caso3b.jpg|500px|thumb|centre|Simbiosis Heun. Gráfica ampliada]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso tampoco tenemos ningun problema de inestabilidad al utilizar el método de Euler, se obtiene la misma gráfica que utilizando Heun.&lt;br /&gt;
De nuevo al interpretar este caso observando la gráfica no queda claro de que modelo de competencia se trata.&lt;br /&gt;
&lt;br /&gt;
Si nos fijamos otra vez en los coeficientes c1 y c2 nos damos cuenta de que ambos son positivos (ambas especies se benefician mutuamente), con lo que ahora vemos mucho mas clara la situación.&lt;br /&gt;
Se trata de una simbiosis entre 2 especies en la que inicialmente una tiende a crecer y otra a decrecer. El aumento de la especie 1 provoca un pequeño aumento final en la población de la especie 2.&lt;br /&gt;
&lt;br /&gt;
Si observamos la gráfica que llega hasta t=50, se puede ver que no desaparece ninguna de las especies y que ambas se estabilizan en el tiempo .&lt;br /&gt;
En el caso de la especie 1 se estabiliza alrededor de x=5.3, y en el de la especie 2 se estabiliza en torno a y=3,6.&lt;br /&gt;
&lt;br /&gt;
En este caso también podemos afirmar que se trata de un ecosistema estable, que se estabiliza con el tiempo.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso3xy.jpg|500px|thumb|centro|Simbiosis Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
Esta gráfica muestra como la especie 2 que tiende a descender desde un principio, se beneficia ligeramente del crecimiento de la especie 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Competición====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso4.jpg|500px|thumb|left|Competición Heun]] [[Archivo:Caso4xy.jpg|500px|thumb|centre|Competición Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bla bla bla bla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso5.jpg|500px|thumb|left|Amensalismo Heun]] [[Archivo:Caso5xy.jpg|500px|thumb|centre|Amensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En este caso no existe ningún problema con el método de Euler, debido a que sale la misma gráfica que si usamos el método de Heun.&lt;br /&gt;
&lt;br /&gt;
Observando la gráfica obtenida puede parecer que es un caso de competición, ya que al tiempo que la especie 1 crece, la especie 2 tiende a desaparecer.&lt;br /&gt;
Pero al fijarnos en que c1=0 y c2=-0.2 (términos que hacen que una especie influya sobre la otra) nos damos cuenta que se trata de amensalismo; lo que supone que existe una especie inhibidora (especie 1) que produce efectos negativos en la especie amensal (especie 2) sin obtener ningún beneficio.&lt;br /&gt;
La especie 1 a partir de t(8) tiende a estabilizarse, con población constante, alcanzando un máximo (25); mientras la especie 2 a partir de t(4) desaparece.&lt;br /&gt;
&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Caso6.jpg|500px|thumb|left|Comensalismo Heun]] [[Archivo:Caso6xy.jpg|500px|thumb|centre|Comensalismo Heun. Relación Especie 1- Especie 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bla bla bla bla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Categoría:Ecuaciones Diferentiales]] &lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;/div&gt;</summary>
		<author><name>Feyerabend</name></author>	</entry>

	</feed>