Diferencia entre revisiones de «Difusión de una sustancia contaminante (Grupo 10)»

De MateWiki
Saltar a: navegación, buscar
(Resolución por el método de Fourier)
 
(No se muestran 145 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
[[Archivo:nuriat.png|200px|thumb|right|Tubo con sustancia contaminante]]
+
{{ TrabajoED | Difusión de una sustancia contaminante. Grupo 10-B | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED13/14|Curso 2013-14]] | Alejandro Giménez Alves, Miguel Aparicio Martín Romo, Nuria Trapote García, Karlo André Palomino Paredes }}
 +
[[Archivo:nuriat.png|500px|thumb|right|Tubo con sustancia contaminante]]
 
La difusión implica un movimiento espontáneo y desordenado de moléculas individuales y, especialmente, nos interesa la difusión de moléculas de una sustancia disuelta en otra.
 
La difusión implica un movimiento espontáneo y desordenado de moléculas individuales y, especialmente, nos interesa la difusión de moléculas de una sustancia disuelta en otra.
  
Línea 12: Línea 13:
 
Para que este problema resulte más sencillo aplicaremos una serie de condiciones, facilitando el cálculo del mismo.
 
Para que este problema resulte más sencillo aplicaremos una serie de condiciones, facilitando el cálculo del mismo.
  
En primer lugar denotaremos su concentración <math> u </math>, concentración de contaminante en cada posición del tubo y constante en cada sección, medida en <math> \frac{mol}{m^2*s} </math>.  
+
En primer lugar denotaremos su concentración <math> u </math>, concentración de contaminante en cada posición del tubo y constante en cada sección, medida en <math> \frac{mol}{m^2s} </math>.  
  
 
Supondremos que el tubo mide L=5 m, ocupando el intervalo <math> x \in (0,L) </math>, y que la concentración es la misma en cualquier punto de la sección transversal del tubo. Por tanto, la concentración dependerá unicamente de dos variables <math> u = u(x,t) </math>. En los extremos se ha colocado un aislante que hace que el flujo de contaminante al exterior del tubo sea nulo. Además, consideraremos la simplificación de que se trata de un tubo aislado por sus laterales, pero abierto por las bases del cilindro.
 
Supondremos que el tubo mide L=5 m, ocupando el intervalo <math> x \in (0,L) </math>, y que la concentración es la misma en cualquier punto de la sección transversal del tubo. Por tanto, la concentración dependerá unicamente de dos variables <math> u = u(x,t) </math>. En los extremos se ha colocado un aislante que hace que el flujo de contaminante al exterior del tubo sea nulo. Además, consideraremos la simplificación de que se trata de un tubo aislado por sus laterales, pero abierto por las bases del cilindro.
Línea 21: Línea 22:
 
Tras una serie de experimentos realizados por Lavoisier, se pusieron de manifiesto que si tenemos en cuenta todas las sustancias que forman parte en una reacción química y todos los productos formados, nunca varía la masa. Esta ley exige que no haya una generación espontánea de materia. Es decir, en la región del espacio estudiada, no existe entrada o salida por un punto cualquiera (frontera o interior), la masa en esta región se mantiene constante. Esta es la ley de la conservación de la masa, que podemos enunciarla, pues, de la siguiente manera: <br />
 
Tras una serie de experimentos realizados por Lavoisier, se pusieron de manifiesto que si tenemos en cuenta todas las sustancias que forman parte en una reacción química y todos los productos formados, nunca varía la masa. Esta ley exige que no haya una generación espontánea de materia. Es decir, en la región del espacio estudiada, no existe entrada o salida por un punto cualquiera (frontera o interior), la masa en esta región se mantiene constante. Esta es la ley de la conservación de la masa, que podemos enunciarla, pues, de la siguiente manera: <br />
 
''"En toda reacción química la masa se conserva, esto es, la masa total de los reactivos es igual a la masa total de los productos"'' <br />
 
''"En toda reacción química la masa se conserva, esto es, la masa total de los reactivos es igual a la masa total de los productos"'' <br />
La ley de conservación de masas exige que no haya una generación espontánea de materia. Es decir, en la región del espacio estudiada, no existe entrada o salida por un punto cualquiera (frontera o interior), la masa en esta región se mantiene constante.
+
La ley de conservación de masas exige que no haya una generación espontánea de materia. Es decir, en la región del espacio estudiada, no existe entrada o salida por un punto cualquiera (frontera o interior), la masa en esta región se mantiene constante.<br />
 
+
 
Esta suposición, en términos de variación de masa, puede quedar determinada como:
 
Esta suposición, en términos de variación de masa, puede quedar determinada como:
 
 
''Variación de la masa en el tiempo = flujo de masa a través de la frontera por unidad de tiempo + flujo de masa generada en el interior por unidad de tiempo. ''
 
''Variación de la masa en el tiempo = flujo de masa a través de la frontera por unidad de tiempo + flujo de masa generada en el interior por unidad de tiempo. ''
 +
  
 
== Ley de Fick ==
 
== Ley de Fick ==
 +
 
Se trata de una ley cuantitativa en forma diferencial que describe la difusión de materia o energía en un medio en el que inicialmente existe equilibrio químico o físico. Esta ley se trata de una generalización de los fenómenos descritos por la '''Ley de Fourier''', ya que esta es una consideración concreta del calor.
 
Se trata de una ley cuantitativa en forma diferencial que describe la difusión de materia o energía en un medio en el que inicialmente existe equilibrio químico o físico. Esta ley se trata de una generalización de los fenómenos descritos por la '''Ley de Fourier''', ya que esta es una consideración concreta del calor.
  
Línea 37: Línea 38:
  
 
La ley de Fick establece que el flujo de difusión del contaminante es proporcional a la variación de concentración:
 
La ley de Fick establece que el flujo de difusión del contaminante es proporcional a la variación de concentración:
 +
 
<math> F(x,t)=-D\frac{\partial u}{\partial x} </math>
 
<math> F(x,t)=-D\frac{\partial u}{\partial x} </math>
 +
 
donde D es el coeficiente de difusión (medido en <math> \frac{m^2}{s} </math>), que depende de las propiedades físicas de los compuestos, y que se supone constante D=1.
 
donde D es el coeficiente de difusión (medido en <math> \frac{m^2}{s} </math>), que depende de las propiedades físicas de los compuestos, y que se supone constante D=1.
  
Línea 61: Línea 64:
 
<math>F(x,t)A-F(x+\Delta x, t)A</math>
 
<math>F(x,t)A-F(x+\Delta x, t)A</math>
  
Igualando los resultados anteriores:
+
Con lo que queda <math>A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A</math>, y al dividir <math>A \Delta x</math>, nos queda <math>u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}</math>. <br />
 +
Como <math>\Delta x \rightarrow 0 </math>, <math>u_t(x,t)= -F_x(x,t)</math>, y aplicando ley de Fick, <math>u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) </math>.<br />
 +
Con lo que resulta una ecuación en derivadas parciales que determina la concentración de sustancia:
 +
<math>u_t(x,t)- D u_xx(x,t)= 0 </math>
  
<math>A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A</math>
 
  
y seguidamente pasamos dividiendo <math>A \Delta x</math>:
+
== Planteamiento del problema bien propuesto ==
  
<math>u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}</math>
+
Suponemos que el flujo será nula al haber una tapa en los extremos del tubo, con lo que el problema bien propuesto quedaría::
  
Si hacemos <math>\Delta x \rightarrow 0 </math>:
+
<math>\begin{cases}
 +
u_t(x,t)- D u_{xx}(x,t)= 0 ; x\in (0,5) \\
 +
u(x,0)=u_0 , x\in (0,5) \\
 +
u_x(0,t)=0 , u_x(5,t)=0 ; t\geq 0
 +
\end{cases}
 +
</math>
  
<math>u_t(x,t)= -F_x(x,t)</math>
 
  
Aplicando la ley de Fick:
 
  
<math>u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) </math>
+
= Resolución numérica =
 
+
Y de esta forma podemos obtener la ecuación en derivadas parciales que nos define la concentración de sustancia:
+
 
+
<math>u_t(x,t)- D u_xx(x,t)= 0 </math>
+
 
+
== Planteamiento del problema bien propuesto ==
+
  
 
Para la resolución de ésta ecuación necesitaremos mínimo tres condiciones, dos de las cuales serán de contorno, y la otra será la condición inicial.Si suponemos <math>u_0(x,0)</math>, entonces:
 
Para la resolución de ésta ecuación necesitaremos mínimo tres condiciones, dos de las cuales serán de contorno, y la otra será la condición inicial.Si suponemos <math>u_0(x,0)</math>, entonces:
Línea 91: Línea 93:
 
</math>
 
</math>
  
Suponemos que el flujo será nula al haber una tapa en los extremos del tubo, con lo que el problema bien propuesto quedaría::
 
  
<math>\begin{cases}
+
== Resolución por el método de las diferencias finitas ==
u_t(x,t)- D u_xx(x,t)= 0 \\
+
u_0(x,0), x\in (0,L) \\
+
u_x(0,t)=0, u_x(L,t)=0, t\geq 0
+
\end{cases}
+
</math>
+
  
= Resolución numérica =
+
En el primer caso particular que estudiaremos, trataremos de obtener una resolución numérica del problema anteriormente planteado, dónde tenemos las fronteras aisladas y las concentraciones iniciales conocidas:
 
+
==Caso particular 1: fronteras aisladas y concentraciones iniciales conocidas==
+
En el primer caso particular que estudiaremos, trataremos de obtener una resolución numérica del problema anteriormente planteado:
+
  
 
<math>\begin{cases}
 
<math>\begin{cases}
u_t(x,t)- D u_xx(x,t)= 0 \\
+
u_t(x,t)- D u_{xx}(x,t)= 0; x\in (0,5), t\geq 0 \\
u_0(x,0), x\in (0,L) \\
+
u_0(x,0), x\in (0,5) \\
u_x(0,t)=0, u_x(L,t)=0, t\geq 0
+
u_x(0,t)=0, u_x(5,t)=0, t\geq 0
 
\end{cases}
 
\end{cases}
 
</math>
 
</math>
  
=== Resolución por el método de las diferencias finitas ===
+
La resolución por el método de las diferencias finitas se basa en expresar el problema continuo a un sistema discreto de ecuaciones diferenciales de primer orden. Particularizando para nuestro caso con las condiciones dadas, el problema planteado sería:
La resolución por el método de las diferencias finitas se basa en expresar el problema continuo a un sistema discreto de ecuaciones diferenciales de primer orden.
+
 
+
Particularizando para nuestro caso con las condiciones dadas, el problema planteado sería:
+
  
 
<math>\begin{cases}
 
<math>\begin{cases}
Línea 134: Línea 124:
  
 
Con <math>N+1</math> ecuaciones.
 
Con <math>N+1</math> ecuaciones.
==== Resolución por método del trapecio ====
+
 
