Diferencia entre revisiones de «Modelos de mezclas (Grupo 10)»
(→Planteamiento del problema con la adición del tercer pantano) |
(→Segundo Apartado) |
||
| Línea 126: | Línea 126: | ||
En este apartado se activa el plan de limpieza descrito anteriormente. Resolvemos el nuevo sistema de ecuaciones por el método de Euler y el de Runge-Kutta. | En este apartado se activa el plan de limpieza descrito anteriormente. Resolvemos el nuevo sistema de ecuaciones por el método de Euler y el de Runge-Kutta. | ||
| − | [[Archivo:Apartado2.png|800px|sinmarco|centro]] | + | |
| + | [[Archivo:Apartado2 - copia.png|800px|sinmarco|centro]] | ||
=== Método de Euler === | === Método de Euler === | ||
Revisión del 17:01 5 mar 2013
1 Enunciado
1.1 Situación general
Dos pantanos A y B, con 100 [math]Hm^3[/math] de agua cada uno, que están unidos por una presa que deja pasar agua de A a B. El pantano A recibe 3 [math]Hm^3/día[/math] de agua limpia proveniente de ríos y el B 1.5 [math]Hm^3/día[/math]. Para mantener el nivel de los pantanos estable la presa de A a B deja pasar una media de 3 [math]Hm^3/día[/math] mientras que la presa al final de B desaloja 4.5 [math]Hm^3/día[/math]. Se produce un vertido tóxico en el pantano A que deja 20 toneladas de un cierto contaminante. Supongamos que se dan las siguientes hipótesis::
- El contaminante está disuelto de forma homogénea en el agua de los pantanos.
- Al entrar o salir agua en un pantano, ésta se mezcla con el agua del pantano de forma inmediata creando una mezcla homogénea.
- La variación de contaminante en un lago es la diferencia entre el contaminante que entra y sale en el lago, es decir si denotamos por [math] x_A (t) [/math] la cantidad de contaminante en el lago A, se tiene:: [math] \frac{dx_A}{dt} = velocidad de entrada – velocidad de salida[/math]
1.2 Situaciones posteriores
1.2.1 Adición de un tercer pantano
Se añade un tercer pantano que denominamos C. Éste se une al pantano B mediante una segunda presa que soltará 6 [math]Hm^3/día[/math] recibiendo 1.5 [math]Hm^3/día[/math] de agua limpia de ríos.
1.2.2 Activación de un plan de limpieza
El plan de limpieza consiste en bombear 1 [math]Hm^3/día[/math] de agua del pantano B al A ajustando las cantidades de agua que dejan pasar las presas para mantener estables los niveles de los pantanos.
2 Primer Apartado
Partiendo de que el plan de limpieza aún no se ha activado, denominamos [math] x_A [/math] y [math] x_B [/math] a las cantidades de contaminante de los pantanos A y B respectivamente, en un instante determinado. Del pantano A sabemos que la velocidad de entrada del contaminante es cero, ya que sólo entra agua limpia, mientras que la de salida la podemos expresar como la concentración de contaminante por la velocidad de salida. Por otro lado, del pantano B sabemos que la velocidad de entrada del contaminante coincide con la velocidad de salida del pantano A, y que la velocidad de salida se expresa como el producto de la concentración de contaminante en el pantano B por la velocidad de salida del mismo. Así mismo, se obtiene un sistema cuya resolución corresponde a un problema de valor inicial, en el que se tiene en cuenta que la concentracion inicial de contaminante en el pantano A es 20 y en el pantano B, cero.
2.1 Resolución del problema de valor inicial
2.2 Método de Euler
%Sistema 1 aproximado por el método de Euler
t0=0; tN=100;
x0=[20 0]';
N=500; h=(tN-t0)/N;
A=[-3/100 0;3/100 -4.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
x=x+h*A*x;
x1(n+1)=x(1);
x2(n+1)=x(2);
end
X1=20*exp(-3*t/100);
X2=40*(exp(-3*t/100)-exp(-4.5*t/100));
subplot(1,2,1)
hold on
plot(t,x1,'xg')
plot(t,x2,'-*')
xlabel('Aproximación de la cantidad de contaminante por el método de Euler')
hold off
subplot(1,2,2)
hold on
plot(t,X1,'--g')
plot(t,X2,'--')
xlabel('Cantidad de contaminante real')
hold off
2.3 Método de Runge-Kutta
%Resolución del sistema 2 por el método Runge kutta
t0=0; tN=50;
x0=[20 0]';
N=500; h=(tN-t0)/N;
A=[-3/100 0;3/100 -4.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
k1=A*x;
k2=A*(x+1/2*k1*h);
k3=A*(x+1/2*k2*h);
k4=A*(x+k3*h);
x=x+(h*(k1+2*k2+2*k3+k4))/6;
x1(n+1)=x(1);
x2(n+1)=x(2);
end
X1=20*exp(-3*t/100);
X2=40*(exp(-3*t/100)-exp(-4.5*t/100));
subplot(1,2,1);
hold on
plot(t,x1,'xg')
plot(t,x2,'-*')
xlabel('Aproximación de la cantidad de contaminante por el método de Euler')
hold off
subplot(1,2,2);
hold on
plot(t,X1,'--g')
plot(t,X2,'--')
xlabel('Cantidad de contaminante real')
hold off
2.4 Planteamiento del problema con la adición del tercer pantano
Partiendo de los dos pantanos anteriores, incorporamos un tercero, tal y como se describe en el planteamiento inicial del documento. En este caso el objetivo será describir como varía el sistema de ecuaciones al unir el pantano C. Para ello partimos de las dos ecuaciones que obtuvimos anteriormente y planteamos una tercera. Respecto al pantano C sabemos que la concentración inicial de contaminante es cero, la velocidad de entrada del contaminante, que coincide con la velocidad de salida del pantano B, y la velocidad de salida de C la expresamos como el producto de la concentración del pantano C por la velocidad con que desaloja. Con esto obtenemos un sistema de tres ecuaciones con tres incógnitas.
3 Segundo Apartado
En este apartado se activa el plan de limpieza descrito anteriormente. Resolvemos el nuevo sistema de ecuaciones por el método de Euler y el de Runge-Kutta.
3.1 Método de Euler
t0=0; tN=100;
x0=[20 0]';
N=500; h=(tN-t0)/N;
A=[-4/100 0;4/100 -5.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
x=x+h*A*x;
x1(n+1)=x(1);
x2(n+1)=x(2);
end
s=sqrt(73);
X1=(10/s)*exp(-19*t/400).*((s+3)*exp(s*t/400)+(s-3)*exp(-s*t/400));
Xprima=(10/s)*exp(-19*t/400).*(((-19+s)/400)*(s+3)*exp(s*t/400)+((-19-s)/400)*(s-3)*exp(-s*t/400));
X2=100*Xprima+4*X1;
subplot(1,2,1)
hold on
plot(t,x1,'xr')
plot(t,x2,'-*k')
xlabel('Aproximación de la cantidad de contaminante por el método de Euler')
hold off
subplot(1,2,2)
hold on
plot(t,X1,'--r')
plot(t,X2,'--k')
xlabel('Cantidad de contaminante real')
hold off
3.2 Método Runge-Kutta
t0=0; tN=50;
x0=[20 0]';
N=500; h=(tN-t0)/N;
A=[-4/100 0;4/100 -5.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
k1=A*x;
k2=A*(x+1/2*k1*h);
k3=A*(x+1/2*k2*h);
k4=A*(x+k3*h);
x=x+h/6*(k1+2*k2+2*k3+k4);
x1(n+1)=x(1);
x2(n+1)=x(2);
end
s=sqrt(73);
X1=(10/s)*exp(-19*t/400).*((s+3)*exp(s*t/400)+(s-3)*exp(-s*t/400));
Xprima=(10/s)*exp(-19*t/400).*(((-19+s)/400)*(s+3)*exp(s*t/400)+((-19-s)/400)*(s-3)*exp(-s*t/400));
X2=100*Xprima+4*X1;
subplot(1,2,1);
hold on
plot(t,x1,'xr')
plot(t,x2,'-*k')
xlabel('Aproximación de la cantidad de contaminante por el método de Euler')
hold off
subplot(1,2,2);
hold on
plot(t,X1,'--r')
plot(t,X2,'--k')
xlabel('Cantidad de contaminante real')
hold off
4 Contaminante inicial desconocido
En este apartado desconocemos la cantidad de contaminante inicial pero sabemos que tras unos días se redujo el contaminante a sólo una tonelada en A y dos en B. Se pide estimar la cantidad de contaminante que se vertió inicialmente. Procedemos a la estimación mediante el método de Euler:
t0=0; tN=-210;
x0=[1 1.9]';
N=500; h=(tN-t0)/N;
A=[-3/100 0;3/100 -4.5/100];
x=x0;
t=t0:h:tN;
x1(1)=x(1);
x2(1)=x(2);
for n=1:N
x=x+h*A*x;
x1(n+1)=x(1);
x2(n+1)=x(2);
end
hold on
plot(t,x1,'-xg')
plot(t,x2,'--*')
hold off
Para estimar el contaminante inicial, trazamos una línea horizontal a la altura del 0 hasta que corte con la gráfica y obtenemos:


