<?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=Poisonmoison</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=Poisonmoison"/>
		<link rel="alternate" type="text/html" href="https://mat.caminos.upm.es/wiki/Especial:Contribuciones/Poisonmoison"/>
		<updated>2026-04-23T12:18:41Z</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=30154</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=30154"/>
				<updated>2015-05-14T16:17:41Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Condiciones tipo Newman */&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\\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>Poisonmoison</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=30152</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=30152"/>
				<updated>2015-05-14T16:16:28Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Condiciones tipo Newman */&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;
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>Poisonmoison</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=30151</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=30151"/>
				<updated>2015-05-14T16:14:19Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Condiciones tipo Newman */&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;
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;
 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}\\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>Poisonmoison</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=30137</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=30137"/>
				<updated>2015-05-14T15:54:28Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Condiciones tipo Newman */&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;
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>Poisonmoison</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=30134</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=30134"/>
				<updated>2015-05-14T15:47:25Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Condiciones tipo Newman */&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;
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>Poisonmoison</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=30089</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=30089"/>
				<updated>2015-05-14T15:15:45Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Condiciones tipo Newman */&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;
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>Poisonmoison</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=30037</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=30037"/>
				<updated>2015-05-14T14:11:08Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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;
====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;
% Aproximar la ecuacion del difusion con el metodo de Fourier&lt;br /&gt;
% u_t-u_xx=0&lt;br /&gt;
% u_x(0,t)=0&lt;br /&gt;
% u_x(L,t)=0&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos de la aproximacion&lt;br /&gt;
Q=1; % Numero de coeficientes de Fourier&lt;br /&gt;
N=50; % Numero de intervalos en 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;
% Calculamos la aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)];&lt;br /&gt;
for k=0:1&lt;br /&gt;
phi=cos((k*pi/5)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/25*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(2,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/5)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/25*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(2,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/5)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/25*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(2,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/5)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/25*t);&lt;br /&gt;
sol=sol+T'*phi;&lt;br /&gt;
end&lt;br /&gt;
[xx,tt]=meshgrid(x,t);&lt;br /&gt;
subplot(2,2,4);&lt;br /&gt;
surf(xx,tt,sol)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Las gráficas obtenidas serían:&lt;br /&gt;
&lt;br /&gt;
El código en MATLAB del método de Fourier con '''20 términos de la serie''' sería:&lt;br /&gt;
&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
clear all&lt;br /&gt;
% Aproximar la ecuacion del difusion con el metodo de Fourier&lt;br /&gt;
% u_t-u_xx=0&lt;br /&gt;
% u_x(0,t)=0&lt;br /&gt;
% u_x(L,t)=0&lt;br /&gt;
% u(x,0)=u0(x)&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=7;&lt;br /&gt;
T=0.5;&lt;br /&gt;
% Datos de la aproximacion&lt;br /&gt;
Q=20; % Numero de coeficientes de Fourier&lt;br /&gt;
N=50; % Numero de intervalos en 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;
% Calculamos la aproximacion&lt;br /&gt;
sol=zeros(length(t),N+1);&lt;br /&gt;
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)];&lt;br /&gt;
for k=0:Q&lt;br /&gt;
phi=cos((k*pi/5)*x);&lt;br /&gt;
a=(trapz(x,u0.*phi))/(trapz(x,phi.^2));&lt;br /&gt;
T=a*exp(-(k^2)*(pi^2)*1/25*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;
Y su gráfica correspondiente:&lt;br /&gt;
&lt;br /&gt;
Si cambiamos el valor de T=0.5 por T=5, 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;
==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>Poisonmoison</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=30027</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=30027"/>
				<updated>2015-05-14T14:01:29Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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;
==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;
% Aproximar la ecuacion de difusion de una sustancia contaminante&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(0,t)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=5;&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;
% Dibujamos&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>Poisonmoison</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=30025</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=30025"/>
				<updated>2015-05-14T13:59:18Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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π/5)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;
==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;
% Aproximar la ecuacion de difusion de una sustancia contaminante&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(0,t)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=5;&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;
% Dibujamos&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>Poisonmoison</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=30016</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=30016"/>
				<updated>2015-05-14T13:50:38Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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}^{5} u_0cos(kπ/5)x\, dx}{\displaystyle\int_{0}^{5} cos^2(kπ/5)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π/5)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;
==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;
% Aproximar la ecuacion de difusion de una sustancia contaminante&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(0,t)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=5;&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;
% Dibujamos&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>Poisonmoison</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=30014</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=30014"/>
				<updated>2015-05-14T13:47:09Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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}{25}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/5)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}^{5} u_0cos(kπ/5)x\, dx}{\displaystyle\int_{0}^{5} cos^2(kπ/5)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π/5)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;
==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;
% Aproximar la ecuacion de difusion de una sustancia contaminante&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(0,t)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=5;&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;
% Dibujamos&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>Poisonmoison</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=29949</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=29949"/>
				<updated>2015-05-14T11:23:54Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
gráfica del comportamiento de la concentración a lo largo del tiempo&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;
% 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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}\\y''+μy=0 ,x\in\ (0,7)\\y'(0)=0\\y'(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}{25}&amp;lt;/math&amp;gt;:&lt;br /&gt;
&amp;lt;math&amp;gt;φ_k=cos(kπ/5)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}^{5} u_0cos(kπ/5)x\, dx}{\displaystyle\int_{0}^{5} cos^2(kπ/5)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π/5)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;
==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;
% Aproximar la ecuacion de difusion de una sustancia contaminante&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(0,t)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=5;&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;
% Dibujamos&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>Poisonmoison</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=29922</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=29922"/>
				<updated>2015-05-14T10:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
gráfica del comportamiento de la concentración a lo largo del tiempo&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;
% 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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;
==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;
% Aproximar la ecuacion de difusion de una sustancia contaminante&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(0,t)=u0(x)&lt;br /&gt;
%%%&lt;br /&gt;
% Datos del problema&lt;br /&gt;
L=5;&lt;br /&gt;
T=5;&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;
% Dibujamos&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>Poisonmoison</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=29919</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=29919"/>
				<updated>2015-05-14T10:40:33Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
gráfica del comportamiento de la concentración a lo largo del tiempo&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;
% 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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;
==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;
===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>Poisonmoison</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=29916</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=29916"/>
				<updated>2015-05-14T10:24:22Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
gráfica del comportamiento de la concentración a lo largo del tiempo&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;
% 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&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>Poisonmoison</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=29909</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=29909"/>
				<updated>2015-05-14T10:07:52Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&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>Poisonmoison</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=29908</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=29908"/>
				<updated>2015-05-14T09:59:31Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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;
==Solución estacionaria==&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&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>Poisonmoison</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=29907</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=29907"/>
				<updated>2015-05-14T09:43:54Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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;
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;
==Solución estacionaria==&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&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>Poisonmoison</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=29905</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=29905"/>
				<updated>2015-05-14T09:41:11Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====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;
===Método de Furier===&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&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>Poisonmoison</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=29904</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=29904"/>
				<updated>2015-05-14T09:40:41Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de 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=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 de Euler implicito&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;
====Heun====&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&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>Poisonmoison</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=29903</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=29903"/>
				<updated>2015-05-14T09:39:59Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* 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 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
{{matlab| codigo=&lt;br /&gt;
% Aproximar la ecuacion de la difusión 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=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 para euler explicito&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=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;
====Euler implícito====&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&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>Poisonmoison</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=29902</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=29902"/>
				<updated>2015-05-14T09:38:59Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Método diferencias finitas */&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 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;
=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;
% Aproximar la ecuacion de 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=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)/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;
====Euler explícito====&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&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>Poisonmoison</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=29895</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=29895"/>
				<updated>2015-05-14T09:14:26Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Método diferencias finitas */&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 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;
=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;
El método de diferencias finitas nos da una aproximación de la solución  numérica de dicho sistema&lt;br /&gt;
 &lt;br /&gt;
En primer lugar dividimos el intervalo [0,7] definiendo h como la anchura de paso&lt;br /&gt;
&lt;br /&gt;
En segundo lugar, se aplica la ecuación diferencial   Xn, sustituyendo la derivada u&amp;lt;sub&amp;gt;xx&amp;lt;/sub&amp;gt; por esta aproximación de segundo orden:&lt;br /&gt;
&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;
 Siendo  &amp;lt;math&amp;gt; u_n(t) = u(x_n,t)&amp;lt;/math&amp;gt; ,obtenemos un sistema de N+1 ecuaciones, al aplicar la ecuación diferencial para cada n:&lt;br /&gt;
&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;
n=1,2,3..,N-1 &lt;br /&gt;
&lt;br /&gt;
pasamos a un lado y da la igual da siguiente:&lt;br /&gt;
 &amp;lt;math&amp;gt;u'_n(t)\simeq\frac{u_{n+1}(t)-u_{n-1}(t)}{h2}&amp;lt;/math&amp;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;
====Euler explícito====&lt;br /&gt;
====Euler implícito====&lt;br /&gt;
====Heun====&lt;br /&gt;
&lt;br /&gt;
===Método de Furier===&lt;br /&gt;
==Solución estacionaria==&lt;br /&gt;
==Variación de las condiciones de frontera==&lt;br /&gt;
===Condición limpiador===&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>Poisonmoison</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=27420</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=27420"/>
				<updated>2015-03-06T09:29:16Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Neutralismo */&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;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|derecha|Representación gráfica del dominio de las funciones (MATLAB)]]&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;
&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;
===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]]&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;
=====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]]&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]]&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;
==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;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|figure2]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Zoom figure2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
[[Archivo:Caso2.jpg]]&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;
   si intentamos dar una interpretación Mirando la gráfica puede dar ambigüedad y no llegar a una solución certera,&lt;br /&gt;
   a simple vista podríamos interpretar que la especie-1 debido a su crecimiento influencia negativamente en el crecimiento de la&lt;br /&gt;
   otra población y llegaríamos a la conclusión de que es amensalismo&lt;br /&gt;
                                                                                                                 &lt;br /&gt;
   Para tener una conclusión mas aproximada hay que estudiar las restricciones que se proponen para este apartado:&lt;br /&gt;
   si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos  su valor es nulo&lt;br /&gt;
   eso se interpreta en que ambas especies no se influencian para nada y cada uno tendría un crecimiento independiente  &lt;br /&gt;
   (neutralismo) por lo tanto no desaparece ninguna de las especies y ambas se estabilizan en el tiempo .&lt;br /&gt;
 &lt;br /&gt;
   Se estabilizan  , en easo de la especie-1 ,existe a partir de t(32) en adelante una población constate y máxima de (4)&lt;br /&gt;
   Y para la especie-2:existe a partir de t(21) en adelante una población constante y minina de (2.5)&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg]]&lt;br /&gt;
====Competición====&lt;br /&gt;
[[Archivo:Caso4.jpg]]&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
[[Archivo:Caso5.jpg]]&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
[[Archivo:Caso6.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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 Diferentiales]] &lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;/div&gt;</summary>
		<author><name>Poisonmoison</name></author>	</entry>

	<entry>
		<id>https://mat.caminos.upm.es/w/index.php?title=Log%C3%ADstica_con_umbral&amp;diff=26316</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=26316"/>
				<updated>2015-03-05T11:59:21Z</updated>
		
		<summary type="html">&lt;p&gt;Poisonmoison: /* Neutralismo */&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;
[[Archivo:RESOLUCIONGENERAL.jpg|600px|miniaturadeimagen|derecha|Representación gráfica del dominio de las funciones (MATLAB)]]&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;
&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;
===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]]&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;
=====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]]&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]]&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;
==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;
===Casos Particulares===&lt;br /&gt;
====Parasitismo====&lt;br /&gt;
[[Archivo:Caso1.jpg|500px|thumb|left|figure2]] [[Archivo:Caso1inestable.jpg|500px|thumb|centre|Zoom figure2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Neutralismo====&lt;br /&gt;
[[Archivo:Caso2.jpg]]&lt;br /&gt;
&lt;br /&gt;
1.   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;
2a&lt;br /&gt;
    Mirando la gráfica puede dar ambigüedad y no llegar a una solución certera.&lt;br /&gt;
    A simple vista podríamos interpretar que la especie-1 debido a su crecimiento influencia negativamente en el crecimiento del otro&lt;br /&gt;
    población y llegaríamos a la conclusión de que es amensalismo&lt;br /&gt;
                                                                                                                 produciendo un descenso de su &lt;br /&gt;
   Para tener una conclusión mas aproximada hay que estudiar las restricciones que se proponen para este apartado:&lt;br /&gt;
   si nos fijamos en el modelo de competencia y sus restricciones en los coeficientes c1 y c2 , ambos  su valor es nulo&lt;br /&gt;
   eso se interpreta en que ambas especies no se influencia para nada y cada uno tendría un crecimiento independiente (neutralismo)&lt;br /&gt;
2b&lt;br /&gt;
   especie-1:existe a partir de t(32) en adelante una población constate y máxima de (4)&lt;br /&gt;
   especie-2:existe a partir de t(21) en adelante una población constante y minina de (2.5)&lt;br /&gt;
3. &lt;br /&gt;
   como podemos apreciar en la gráfica no desaparece ninguna especie, y ambas se estabilizan en el tiempo &lt;br /&gt;
4. &lt;br /&gt;
   en este caso,ninguna de las especies influencia a la otra y el crecimiento es independiente puesto que (c1=0 y c2=0) &lt;br /&gt;
5.&lt;br /&gt;
   tiene un ecosistema estable puesto que ambas especies según el tiempo aumenta se mantiene constante sin ninguna variación significativa&lt;br /&gt;
&lt;br /&gt;
====Simbiosis====&lt;br /&gt;
[[Archivo:Caso3.jpg]]&lt;br /&gt;
====Competición====&lt;br /&gt;
[[Archivo:Caso4.jpg]]&lt;br /&gt;
====Amensalismo====&lt;br /&gt;
[[Archivo:Caso5.jpg]]&lt;br /&gt;
====Comensalismo====&lt;br /&gt;
[[Archivo:Caso6.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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 Diferentiales]] &lt;br /&gt;
[[Categoría:ED14/15]]&lt;br /&gt;
[[Categoría:Trabajos 2014-15]]&lt;/div&gt;</summary>
		<author><name>Poisonmoison</name></author>	</entry>

	</feed>