{{matlab|codigo=
+
=== Resolución por método del trapecio ===
clear all
+
 
%%Problema de difusión de barrera
+
Suponiendo que en el instante inicial se verifica  :<math>
 +
u(x,0)=\left\{\begin{matrix}\\0, x≤3\\3, x>3\end{matrix}\right.
 +
</math>
 +
 
 +
Si tomamos <math>\triangle t= \triangle x/4</math> en <math>t\in\ [0,5]</math>, con <math>\triangle x=0.1</math>
 +
 
 +
El código en MATLAB del método sería:
 +
 
 +
{{matlab| codigo=
 
%Datos
 
%Datos
L=5;
+
L=5; %Longitud de varilla
T=6;
+
T=5; %tiempo final
 +
q=1;
 
%Discretización temporal y espacial
 
%Discretización temporal y espacial
dx=0.1;
+
dx=0.1; % Paso en espacio
N=L/dx;
+
N=L/dx; %Número de subintervalos
dt=dx^2/2;
+
x=0:dx:L; % Vector de espacio
x=0:dx:L;
+
dt=dx/4; % Paso en tiempo
t=0:dt:T;
+
t=0:dt:T; % Vector de tiempos
%Matriz de coeficientes
+
% Matriz de coeficientes. Aproximacion de -q*u_xx
 
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
 
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
K(N,N-1)=-2;
 
 
K(1,2)=-2;
 
K(1,2)=-2;
K=(1/dx^2)*K;
+
K(N+1,N)=-2;
%Condición inicial
+
K=q*K/dx^2;
U0=(3.*(x>3))';
+
% Calculamos u0 condición inicial
sol(1,:)=[U0'];
+
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
U=U0;
+
% F=0 (no la consideramos)
%Bucle iterativo aplicando método de diferencias finitas con método del trapecio
+
sol(1,:)=u0';  
for j=length(t)-1
+
U=u0; % Inicializacion
U=(eye(N+1)+(dt/2)*K)\(U-(dt/2)*K*U);
+
% Calculamos U_n -> U_n+1
sol(j+1,:)=[U'];
+
%Aplicamos método del trapecio
 +
for j=1:length(t)-1
 +
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U);
 +
sol(j+1,:)= U';  
 
end
 
end
 +
%Dibujamos la solucion
 
[xx,tt]=meshgrid(x,t);
 
[xx,tt]=meshgrid(x,t);
figure(1)
+
surf(xx,tt,sol);
mesh(xx,tt,sol);
+
}}
xlabel('x');
+
[[Archivo:nur.jpg|500px|thumb|centro|Gráfica concentración / espacio-tiempo. Resolución por el método del trapecio.]]
ylabel('y');
+
grid
+
  
 +
=== Resolución por método de Euler explícito ===
 +
 +
{{matlab| codigo=
 +
%Datos
 +
L=5; %Longitud de varilla
 +
T=5; %tiempo final
 +
q=1;
 +
%Discretización temporal y espacial
 +
dx=0.1; % Paso en espacio
 +
N=L/dx; %Número de subintervalos
 +
x=0:dx:L; % Vector de espacio
 +
dt=dx/20; % Paso en tiempo
 +
t=0:dt:T; % Vector de tiempos
 +
% Matriz de coeficientes. Aproximacion de -q*u_xx
 +
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
 +
K(1,2)=-2;
 +
K(N+1,N)=-2;
 +
K=q*K/dx^2;
 +
% Calculamos u0 condición inicial
 +
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
 +
% F=0 (no la consideramos)
 +
sol(1,:)=u0';
 +
U=u0; % Inicializacion
 +
% Calculamos U_n -> U_n+1
 +
%Aplicamos método Euler explícito
 +
for j=1:length(t)-1
 +
k1=-K*U; % Calculamos k1=h*f(tn,yn)
 +
k2=-K*(U+dt*k1); % Calculamos k2=h*f(tn+h/2,yn+1/2*k1)
 +
% Meto los datos en el vector
 +
U=U+(dt/2)*(k1+k2);
 +
sol(j+1,:)= U';
 +
end
 +
%Dibujamos la solucion
 +
[xx,tt]=meshgrid(x,t);
 +
surf(xx,tt,sol);
 
}}
 
}}
 +
[[Archivo:mig.jpg|500px|thumb|centro|Gráfica concentración / espacio-tiempo. Resolución por el método de Euler explícito.]]
 +
 +
=== Resolución por método de Euler implícito ===
 +
 +
{{matlab| codigo=
 +
%Datos
 +
L=5; %Longitud de varilla
 +
T=5;
 +
q=1;
 +
%Discretización temporal y espacial
 +
dx=0.1; % Paso en espacio
 +
N=L/dx; %Número de subintervalos
 +
h=L/N;
 +
x=0:h:L; % Vector de espacio
 +
dt=h/20; % Paso en tiempo
 +
t=0:dt:T; % Vector de tiempos
 +
% Matriz de coeficientes. Aproximacion de -q*u_xx
 +
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
 +
K(1,2)=-2;
 +
K(N+1,N)=-2;
 +
K=q*K/h^2;
 +
% Calculamos u0 condición inicial
 +
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
 +
% F=0 (no la consideramos)
 +
sol(1,:)=u0';
 +
U=u0; % Inicializacion
 +
% Calculamos U_n -> U_n+1
 +
% Aplicamos método Euler implícito
 +
for j=1:length(t)-1
 +
U=U-dt*K*U;
 +
sol(j+1,:)= U';
 +
end
 +
%Dibujamos la solucion
 +
[xx,tt]=meshgrid(x,t);
 +
surf(xx,tt,sol);
 +
}}
 +
[[Archivo:migap.jpg|500px|thumb|centro|Gráfica concentración / espacio-tiempo. Resolución por el método de Euler implícito.]]
 +
 +
=== Resolución por método de Euler modificado ===
 +
 +
{{matlab| codigo=
 +
%Datos
 +
L=5; %Longitud de varilla
 +
T=5;
 +
q=1;
 +
%Discretización temporal y espacial
 +
dx=0.1; % Paso en espacio
 +
N=L/dx; %Número de subintervalos
 +
h=L/N;
 +
x=0:h:L; % Vector de espacio
 +
dt=h/20; % Paso en tiempo
 +
t=0:dt:T; % Vector de tiempos
 +
% Matriz de coeficientes. Aproximacion de -q*u_xx
 +
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
 +
K(1,2)=-2;
 +
K(N+1,N)=-2;
 +
K=q*K/h^2;
 +
% Calculamos u0 condición inicial
 +
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
 +
% F=0 (no la consideramos)
 +
sol(1,:)=u0';
 +
U=u0; % Inicializacion
 +
% Calculamos U_n -> U_n+1
 +
for j=1:length(t)-1
 +
k1=-K*U; % Calculamos k1=h*f(tn,yn)
 +
k2=-K*(U+dt*k1); % Calculamos k2=h*f(tn+h/2,yn+1/2*k1)
 +
% Meto los datos en el vector
 +
U=U+(dt/2)*(k1+k2);
 +
sol(j+1,:)= U';
 +
end
 +
%Dibujamos la solucion
 +
[xx,tt]=meshgrid(x,t);
 +
surf(xx,tt,sol);
 +
}}
 +
[[Archivo: mig.jpg|500px|thumb|centro|Gráfica concentración / espacio-tiempo. Resolución por el método de Euler modificado.]]
  
  
 
== Conservación de la masa total de contaminante ==
 
== Conservación de la masa total de contaminante ==
 +
 +
A continuación demostraremos que la masa total de contaminante en el tubo se conserva a lo largo del tiempo, que se puede deducir a partir de la ecuación sin tener que resolverla. Integramos la ecuación y debido a las condiciones de frontera:
 
<math>\frac d {dt} \int_0^5 u(x,t)\,dx= \int_0^5 u_{xx}(x,t)\,dx= u_x(x,t)|_0^5=0</math>
 
<math>\frac d {dt} \int_0^5 u(x,t)\,dx= \int_0^5 u_{xx}(x,t)\,dx= u_x(x,t)|_0^5=0</math>
 +
{{matlab| codigo=
 +
%Datos
 +
L=5; %Longitud de varilla
 +
T=5;
 +
q=1;
 +
%Discretización temporal y espacial
 +
N=500; %Número de subintervalos
 +
h=L/N;
 +
x=0:h:L; % Vector de espacio
 +
dt=h/4; % Paso en tiempo
 +
t=0:dt:T; % Vector de tiempos
 +
% Matriz de coeficientes. Aproximacion de -q*u_xx
 +
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
 +
K(1,2)=-2;
 +
K(N+1,N)=-2;
 +
K=q*K/h^2;
 +
% Calculamos u0 condición inicial
 +
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
 +
% F=0 (no la consideramos)
 +
sol(1,:)=u0';
 +
U=u0; % Inicializacion
 +
% Calculamos U_n -> U_n+1
 +
for j=1:length(t)-1
 +
U=(eye(N+1)+dt*K)\(U+dt*F);
 +
sol(j+1,:)= U';
 +
end
 +
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)
 +
areas=zeros(1,length(t));
 +
for i=1:length(t)
 +
f=sol(i,:);
 +
w=trapz(x,f);
 +
area(i)=w;
 +
end
 +
%Dibujamos
 +
plot(t,area)
 +
xlabel('Tiempo')
 +
ylabel('Cantidad de contaminante')
 +
}}
 +
[[Archivo:aleeex.jpg|500px|thumb|centro|Conservación masa total de contaminante]]
 +
[[Archivo:gime.jpg|500px|thumb|centro|Conservación masa total de contaminante]]
 +
 +
 +
==Concentración a lo largo del tiempo==
 +
 +
La concentración de la sustancia contaminante en la varilla varía con el tiempo, pero en un cierto momento esta concentración se va homogeneizando, y deja de variar, entrando en un estado estacionario::
 +
<math> u_t(x,t)- Du_{xx}(x,t)=0 </math> :   
 +
<math> u_t(x,t)=0 \rightarrow Du_{xx}(x,t)=0 </math> :
 +
<math> u=c_1x+c_2 </math>
 +
Utizando Matlab comprobaremos que <math> c_1=0 </math> <math> c_2=1.17 </math>
 +
Para tiempos grandes la concentración se estabiliza en torno a 1.17 en toda la varilla, de forma que la solución se asemejará a una función lineal constante.
 +
 +
{{matlab| codigo=
 +
%Datos
 +
L=5; %Longitud de varilla
 +
T=50;
 +
q=1;
 +
%Discretización temporal y espacial
 +
dx=0.1; % Paso en espacio
 +
N=L/dx; %Número de subintervalos
 +
h=L/N;
 +
x=0:h:L; % Vector de espacio
 +
dt=h/4; % Paso en tiempo
 +
t=0:dt:T; % Vector de tiempos
 +
% Matriz de coeficientes. Aproximacion de -q*u_xx
 +
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
 +
K(1,2)=-2;
 +
K(N+1,N)=-2;
 +
K=q*K/h^2;
 +
% Calculamos u0 condición inicial
 +
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
 +
% F=0 (no la consideramos)
 +
sol(1,:)=u0';
 +
U=u0; % Inicializacion
 +
% Calculamos U_n -> U_n+1
 +
%Aplicamos método del trapecio
 +
for j=1:length(t)-1
 +
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U);
 +
sol(j+1,:)= U';
 +
end
 +
%Solución estacionaria
 +
a=sol(length(t),:);
 +
b=sol(1,:);
 +
c=sol((length(t)-1)/50+1,:);
 +
d=sol((length(t)-1)*2/50+1,:);
 +
e=sol((length(t)-1)*10/50+1,:);
 +
hold on
 +
plot(x,a,'xk','linewidth',2);
 +
plot(x,b,'-m','linewidth',1);
 +
plot(x,c,'-g','linewidth',1);
 +
plot(x,d,'-y','linewidth',1);
 +
plot(x,e,'-b','linewidth',1);
 +
legend('u(50s)','u(0s)','u(1s)','u(2s)','u(10s)');
 +
xlabel('Posición en la varilla')
 +
ylabel('Concentracion')
 +
hold off
 +
}}
 +
 +
[[Archivo:Soluciones(t).jpg|500px|thumb|centro|Soluciones a lo largo del tiempo]]
 +
 +
La distancia entre la solución estacionaria y las soluciones para los siguientes instantes: 0s, 1s, 2s y 10s; se puede apreciar en la imagen anterior.
 +
 +
Una vez analizado los datos, se demuestra que la sustancia contaminante se estabiliza en t=9.98s, con un error del 5%.
 +
 +
En el caso de que consideremos Δx'=Δx/10,el tiempo en el que se estabiliza la cantidad de sustancia contaminante será t=10s, dato que será más preciso debido a que el paso realizado en el programa es menor.
 +
 +
==Nueva condición de frontera==
 +
 +
===Primer caso. Limpiador===
 +
 +
Si colocamos un limpiador, que elimina la sustancia contaminante, en el extremo izquierdo de la varilla, varían las condiciones de contorno del problema. En este caso, en el extremo izquierdo, la condición inicial será de tipo Dirichlet ya que se esta variación esta provocada por un mecanismo físico externo que actúa sobre el extremo.
 +
 +
<math>\begin{cases}
 +
u_t(x,t)- D u_{xx}(x,t)= 0 ; x\in (0,5) \\
 +
u(x,0)=u_0 , x\in (0,5) \\
 +
u(0,t)=0 , u_x(5,t)=0 ; t\geq 0
 +
\end{cases}
 +
</math>
 +
 +
