Diferencia entre revisiones de «Explotación minera (Grupo 5C)»
(→Función de producción P(t): Modelo de Gompertz) |
(→Método de Euler) |
||
| Línea 101: | Línea 101: | ||
CODIGO MATLAB | CODIGO MATLAB | ||
| + | {{matlab|codigo= | ||
%Apartado 5. Metodo de Euler | %Apartado 5. Metodo de Euler | ||
r=0.06; | r=0.06; | ||
| Línea 107: | Línea 108: | ||
tN=100; %Consideramos periodo de representacion de 100 años como suficientemente representativo graficamente | tN=100; %Consideramos periodo de representacion de 100 años como suficientemente representativo graficamente | ||
h=(1/12); %Nos piden que h sea de 1 mes. Hay 1/12 meses en un año | h=(1/12); %Nos piden que h sea de 1 mes. Hay 1/12 meses en un año | ||
| − | t=t0:h:tN; %t tiene 1201 elementos. 1201 eltos - 1 elemento inicial = 1200 eltos. 1200 elementos entre 100 años que hemos representado = 12 eltos. 12 elementos por año, es decir, uno por cada mes. OK!! | + | t=t0:h:tN; %t tiene 1201 elementos. 1201 eltos - 1 elemento inicial = 1200 eltos. 1200 elementos entre 100 años que hemos representado = 12 eltos. |
| − | Q0=124.4896; %Suponemos para Euler el mismo valor inicial que el obtenido con la condicion a t=25 años del problema sustituida en la ec. Gompertz programada segun la sol. analitica | + | %12 elementos por año, es decir, uno por cada mes. OK!! |
| + | Q0=124.4896; %Suponemos para Euler el mismo valor inicial que el obtenido con la condicion a t=25 años | ||
| + | %del problema sustituida en la ec. Gompertz programada segun la sol. analitica | ||
Q=zeros(1,length(t)); | Q=zeros(1,length(t)); | ||
P=zeros(1,length(t)); | P=zeros(1,length(t)); | ||
| Línea 147: | Línea 150: | ||
legend('Produccion (Gompertz / Euler)','Produccion limite (por debajo la vida util de la explotacion habra terminado)','Location','Best') | legend('Produccion (Gompertz / Euler)','Produccion limite (por debajo la vida util de la explotacion habra terminado)','Location','Best') | ||
hold off | hold off | ||
| + | }} | ||
===Método de Runge-Kutta=== | ===Método de Runge-Kutta=== | ||
Revisión del 12:24 5 mar 2015
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Explotación minera |
| Asignatura | Ecuaciones Diferenciales |
| Curso | Curso 2014-15 |
| Autores | • Jaume Martorell Cerdá • Miguel Angel Serrano Leo • Carla Vázquez Gómara • Pablo Alonso Medina • Joaquín Sánchez Molina • Fernando Millán Cobo |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Contenido
- 1 Introducción
- 2 Relación entre cantidad y producción
- 3 Modelo de Gompertz: Valor de la tasa de crecimiento (r) y resolución de la función de producción
- 4 Modelo de Verhlust: Valor de la tasa de crecimiento (r) y resolución de la función de producción
- 5 Comparación de P(Q) según modelos de Gompertz y Verhlust
- 6 Problema de valor inicial utilizando distintos métodos
- 7 Función de producción P(t): Modelo de Gompertz
- 8 Función de producción P(t): Modelo de Verhlust
- 9 Comparación de P(t) según Gompertz y Verhlust
- 10 Aproximación del modelo con nuevos datos
1 Introducción
- El problema nos pide el análisis de la explotación de un yacimiento de mineral. Dicha explotación sigue un modelo logístico de Gompertz, cuya ecuación tiene la siguiente forma:
:[math] {dQ \over dt}=rQlog ({K \over Q}) [/math]
donde Q(t) es la cantidad de mineral extraído, K la cantidad total extraíble y r la tasa intrínseca de crecimiento.
- En nuestro caso, sabemos que la extracción de mineral tendrá un crecimiento muy rápido de producción durante los primeros 25 años, momento a partir del cual descenderá lentamente debido a diversos factores. Además de esto, conocemos la cantidad total extraíble del yacimiento, por lo que nuestra ecuación inicial quedará de la siguiente forma:
:[math] {dQ \over dt}=rQlog ({10875 \over Q}) [/math]
2 Relación entre cantidad y producción
Mediante las siguientes gráficas, se demuestra que la relación entre Q y P es la siguiente:
- [math] {dQ \over dt}= P [/math]
o lo que es lo mismo:[math] P=Q' [/math]
3 Modelo de Gompertz: Valor de la tasa de crecimiento (r) y resolución de la función de producción
3.1 Tasa de crecimiento r
- Partimos del siguiente dato inicial:
- K= 10875 toneladas
- La ecuación del modelo de Gompertz es:
:[math]{dQ \over dt}=rQlog({K \over Q})[/math]
- Condición:
- P(t=25 años)= 240 t/año [math] \rightarrow [/math] P(25)=240 [math] \rightarrow [/math] Q'(25)=240
- Resolución:
La solución de la ecuación de Gompertz es la siguiente:
: [math] Q(t)=Ke^{-Ae^{-rt}} [/math]
El enunciado dice que la producción es máxima a los 25 años, por lo que si Q' tiene un máximo en un punto, Q"=0 en dicho punto.
Derivamos la ecuación inicial del modelo y la igualamos con la condición que hemos obtenido anteriormente.
: [math] Q"=r^2Qln({K \over Q})ln({K \over Q}-1)=0 [/math]
Despejando esta ecuación llegamos a que Q(25 años)= 4000,69 t.
Conociendo Q(25) podemos despejar "r" de nuestro problema:
: [math] Q'= rQ(25)ln({10375 \over Q(25)})=240 [/math]
Así obtenemos r=0,05999 [math] \simeq [/math] 0,06
Con estos datos, ya podemos despejar A de [math] Q(t)=Ke^{-Ae^{-rt}} [/math], siendo A=4,4705
Por lo tanto, nuestra ecuación del modelo de Gompertz quedará de la siguiente forma:
: [math] Q(t)=10875e^{-4,47e^{-0,6t}} [/math]
3.2 Función de producción P(Q)
Para obtener la función P(Q), obtendremos por un lado P(t) y por otro Q(t), para después representarlos en la forma P(Q).
CODIGO MATLAB
%Lo que haremos será calcular valores de Q para distintos valores de t, y
%luego calcular valores de P para esos mismo valores de t. Una vez tengamos
%los valores de P y Q en sendos vectores, los representaremos
K=10875;
A=4.47;
r=0.06;
t=0:1:100;
Q=zeros(1,101);
P=zeros(1,101);
for i=1:101
Q(1,i)=K*exp(-A*exp(-r*t(i)));
end
for j=1:101
P(j)=r*Q(j)*log(K/Q(j));
end
plot(Q,P,'*g')
xlabel('Cantidad de mineral extraída en toneladas')
ylabel('Producción de mineral en toneladas/año')
4 Modelo de Verhlust: Valor de la tasa de crecimiento (r) y resolución de la función de producción
4.1 Tasa de crecimiento r
- Partimos del siguiente dato inicial:
- K= 10875 toneladas
- La ecuación del modelo de Verhlust es:
- [math]{dQ \over dt}=rQ(1-{Q \over K})[/math]
- Condición:
- P(t=25 años)= 240 t/año [math] \rightarrow [/math] P(25)=240 [math] \rightarrow [/math] Q'(25)=240
- Resolución:
Para la resolución, utilizamos el mismo planteamiento que en el apartado anterior del modelo de Gompertz.
: [math] Q"=rQ'(1-{Q \over 5437,5})=0 [/math]
En el caso del modelo de Verhlust obtenemos r=0,0883 y Q(25 años)=5437,5 t. Así, la ecuación del modelo tendrá la siguiente forma:
: [math] Q'=0,0883Q(1-{Q \over 10875}) [/math]
4.2 Función de producción P(Q)
Como sabemos que P=Q', la ecuación de P(t) es la siguiente:
: [math] P(t)=0,0883Q(t)(1-{Q(t) \over 10875})=0 [/math]
La ecuación de Q(t) la hemos obtenido integrando la del modelo obtenida anteriormente, y tiene la forma:
: [math] Q(t)={1196,25e^0,088276t \over 1+11e^0.088276t} [/math]
Al igual que en el apartado anterior, obtenemos P(Q) dibujando ambas funciones en la misma gráfica:
[CODIGO MATLAB]
5 Comparación de P(Q) según modelos de Gompertz y Verhlust
6 Problema de valor inicial utilizando distintos métodos
6.1 Método de Euler
CODIGO MATLAB
%Apartado 5. Metodo de Euler
r=0.06;
k=10875;
t0=0;
tN=100; %Consideramos periodo de representacion de 100 años como suficientemente representativo graficamente
h=(1/12); %Nos piden que h sea de 1 mes. Hay 1/12 meses en un año
t=t0:h:tN; %t tiene 1201 elementos. 1201 eltos - 1 elemento inicial = 1200 eltos. 1200 elementos entre 100 años que hemos representado = 12 eltos.
%12 elementos por año, es decir, uno por cada mes. OK!!
Q0=124.4896; %Suponemos para Euler el mismo valor inicial que el obtenido con la condicion a t=25 años
%del problema sustituida en la ec. Gompertz programada segun la sol. analitica
Q=zeros(1,length(t));
P=zeros(1,length(t));
Q(1,1)=Q0;
P(1,1)=r*Q(1)*log(k/Q(1));
for i=1:length(t)-1
Q(1,i+1)=Q(1,i)+h*r*Q(1,i)*log(k/Q(1,i));
P(1,i+1)=r*Q(1,i+1)*log(k/Q(1,i+1));
end
for n=1:length(t)-1
P(1,n);
if P(1,n)>=25
Plim=P(1,n);
m=n;
end
end
Plim %Plim es el ultimo valor de la produccion que esta por encima de las 25t/año
m %Paso correspondiente al valor de Plim, se puede comprobar que P(m)=Plim=25t/año
%Ahora que ya conocemos el paso de tiempo en el que finaliza la vida util
%de la explotacion (m=787), se puede reescribir la funcion Q(t), que valdra
%0 a partir de dicho paso de tiempo
for j=m:length(t)-1
Q(1,j+1)=0;
end
figure
plot(t,Q(1,:))
xlabel('Tiempo en años')
ylabel('Cantidad de material extraido en toneladas')
legend('Cantidad de material extraido (Gompertz / Euler)','Location','Best')
figure
hold on
plot(t,P(1,:))
plot(t,t.*0+25,'r')
xlabel('Tiempo en años')
ylabel('Produccion en toneladas/año')
legend('Produccion (Gompertz / Euler)','Produccion limite (por debajo la vida util de la explotacion habra terminado)','Location','Best')
hold off
6.2 Método de Runge-Kutta
6.3 Método de Heun
7 Función de producción P(t): Modelo de Gompertz
- Utilizando el método de Heun aproximamos la función de producción P(t).
- A continuación obtenemos el punto de máxima producción, que es P(t)=240,18 para t=24,18 años.
- Para los puntos de mayor crecimiento y descenso hacemos...
CODIGO MATLAB
clear all
t0=0;
tN=100;
q0=124.5;
h=0.01;
N=(tN-t0)/h;
t=t0:h:tN;
q=zeros(1,N+1);
k=10875;
r=0.06;
q(1)=q0;
p=zeros(1,N+1);
p(1)=r*q0*log(k/q0);
for j=1:N
q(j+1)=q(j)+h*r*q(j)*log(k/q(j));
end
for i=1:N
k1=r^2*q(i)*log(k/q(i))*(log(k/q(i))-1);
k2=r^2*(q(i)+k1*h)*log(k/(q(i)+k1*h))*(log(k/(q(i)+k1*h))-1);
p(i+1)=p(i)+h/2*(k1+k2);
end
[t',p'];
plot(t,p)
%Obtenemos el año de máxima producción
max(p)
for g=1:N
if max(p)-p(g)<=0.01
break
end
end
y=g*tN/N;
7.1 Cantidad de mineral que queda por extraer
8 Función de producción P(t): Modelo de Verhlust
- En este caso volvemos a utilizar el método de Heun para aproximar la función.
- El punto de máxima producción que obtenemos es P(t)=240,18 para un tiempo t=50,38 años
- Los puntos de máximo y crecimiento son ???
CODIGO MATLAB:
clear all
t0=0;
tN=100;
q0=124.5;
h=0.01;
N=(tN-t0)/h;
t=t0:h:tN;
q=zeros(1,N+1);
k=10875;
r=0.0883;
q(1)=q0;
p=zeros(1,N+1);
p(1)=r*q0*(1-(q0/k));
for j=1:N
q(j+1)=q(j)+h*r*q(j)*(1-(q(j)/k));
end
for i=1:N
k1=r*p(i)*(1-(2*q(i)/k));
k2=r*(p(i)*(1-(2*(q(i)+k1*h)/k)));
p(i+1)=p(i)+h/2*(k1+k2);
end
[t',p'];
plot(t,p)
%Obtenemos el año de máxima producción
max(p)
for g=1:N
if max(p)-p(g)<=0.01
break
end
end
y=g*tN/N;
8.1 Cantidad de mineral que queda sin extraer
9 Comparación de P(t) según Gompertz y Verhlust
10 Aproximación del modelo con nuevos datos
- El enunciado nos dice que transcurridos 12 años del inicio de la explotación, se hace una revisión del comportamiento del modelo y se ajustan los datos de forma más real.
- Ahora, la cantidad extraída hasta ese año 12 es Q(12)=2695 toneladas, y se estima que quedan por extraer en la mina 9075 toneladas más.
- Con estos nuevos datos, calculamos los parámetros r y K, y aproximamos la función P(t).
10.1 Obtención de los parámetros r y K
- Para obtener K, simplemente sumamos la cantidad de mineral extraída hasta el momento y la cantidad que queda por extraer, y nos queda [math]K=2695+9075=11770 [/math]toneladas.
10.2 Producción
- Volvemos a aproximar el modelo utilizando el método de Heun.
- El punto de máxima producción que obtenemos es P(t)=400,87 toneladas para el tiempo t=16,33 años.
- La cantidad de mineral que queda sin extraer la obtenemos...???
CODIGO MATLAB
clear all
t0=0;
tN=100;
q0=124.5;
h=0.01;
N=(tN-t0)/h;
t=t0:h:tN;
q=zeros(1,N+1);
k=11770;
r=0.0925;
q(1)=q0;
p=zeros(1,N+1);
p(1)=r*q0*log(k/q0);
for j=1:N
q(j+1)=q(j)+h*r*q(j)*log(k/q(j));
end
for i=1:N
k1=r^2*q(i)*log(k/q(i))*(log(k/q(i))-1);
k2=r^2*(q(i)+k1*h)*log(k/(q(i)+k1*h))*(log(k/(q(i)+k1*h))-1);
p(i+1)=p(i)+h/2*(k1+k2);
end
[t',p'];
figure
plot(t,p)
figure
plot(t,q)
%Obtenemos el año de máxima producción
max(p)
for g=1:N
if max(p)-p(g)<=0.01
break
end
end
x=g*tN/N;