Dadas las nuevas condiciones, resolvemos el problema por el método de diferencias finitas con la ayuda de Matlab.
 +
 +
{{matlab| codigo=
 +
%Datos
 +
L=5; %Longitud de varilla
 +
T=5; %tiempo final
 +
q=1;
 +
%Discretización temporal y espacial
 +
dx=0.1; % Paso en espacio
 +
N=L/dx; %Número de subintervalos
 +
x=0:dx:L;% Vector de espacio
 +
dt=dx/4; % Paso en tiempo
 +
t=0:dt:T; % Vector de tiempos
 +
% Matriz de coeficientes. Aproximacion de -q*u_xx
 +
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);
 +
K(N,N-1)=-2;
 +
K=q*K/dx^2;
 +
% Matriz F
 +
F=zeros(N,1);
 +
% Calculamos u0 condición inicial
 +
u0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';
 +
sol(1,:)=[0,u0'];
 +
U=u0; % Inicializacion
 +
% Calculamos U_n -> U_n+1
 +
%Aplicamos método trapecio
 +
for j=1:length(t)-1
 +
U=(eye(N)+(dt*K))\(dt*F+U);
 +
sol(j+1,:)= [0,U'];
 +
end
 +
%Dibujamos la solucion
 +
[xx,tt]=meshgrid(x,t);
 +
surf(xx,tt,sol);
 +
}}
 +
 +
[[Archivo:Xata.JPG|500px|thumb|centro|Solución al variar las condiciones de contorno del problema.]]
 +
 +
Observando la gráfica, y por la presencia del limpiador en el extremo de la varilla, para tiempos grandes la cantidad de sustancia contaminante será nula en toda la varilla. En realidad, esto no es del todo cierto puesto que la sustancia no llega a eliminarse completamente, ya que el limpiador solo elimina la sustancia contaminante en el extremo izquierdo. Aunque la concentración en todos los puntos disminuye de manera exponencial, permanece asintótica a 0.
 +
 +
[[Archivo:Trapotito.JPG|500px|thumb|centro|Momento en el que se estabiliza con la presencia del limpiador.]]
 +
 +
===Segundo caso===
 +
 +
Volvemos a cambiar las condiciones de frontera, pero en este caso en ambos extremos.
 +
<math>\begin{cases}
 +
u_t(x,t)- D u_{xx}(x,t)= 0 ; x\in (0,5) \\
 +
u(x,0)=u_0 , x\in (0,5) \\
 +
u_x(0,t)=3 , u(5,t)=10sin(t) ; t\geq 0
 +
\end{cases}
 +
</math>
 +
 +
Podemos obtener el resultado mediante un programa en Matlab::
 +
 +
{{matlab| codigo=
 +
%Datos
 +
L=5; %Longitud de varilla
 +
T=10; %tiempo final
 +
q=1;
 +
%Discretización temporal y espacial
 +
dx=0.1; % Paso en espacio
 +
N=L/dx; %Número de subintervalos
 +
x=0:dx:L;% Vector de espacio
 +
dt=dx/4; % Paso en tiempo
 +
t=0:dt:T; % Vector de tiempos
 +
% Matriz de coeficientes. Aproximacion de -q*u_xx
 +
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);
 +
K(1,2)=-2;
 +
K=q*K/dx^2;
 +
% Matriz F
 +
F=[-3*2/dx, zeros(1,N-1)]';
 +
% Calculamos u0 condición inicial
 +
u0=[zeros(1,(N*3/5)),3*ones(1,(N*2/5))]';
 +
v=10*sin(t); %Condicion de frontera Dirichlet
 +
sol(1,:)=[u0' v(1)];
 +
U=u0; % Inicializacion
 +
% Calculamos U_n -> U_n+1
 +
%Aplicamos método trapecio
 +
for j=1:length(t)-1
 +
    F(N)=(1/dx^2)*v(j);
 +
    U=(eye(N)+(dt*K))\(dt*F+U);
 +
    sol(j+1,:)= [U', v(j+1)];
 +
end
 +
%Dibujamos la solucion
 +
[xx,tt]=meshgrid(x,t);
 +
surf(xx,tt,sol);
 +
}}
 +
 +
El resultado obtenido de la concentración de la sustancia contaminante será, gráficamente:
 +
 +
[[Archivo:aaawww.jpg|500px|thumb|centro|Solución al variar las condiciones de contorno del problema.]]
 +
 +
Las nuevas conciones de contorno son de tipo Neumann en el extremo izquierdo, lo que indica que se producirá un flujo de masa contaminante constante, 3, en ese extremo; y de tipo Dirichlet en el derecho, que nos indica que en ese extremo la cantidad de masa contaminante variará con el tiempo de forma periódica, entre los valores -10 y 10.
 +
 +
==Resolución por el método de Fourier==
 +
 +
Las condiciones de frontera del problema son homogéneas, por lo que podemos aplicar este método de cálculo, sin realizar ningún cambio.
 +
El primer paso es resolver el problema de autovalores asociado::
 +
 +
<math>\begin{cases}
 +
y''+λy=0 x \in (0,5) \\
 +
y'(0)=0 \\
 +
y'(5)=0
 +
\end{cases}
 +
</math>
 +
 +
Realizando analíticamente el cálculo, obtenemos los siguientes autovalores y autofunciones::
 +
<math> λ_k=\frac{k^2π^2}{25}  →  φ_k=cos\frac{kπ}{5}x , k=0,1,2,3... </math>
 +
 +
Las condiciones de frontera e iniciales serían las siguientes en términos de la serie de Fourier::
 +
 +
<math> \sum_{k=0}^∞c_k(t)φ_k(x)=0  ,  \sum_{k=0}^∞a_k(t)φ_k(x)\begin{cases} 0, x≤3 \\ 3, x>3\end{cases} </math>
 +
 +
Y ensayamos soluciones de la forma::
 +
 +
<math> u(x,t)=\sum_{k=0}^∞T_k(t)φ_k(x)=\sum_{k=0}^∞T_k(t)cos\frac{kπ}{5}x </math>
 +
 +
 +
Relacionando los resultados obtenidos en el problema de autovalores y el problema de difusión de la sustancia contaminante obtenemos lo siguiente::
 +
 +
<math>\begin{cases} T'_k(t)+μ_kT_k(t)=c_k=0 \\ T_k(0)=a_k \end{cases} </math>
 +
 +
La solución de este último problema de valor inicial es::
 +
 +
<math>T_k(t)=a_ke^{-μ_kt}</math>
 +
 +
De esta manera obtenemos la solución final::
 +
 +
<math> u(x,t)=\sum_{k=0}^∞a_ke^{-μ_kt}cos\frac{kπ}{5}x </math>
 +
 +
Resolveremos a través de Matlab, con una serie de Fourier de 1, 3, 5, 10 y 20 términos.
 +
 +
{{matlab| codigo=
 +
%Datos
 +
L=5; %Longitud de varilla
 +
T=0.5; %tiempo final
 +
q=1;
 +
%Discretización temporal y espacial
 +
dx=0.1; % Paso en espacio
 +
N=L/dx; %Número de subintervalos
 +
x=0:dx:L;% Vector de espacio
 +
dt=dx/4; % Paso en tiempo
 +
t=0:dt:T; % Vector de tiempos
 +
M=1; %Número de términos
 +
sol=zeros(length(t),N+1);
 +
u=[zeros(1,(N*3/5)+1),ones(1,N*2/5)*3];
 +
%Aplicamos Fourier
 +
for j=1:M
 +
    phi=cos((j*pi*x)/5);
 +
    a=(trapz(x,u.*phi))/(trapz(x,phi.^2));
 +
    TT=exp(-(j^2)*(pi^2)*t/25)*a;
 +
    sol=sol+TT'*phi;
 +
end
 +
%Dibujamos la solucion
 +
[xx,tt]=meshgrid(x,t);
 +
surf(xx,tt,sol);
 +
}}
 +
 +
Gráficamente la concentración de la sustancia calculada por el método de Fourier será:
 +
 +
[[Archivo:M=1.jpg|520px|thumb|left|Solución para 1 término de la serie de Fourier]]
 +
[[Archivo:M=3.jpg|520px|thumb|right|Solución para 3 términos de la serie de Fourier]]
 +
[[Archivo:M=5.jpg|520px|thumb|left|Solución para 5 términos de la serie de Fourier]]
 +
[[Archivo:M=10.jpg|520px|thumb|right|Solución para 10 términos de la serie de Fourier]]
 +
 +
Como se puede anteriores gráficas apreciamos la precisión va aumentando a medida que aumenta el número de términos que utilizamos. Si tomamos 20 términos en la serie, la aproximación es mejor, como veremos en la siguiente imagen:
 +
 +
[[Archivo:M=20.jpg|1000px|thumb|centro|Solución para 20 términos de la serie de Fourier]]
 +
 +
 +
[[Categoría:Ecuaciones Diferenciales]]
 +
[[Categoría:ED13/14]]
 +
[[Categoría:Trabajos 2013-14]]

Revisión actual del 07:49 23 may 2014

Trabajo realizado por estudiantes
Título Difusión de una sustancia contaminante. Grupo 10-B
Asignatura Ecuaciones Diferenciales
Curso Curso 2013-14
Autores Alejandro Giménez Alves, Miguel Aparicio Martín Romo, Nuria Trapote García, Karlo André Palomino Paredes
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura
Tubo con sustancia contaminante

La difusión implica un movimiento espontáneo y desordenado de moléculas individuales y, especialmente, nos interesa la difusión de moléculas de una sustancia disuelta en otra.

La difusión de una sustancia puede considerarse análoga al flujo de calor, y la ley de Fick establece que el ritmo de difusión por unidad de superficie, en dirección perpendicular a ésta, es proporcional al gradiente de la concentración de esa sustancia en esa dirección. La concentración es la masa de la sustancia por unidad de volumen, y el gradiente de concentración es la variación de concentración por unidad de distancia.

Para determinar como se distribuye la concentración de una sustancia contaminante tomaremos como ejemplo un tubo largo compuesto por dos sustancias de las cuáles una de ellas es contaminante.


1 Simplificación del problema

Para que este problema resulte más sencillo aplicaremos una serie de condiciones, facilitando el cálculo del mismo.

En primer lugar denotaremos su concentración [math] u [/math], concentración de contaminante en cada posición del tubo y constante en cada sección, medida en [math] \frac{mol}{m^2s} [/math].

Supondremos que el tubo mide L=5 m, ocupando el intervalo [math] x \in (0,L) [/math], y que la concentración es la misma en cualquier punto de la sección transversal del tubo. Por tanto, la concentración dependerá unicamente de dos variables [math] u = u(x,t) [/math]. En los extremos se ha colocado un aislante que hace que el flujo de contaminante al exterior del tubo sea nulo. Además, consideraremos la simplificación de que se trata de un tubo aislado por sus laterales, pero abierto por las bases del cilindro.


1.1 Ley de conservación de masa

Tras una serie de experimentos realizados por Lavoisier, se pusieron de manifiesto que si tenemos en cuenta todas las sustancias que forman parte en una reacción química y todos los productos formados, nunca varía la masa. Esta ley exige que no haya una generación espontánea de materia. Es decir, en la región del espacio estudiada, no existe entrada o salida por un punto cualquiera (frontera o interior), la masa en esta región se mantiene constante. Esta es la ley de la conservación de la masa, que podemos enunciarla, pues, de la siguiente manera:
"En toda reacción química la masa se conserva, esto es, la masa total de los reactivos es igual a la masa total de los productos"
La ley de conservación de masas exige que no haya una generación espontánea de materia. Es decir, en la región del espacio estudiada, no existe entrada o salida por un punto cualquiera (frontera o interior), la masa en esta región se mantiene constante.
Esta suposición, en términos de variación de masa, puede quedar determinada como: Variación de la masa en el tiempo = flujo de masa a través de la frontera por unidad de tiempo + flujo de masa generada en el interior por unidad de tiempo.


1.2 Ley de Fick

Se trata de una ley cuantitativa en forma diferencial que describe la difusión de materia o energía en un medio en el que inicialmente existe equilibrio químico o físico. Esta ley se trata de una generalización de los fenómenos descritos por la Ley de Fourier, ya que esta es una consideración concreta del calor.

La ley de Fick anuncia que en el caso de existir diferencias de concentración en cualquier especie, el paso de estas especies se llevará a cabo desde las regiones con mayor concentración a las de menor. Formulado matemáticamente:

[math]F(x,t)=-D\frac{\partial u}{\partial x}[/math]

Donde [math]F[/math] es el flujo de la sustancia y [math]D[/math] el coeficiente de difusión, que representa la facilidad en que un soluto particular se mueve por un disolvente determinado.

La ley de Fick establece que el flujo de difusión del contaminante es proporcional a la variación de concentración:

[math] F(x,t)=-D\frac{\partial u}{\partial x} [/math]

donde D es el coeficiente de difusión (medido en [math] \frac{m^2}{s} [/math]), que depende de las propiedades físicas de los compuestos, y que se supone constante D=1.

2 Modelización de la ecuación diferencial

Aplicando el principio de conservación de la masa y la ley de Fourier, definimos la variable [math] u(x,t)[/math] en unidades de sustancia por área, es decir, concentración por superficie del tubo.

Consideramos [math] A [/math] como variable superficie, y tomamos un pequeño trozo, definido por [math]\Delta x[/math]. Entonces, para obtener la variación de la masa en el tiempo:

[math] A u(x,t) \Delta x [/math]

Y derivando en el tiempo:

[math] A u_t(x,t) \Delta x [/math]

obtenemos el primer término de la igualdad anteriormente enunciada.

En el segundo, consideramos nulo el flujo de masa en los puntos interiores por unidad de tiempo, pues suponemos la tubería perfecta y sin sumideros.

Como la superficie lateral del tubo está aislada, solamente habrá flujo de sustancia en la dirección del eje [math]x[/math]. Si [math]F(x,t)\gt 0[/math] pensamos que el flujo va hacia la derecha, si [math]F(x,t)\lt 0[/math], este va a hacia la izquierda. El flujo de calor en un intervalo [math][x, x + ∆x ] [/math] viene dado dado por:

[math]F(x,t)A-F(x+\Delta x, t)A[/math]

Con lo que queda [math]A u_t(x,t) \Delta x = F(x,t)A-F(x+\Delta x, t)A[/math], y al dividir [math]A \Delta x[/math], nos queda [math]u_t(x,t)= \frac {F(x,t)-F(x+\Delta x, t)}{\Delta x}[/math].
Como [math]\Delta x \rightarrow 0 [/math], [math]u_t(x,t)= -F_x(x,t)[/math], y aplicando ley de Fick, [math]u_t(x,t)=-\frac{\partial }{\partial x}(-D u_x(x,t)) = D u_xx(x,t) [/math].
Con lo que resulta una ecuación en derivadas parciales que determina la concentración de sustancia: [math]u_t(x,t)- D u_xx(x,t)= 0 [/math]


2.1 Planteamiento del problema bien propuesto

Suponemos que el flujo será nula al haber una tapa en los extremos del tubo, con lo que el problema bien propuesto quedaría::

[math]\begin{cases} u_t(x,t)- D u_{xx}(x,t)= 0 ; x\in (0,5) \\ u(x,0)=u_0 , x\in (0,5) \\ u_x(0,t)=0 , u_x(5,t)=0 ; t\geq 0 \end{cases} [/math]


3 Resolución numérica

Para la resolución de ésta ecuación necesitaremos mínimo tres condiciones, dos de las cuales serán de contorno, y la otra será la condición inicial.Si suponemos [math]u_0(x,0)[/math], entonces:

[math] u_0(x,0)=\begin{cases} 0, si x\leq 3\\ 3, si x\gt3 \end{cases} [/math]


3.1 Resolución por el método de las diferencias finitas

En el primer caso particular que estudiaremos, trataremos de obtener una resolución numérica del problema anteriormente planteado, dónde tenemos las fronteras aisladas y las concentraciones iniciales conocidas:

[math]\begin{cases} u_t(x,t)- D u_{xx}(x,t)= 0; x\in (0,5), t\geq 0 \\ u_0(x,0), x\in (0,5) \\ u_x(0,t)=0, u_x(5,t)=0, t\geq 0 \end{cases} [/math]

La resolución por el método de las diferencias finitas se basa en expresar el problema continuo a un sistema discreto de ecuaciones diferenciales de primer orden. Particularizando para nuestro caso con las condiciones dadas, el problema planteado sería:

[math]\begin{cases} u'_n(t)+\frac{-u_{n-1}(t)+2u_n(t)+u_{n+1}(t)}{h^2} \\ \frac{u_1(t)-u_-1(t)}{2h} \rightarrow u_1(t)=u_-1(t) \\ \frac{u_{N+1}(t)-u_{N-1}(t)}{2h} \rightarrow u_{N+1}(t)=u_{N-1}\\ u_n(0)=u^0(x) \end{cases} [/math]

Por lo que tenemos un sistema de la forma:

[math]\begin{cases} U'(t)+KU(t)=F(t)=0\\ U(0)=U^0 \end{cases} [/math]

Con [math]N+1[/math] ecuaciones.

3.1.1 Resolución por método del trapecio

Suponiendo que en el instante inicial se verifica  :[math] u(x,0)=\left\{\begin{matrix}\\0, x≤3\\3, x\gt3\end{matrix}\right. [/math]

Si tomamos [math]\triangle t= \triangle x/4[/math] en [math]t\in\ [0,5][/math], con [math]\triangle x=0.1[/math]

El código en MATLAB del método sería:

%Datos
L=5; %Longitud de varilla
T=5; %tiempo final
q=1;
%Discretización temporal y espacial
dx=0.1; % Paso en espacio
N=L/dx; %Número de subintervalos
x=0:dx:L; % Vector de espacio
dt=dx/4; % Paso en tiempo
t=0:dt:T; % Vector de tiempos
% Matriz de coeficientes. Aproximacion de -q*u_xx
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
K(1,2)=-2;
K(N+1,N)=-2;
K=q*K/dx^2;
% Calculamos u0 condición inicial
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
% F=0 (no la consideramos)
sol(1,:)=u0'; 
U=u0; % Inicializacion
% Calculamos U_n -> U_n+1
%Aplicamos método del trapecio
for j=1:length(t)-1
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U);
sol(j+1,:)= U'; 
end
%Dibujamos la solucion
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);
Gráfica concentración / espacio-tiempo. Resolución por el método del trapecio.

3.1.2 Resolución por método de Euler explícito

%Datos
L=5; %Longitud de varilla
T=5; %tiempo final
q=1;
%Discretización temporal y espacial
dx=0.1; % Paso en espacio
N=L/dx; %Número de subintervalos
x=0:dx:L; % Vector de espacio
dt=dx/20; % Paso en tiempo
t=0:dt:T; % Vector de tiempos
% Matriz de coeficientes. Aproximacion de -q*u_xx
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
K(1,2)=-2;
K(N+1,N)=-2;
K=q*K/dx^2;
% Calculamos u0 condición inicial
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
% F=0 (no la consideramos)
sol(1,:)=u0'; 
U=u0; % Inicializacion
% Calculamos U_n -> U_n+1
%Aplicamos método Euler explícito
for j=1:length(t)-1 
k1=-K*U; % Calculamos k1=h*f(tn,yn)
k2=-K*(U+dt*k1); % Calculamos k2=h*f(tn+h/2,yn+1/2*k1)
% Meto los datos en el vector
U=U+(dt/2)*(k1+k2);
sol(j+1,:)= U'; 
end
%Dibujamos la solucion
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);
Gráfica concentración / espacio-tiempo. Resolución por el método de Euler explícito.

3.1.3 Resolución por método de Euler implícito

%Datos
L=5; %Longitud de varilla
T=5;
q=1;
%Discretización temporal y espacial
dx=0.1; % Paso en espacio
N=L/dx; %Número de subintervalos
h=L/N;
x=0:h:L; % Vector de espacio
dt=h/20; % Paso en tiempo
t=0:dt:T; % Vector de tiempos
% Matriz de coeficientes. Aproximacion de -q*u_xx
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
K(1,2)=-2;
K(N+1,N)=-2;
K=q*K/h^2;
% Calculamos u0 condición inicial
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
% F=0 (no la consideramos)
sol(1,:)=u0'; 
U=u0; % Inicializacion
% Calculamos U_n -> U_n+1
% Aplicamos método Euler implícito
for j=1:length(t)-1 
U=U-dt*K*U; 
sol(j+1,:)= U';
end
%Dibujamos la solucion
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);
Gráfica concentración / espacio-tiempo. Resolución por el método de Euler implícito.

3.1.4 Resolución por método de Euler modificado

%Datos
L=5; %Longitud de varilla
T=5;
q=1;
%Discretización temporal y espacial
dx=0.1; % Paso en espacio
N=L/dx; %Número de subintervalos
h=L/N;
x=0:h:L; % Vector de espacio
dt=h/20; % Paso en tiempo
t=0:dt:T; % Vector de tiempos
% Matriz de coeficientes. Aproximacion de -q*u_xx
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
K(1,2)=-2;
K(N+1,N)=-2;
K=q*K/h^2;
% Calculamos u0 condición inicial
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
% F=0 (no la consideramos)
sol(1,:)=u0'; 
U=u0; % Inicializacion
% Calculamos U_n -> U_n+1
for j=1:length(t)-1 
k1=-K*U; % Calculamos k1=h*f(tn,yn)
k2=-K*(U+dt*k1); % Calculamos k2=h*f(tn+h/2,yn+1/2*k1)
% Meto los datos en el vector
U=U+(dt/2)*(k1+k2);
sol(j+1,:)= U'; 
end
%Dibujamos la solucion
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);
Gráfica concentración / espacio-tiempo. Resolución por el método de Euler modificado.


3.2 Conservación de la masa total de contaminante

A continuación demostraremos que la masa total de contaminante en el tubo se conserva a lo largo del tiempo, que se puede deducir a partir de la ecuación sin tener que resolverla. Integramos la ecuación y debido a las condiciones de frontera: [math]\frac d {dt} \int_0^5 u(x,t)\,dx= \int_0^5 u_{xx}(x,t)\,dx= u_x(x,t)|_0^5=0[/math]

%Datos
L=5; %Longitud de varilla
T=5;
q=1;
%Discretización temporal y espacial
N=500; %Número de subintervalos
h=L/N;
x=0:h:L; % Vector de espacio
dt=h/4; % Paso en tiempo
t=0:dt:T; % Vector de tiempos
% Matriz de coeficientes. Aproximacion de -q*u_xx
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
K(1,2)=-2;
K(N+1,N)=-2;
K=q*K/h^2;
% Calculamos u0 condición inicial
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
% F=0 (no la consideramos)
sol(1,:)=u0'; 
U=u0; % Inicializacion
% Calculamos U_n -> U_n+1
for j=1:length(t)-1 
U=(eye(N+1)+dt*K)\(U+dt*F); 
sol(j+1,:)= U'; 
end
% Calculamos el area de la funcion en cada tiempo (area = cantidad de contaminante)
areas=zeros(1,length(t));
for i=1:length(t)
f=sol(i,:);
w=trapz(x,f);
area(i)=w;
end
%Dibujamos
plot(t,area)
xlabel('Tiempo')
ylabel('Cantidad de contaminante')
Conservación masa total de contaminante
Conservación masa total de contaminante


3.3 Concentración a lo largo del tiempo

La concentración de la sustancia contaminante en la varilla varía con el tiempo, pero en un cierto momento esta concentración se va homogeneizando, y deja de variar, entrando en un estado estacionario:: [math] u_t(x,t)- Du_{xx}(x,t)=0 [/math] : [math] u_t(x,t)=0 \rightarrow Du_{xx}(x,t)=0 [/math] : [math] u=c_1x+c_2 [/math] Utizando Matlab comprobaremos que [math] c_1=0 [/math] [math] c_2=1.17 [/math] Para tiempos grandes la concentración se estabiliza en torno a 1.17 en toda la varilla, de forma que la solución se asemejará a una función lineal constante.

%Datos
L=5; %Longitud de varilla
T=50;
q=1;
%Discretización temporal y espacial
dx=0.1; % Paso en espacio
N=L/dx; %Número de subintervalos
h=L/N;
x=0:h:L; % Vector de espacio
dt=h/4; % Paso en tiempo
t=0:dt:T; % Vector de tiempos
% Matriz de coeficientes. Aproximacion de -q*u_xx
K=2*diag(ones(1,N+1))-diag(ones(1,N),1)-diag(ones(1,N),-1);
K(1,2)=-2;
K(N+1,N)=-2;
K=q*K/h^2;
% Calculamos u0 condición inicial
u0=[zeros(1,1+N*3/5),3*ones(1,N*2/5)]';
% F=0 (no la consideramos)
sol(1,:)=u0'; 
U=u0; % Inicializacion
% Calculamos U_n -> U_n+1
%Aplicamos método del trapecio
for j=1:length(t)-1
U=(eye(N+1)+(dt*K)/2)\((eye(N+1)-(K*dt)/2)*U);
sol(j+1,:)= U'; 
end
%Solución estacionaria
a=sol(length(t),:);
b=sol(1,:);
c=sol((length(t)-1)/50+1,:);
d=sol((length(t)-1)*2/50+1,:);
e=sol((length(t)-1)*10/50+1,:);
hold on
plot(x,a,'xk','linewidth',2);
plot(x,b,'-m','linewidth',1);
plot(x,c,'-g','linewidth',1);
plot(x,d,'-y','linewidth',1);
plot(x,e,'-b','linewidth',1);
legend('u(50s)','u(0s)','u(1s)','u(2s)','u(10s)');
xlabel('Posición en la varilla')
ylabel('Concentracion')
hold off


Soluciones a lo largo del tiempo

La distancia entre la solución estacionaria y las soluciones para los siguientes instantes: 0s, 1s, 2s y 10s; se puede apreciar en la imagen anterior.

Una vez analizado los datos, se demuestra que la sustancia contaminante se estabiliza en t=9.98s, con un error del 5%.

En el caso de que consideremos Δx'=Δx/10,el tiempo en el que se estabiliza la cantidad de sustancia contaminante será t=10s, dato que será más preciso debido a que el paso realizado en el programa es menor.

3.4 Nueva condición de frontera

3.4.1 Primer caso. Limpiador

Si colocamos un limpiador, que elimina la sustancia contaminante, en el extremo izquierdo de la varilla, varían las condiciones de contorno del problema. En este caso, en el extremo izquierdo, la condición inicial será de tipo Dirichlet ya que se esta variación esta provocada por un mecanismo físico externo que actúa sobre el extremo.

[math]\begin{cases} u_t(x,t)- D u_{xx}(x,t)= 0 ; x\in (0,5) \\ u(x,0)=u_0 , x\in (0,5) \\ u(0,t)=0 , u_x(5,t)=0 ; t\geq 0 \end{cases} [/math]

Dadas las nuevas condiciones, resolvemos el problema por el método de diferencias finitas con la ayuda de Matlab.

%Datos
L=5; %Longitud de varilla
T=5; %tiempo final
q=1;
%Discretización temporal y espacial
dx=0.1; % Paso en espacio
N=L/dx; %Número de subintervalos
x=0:dx:L;% Vector de espacio
dt=dx/4; % Paso en tiempo
t=0:dt:T; % Vector de tiempos
% Matriz de coeficientes. Aproximacion de -q*u_xx
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);
K(N,N-1)=-2;
K=q*K/dx^2;
% Matriz F
F=zeros(N,1);
% Calculamos u0 condición inicial
u0=[zeros(1,N*3/5),3*ones(1,N*2/5)]';
sol(1,:)=[0,u0']; 
U=u0; % Inicializacion
% Calculamos U_n -> U_n+1
%Aplicamos método trapecio
for j=1:length(t)-1
U=(eye(N)+(dt*K))\(dt*F+U);
sol(j+1,:)= [0,U'];
end
%Dibujamos la solucion
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);


Solución al variar las condiciones de contorno del problema.

Observando la gráfica, y por la presencia del limpiador en el extremo de la varilla, para tiempos grandes la cantidad de sustancia contaminante será nula en toda la varilla. En realidad, esto no es del todo cierto puesto que la sustancia no llega a eliminarse completamente, ya que el limpiador solo elimina la sustancia contaminante en el extremo izquierdo. Aunque la concentración en todos los puntos disminuye de manera exponencial, permanece asintótica a 0.

Momento en el que se estabiliza con la presencia del limpiador.

3.4.2 Segundo caso

Volvemos a cambiar las condiciones de frontera, pero en este caso en ambos extremos. [math]\begin{cases} u_t(x,t)- D u_{xx}(x,t)= 0 ; x\in (0,5) \\ u(x,0)=u_0 , x\in (0,5) \\ u_x(0,t)=3 , u(5,t)=10sin(t) ; t\geq 0 \end{cases} [/math]

Podemos obtener el resultado mediante un programa en Matlab::

%Datos
L=5; %Longitud de varilla
T=10; %tiempo final
q=1;
%Discretización temporal y espacial
dx=0.1; % Paso en espacio
N=L/dx; %Número de subintervalos
x=0:dx:L;% Vector de espacio
dt=dx/4; % Paso en tiempo
t=0:dt:T; % Vector de tiempos
% Matriz de coeficientes. Aproximacion de -q*u_xx
K=2*diag(ones(1,N))-diag(ones(1,N-1),1)-diag(ones(1,N-1),-1);
K(1,2)=-2;
K=q*K/dx^2;
% Matriz F
F=[-3*2/dx, zeros(1,N-1)]';
% Calculamos u0 condición inicial
u0=[zeros(1,(N*3/5)),3*ones(1,(N*2/5))]';
v=10*sin(t); %Condicion de frontera Dirichlet
sol(1,:)=[u0' v(1)]; 
U=u0; % Inicializacion
% Calculamos U_n -> U_n+1
%Aplicamos método trapecio
for j=1:length(t)-1
    F(N)=(1/dx^2)*v(j);
    U=(eye(N)+(dt*K))\(dt*F+U);
    sol(j+1,:)= [U', v(j+1)];
end
%Dibujamos la solucion
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);


El resultado obtenido de la concentración de la sustancia contaminante será, gráficamente:

Solución al variar las condiciones de contorno del problema.

Las nuevas conciones de contorno son de tipo Neumann en el extremo izquierdo, lo que indica que se producirá un flujo de masa contaminante constante, 3, en ese extremo; y de tipo Dirichlet en el derecho, que nos indica que en ese extremo la cantidad de masa contaminante variará con el tiempo de forma periódica, entre los valores -10 y 10.

3.5 Resolución por el método de Fourier

Las condiciones de frontera del problema son homogéneas, por lo que podemos aplicar este método de cálculo, sin realizar ningún cambio. El primer paso es resolver el problema de autovalores asociado::

[math]\begin{cases} y''+λy=0 x \in (0,5) \\ y'(0)=0 \\ y'(5)=0 \end{cases} [/math]

Realizando analíticamente el cálculo, obtenemos los siguientes autovalores y autofunciones:: [math] λ_k=\frac{k^2π^2}{25} → φ_k=cos\frac{kπ}{5}x , k=0,1,2,3... [/math]

Las condiciones de frontera e iniciales serían las siguientes en términos de la serie de Fourier::

[math] \sum_{k=0}^∞c_k(t)φ_k(x)=0 , \sum_{k=0}^∞a_k(t)φ_k(x)\begin{cases} 0, x≤3 \\ 3, x\gt3\end{cases} [/math]

Y ensayamos soluciones de la forma::

[math] u(x,t)=\sum_{k=0}^∞T_k(t)φ_k(x)=\sum_{k=0}^∞T_k(t)cos\frac{kπ}{5}x [/math]


Relacionando los resultados obtenidos en el problema de autovalores y el problema de difusión de la sustancia contaminante obtenemos lo siguiente::

[math]\begin{cases} T'_k(t)+μ_kT_k(t)=c_k=0 \\ T_k(0)=a_k \end{cases} [/math]

La solución de este último problema de valor inicial es::

[math]T_k(t)=a_ke^{-μ_kt}[/math]

De esta manera obtenemos la solución final::

[math] u(x,t)=\sum_{k=0}^∞a_ke^{-μ_kt}cos\frac{kπ}{5}x [/math]

Resolveremos a través de Matlab, con una serie de Fourier de 1, 3, 5, 10 y 20 términos.

%Datos
L=5; %Longitud de varilla
T=0.5; %tiempo final
q=1;
%Discretización temporal y espacial
dx=0.1; % Paso en espacio
N=L/dx; %Número de subintervalos
x=0:dx:L;% Vector de espacio
dt=dx/4; % Paso en tiempo
t=0:dt:T; % Vector de tiempos
M=1; %Número de términos
sol=zeros(length(t),N+1);
u=[zeros(1,(N*3/5)+1),ones(1,N*2/5)*3];
%Aplicamos Fourier
for j=1:M
    phi=cos((j*pi*x)/5);
    a=(trapz(x,u.*phi))/(trapz(x,phi.^2));
    TT=exp(-(j^2)*(pi^2)*t/25)*a;
    sol=sol+TT'*phi;
end
%Dibujamos la solucion
[xx,tt]=meshgrid(x,t);
surf(xx,tt,sol);


Gráficamente la concentración de la sustancia calculada por el método de Fourier será:

Solución para 1 término de la serie de Fourier
Solución para 3 términos de la serie de Fourier
Solución para 5 términos de la serie de Fourier
Solución para 10 términos de la serie de Fourier

Como se puede anteriores gráficas apreciamos la precisión va aumentando a medida que aumenta el número de términos que utilizamos. Si tomamos 20 términos en la serie, la aproximación es mejor, como veremos en la siguiente imagen:

Solución para 20 términos de la serie de Fourier