Anda di halaman 1dari 8

O OOO O OOO

O OOO O OOO
(1 (1
EJERCICIO DE APLICACIN DEL TEMA 1 - Vaciado de un depsito
Un depsito de agua reciclada para riego tiene forma cilndrica, siendo su radio de 10,00 m y la altura de llenado mximo de 5,00 m.
El depsito se vaca mediante una tubera de 00 mm de dimetro, siendo el tiempo diario de riego previsto de una !ora, momento en el "ue
llegar a la lnea de rellenado automtico.
a# $btener la altura a la "ue debe situarse el sensor de rellenado automtico, es decir, la altura del agua en el depsito al cabo de una !ora de
vaciado partiendo de la altura mxima de llenado.
restart;
Digits:=18;
Digits := 18
a.1) Resolucin del ejercicio mediante un mtodo numrico de resolucin de ecuaciones diferenciales.
(6 (6
(2 (2
O OOO O OOO
O OOO O OOO
O OOO O OOO
O OOO O OOO
O OOO O OOO
(5 (5
O OOO O OOO
(7 (7
(3 (3
(4 (4
En primer lugar se define la ecuacin diferencial de primer orden dh/dt como un determinada funcin F.
F:=(t,h)->-A0/Ad*(2*g*h(t))^(1/2);
F := t, h /K
A0 2 g h t
Ad
A continuacin se definen las distintas constantes que intervienen en la ecuacin diferencial anterior, en las unidades ms apropiadas para el clculo: A0
[m
2
], Ad [m
2
] y g [m!
2
].
R0:=0.10;
Rd:=10;
A0:=Pi*R0^2;
Ad:=Pi*Rd^2;
g:=9.81;
R0 := 0.10
Rd := 10
A0 := 0.0100
Ad := 100
g := 9.81
"e definen los e#tremos del intervalo en el cual se reali$a el clculo iterativo, considerando en este caso, por e%emplo, un intervalo de tiempo a&0 !oras y
'&(,2 !oras, e#presando am'os en segundos por co!erencia con las unidades de las constantes ya definidas.
a:=0;
b:=1.2*3600;
a := 0
b := 4320.0
"e define un paso de )&0,*, ya que al e#presar el tiempo en segundos, la precisin del m+todo es ms que suficiente para el pro'lema propuesto.
k:=0.5;
k := 0.5
"e definen los valores de arranque para el ,+todo de -unge./utta de orden 0, por entender que +ste m+todo proporciona una gran precisin.
x[1]:=a;
u_RK[1]:=5;
x
1
:= 0
u_RK
1
:= 5
1or tanto, el n2mero de partes N en que queda dividio el intervalo [a,']:
N:=floor((b-a)/k);
N := 8640
(10 (10
(13 (13
O OOO O OOO
(12 (12
O OOO O OOO
(8 (8
O OOO O OOO
O OOO O OOO
(9 (9
O OOO O OOO
O OOO O OOO
(11 (11
O OOO O OOO
O OOO O OOO
,+todo num+rico de -unge./utta de orden 0 para la resolucin de la ecuacin diferencial.
for i from 2 to N+1 do
x[i]:=x[1]+(i-1)*k;
K1:=evalf(k*F(x[i-1],u_RK[i-1]));
K2:=evalf(k*F(x[i-1]+(k/2),u_RK[i-1]+(K1/2)));
K3:=evalf(k*F(x[i-1]+(k/2),u_RK[i-1]+(K2/2)));
K4:=evalf(k*F(x[i],u_RK[i-1]+K3));
u_RK[i]:=evalf(u_RK[i-1]+(1/6)*(K1+2*K2+2*K3+K4));
od:
3uego la altura del depsito transcurrida ( !ora 45.600 s7, a partir de la cual comien$a el rellenado del depsito de riego es de ,0%0 m:
H_1hora:=u_RK[7200+1];
H_1hora := 2.07005201184865624
a.2) Resolucin del ejercicio mediante la secuencia de MAPL !ara o"tener la solucin e#cata de la ecuacin diferencial.
"e define la ecuacin diferencial dh/dt.
ED:=D(h)(t)=-A0/Ad*(2*g*h(t))^(1/2);
ED:= D h t = K0.000313209195267316505 2 h t
"e define la condicin inicial $inic, que indica que en t&0 el nivel del depsito es !&* m, ya que todav8a no !a empe$ado a desag9ar.
Hinic:=h(0)=5;
Hinic := h 0 = 5
"e resuelve la ecuacin diferencial con el valor inicial anterior, o'teni+ndose la solucin particular de la misma.
Sol:=dsolve({ED,Hinic},h(t));
Sol := h t = K
62641839053463301
200000000000000000000
2 t 5 C
3923999999999999990159402553816601
80000000000000000000000000000000000000000
t
2
C5
Sol:=evalf(Sol);
Sol := h t = K0.000990454441153150669 t C4.90499999999999999 10
-8
t
2
C5.
"e comprue'a por tanto que la ecuacin dfierencial tiene solucin e#acta.
A continuacin se representa grficamente la funcin solucin de la ecuacin diferencial en el intervalo [0,(], para lo cual se coge la parte derec!a de la
funcin %ol mediante el comando r!s&#.
Ec:=rhs(Sol);
Ec := K0.000990454441153150669 t C4.90499999999999999 10
-8
t
2
C5.
plot(Ec,t=0..10000,color=blue,thickness=3);
(14 (14
O OOO O OOO
O OOO O OOO
(15 (15
t
0 2000 4000 6000 8000 10000
0
1
2
3
4
5
"ustituyendo t&5.600 s en la cuacin se o'tiene la solucin e#acta.
H_1hora_exacta:=subs(t=3600,Ec);
H_1hora_exacta := 2.07005201184865759
El volumen de agua que se !a desaguado para el riesgo & [m
5
] es de:
V_1hora:=evalf(H_1hora_exacta*Ad);
V_1hora := 650.326019297251432
O OOO O OOO
(18 (18
O OOO O OOO
(19 (19
(17 (17
(16 (16
O OOO O OOO
O OOO O OOO
O OOO O OOO
a.') (om!aracin de los reultados o"tenidos !or am"os !rocedimientos.
"e define un vector , donde recoger los distintos resultados.
M:=array(1..2,1..4):
M[1,1]:='TABLA_COMPARATIVA':
M[1,2]:='Clculo_Runge-Kutta4':
M[1,3]:='Clculo_exacto':
M[1,4]:='Error':
M[2,1]:='H_1hora(m)':
M[2,2]:=H_1hora:
M[2,3]:=H_1hora_exacta:
M[2,4]:=abs(H_1hora-H_1hora_exacta):
print(M);
TABLA_COMPARATIVA Clculo_RungeKKutta4 Clculo_exacto Error
H_1hora m 2.07005201184865624 2.07005201184865759 1.35 10
-15
b# 'i por alg(n fallo no pudiese rellenarse, )cuanto tiempo tardara en vaciarse el depsito partiendo de la altura mxima de llenado*
'.(7 -esolucin del e%ercicio acoplando un procedimiento iterativo al ,+todo num+rico de -unge./utta de orden 0.
c:=0;
d:=3*3600;
c := 0
d := 10800
m:=0.5;
m:= 0.5
N:=floor((d-c)/m);
N := 21600
"e comparan los valores o'tenidos en la apro#imacin de u !asta encontrar el valor m8nimo en valor a'soluto.
for i from 2 to N+1 do
x[i]:=x[1]+(i-1)*k;
K1:=evalf(k*F(x[i-1],u_RK[i-1]));
K2:=evalf(k*F(x[i-1]+(k/2),u_RK[i-1]+(K1/2)));
K3:=evalf(k*F(x[i-1]+(k/2),u_RK[i-1]+(K2/2)));
K4:=evalf(k*F(x[i],u_RK[i-1]+K3));
u_RK[i]:=evalf(u_RK[i-1]+(1/6)*(K1+2*K2+2*K3+K4));
u_RK[i];
O OOO O OOO
O OOO O OOO
O OOO O OOO
(23 (23
(20 (20
O OOO O OOO
(25 (25
(21 (21
O OOO O OOO
O OOO O OOO
(22 (22
(24 (24
if u_RK[i]<u_RK[i-1] then
Xmin:=x[i];
u_RKmin:=u_RK[i];
fi;
od:
Hmin:=u_RKmin;
Hmin := 7.55482198698796263 10
-9
t_vaciado:=Xmin;
t_vaciado := 10096.0
t_vaciado_horas:=evalf(t_vaciado/3600);
t_vaciado_horas := 2.80444444444444444
".2) Resolucin anal)tica utili*ando a solucin e#acta de la ecuacin diferencial.
En este caso, 'asta con solucionar la ecuacin Ec&0, o'teniendo el tiempo t para el cual la altura de agua es !&0 m.
"e !an de re!acer los clculos con un n2mero mayor de d8gitos, ya que en caso contrario, la ecuacin de 2: grado proporciona n2meros imaginarios.
t_vaciado_exacta:=evalf(solve(Ec,t));
t_vaciado_exacta := 10096.3755660746801, 10096.3755277714090
t_vaciado_exacta_horas:=evalf(t_vaciado/3600);
t_vaciado_exacta_horas := 2.80444444444444444
".') (om!aracin de los reultados o"tenidos !or am"os !rocedimientos.
"e define un vector , donde mostrar los distintos resultados y poder comparar los valores
N:=array(1..2,1..4):
N[1,1]:='TABLA_COMPARATIVA':
N[1,2]:='Clculo_Runge-Kutta4':
N[1,3]:='Clculo_analitico':
N[1,4]:='Error':
N[2,1]:='t_vaciado(h)':
N[2,2]:=t_vaciado_horas:
N[2,3]:=t_vaciado_exacta_horas:
N[2,4]:=abs(t_vaciado_exacta_horas-t_vaciado_horas):
print(N);
TABLA_COMPARATIVA Clculo_RungeKKutta4 Clculo_analitico Error
t_vaciado h 2.80444444444444444 2.80444444444444444 0.
c# 'i se decide "ue el volumen necesario de riego es de 500,00 m
+
, )cunto tiempo tardara en regarse partiendo de la altura de llenado mxima*
(32 (32
O OOO O OOO
O OOO O OOO
O OOO O OOO
O OOO O OOO
O OOO O OOO
(26 (26
(28 (28
(29 (29
(31 (31
O OOO O OOO
O OOO O OOO
(33 (33
O OOO O OOO
(27 (27
(30 (30
O OOO O OOO
;oncocido el volumen de riego & y la seccin del depsito Ad, se puede !allar la altura de agua necesaria $+a,ua+re,ada.
V:=500;
V := 500
H_agua_regada:=evalf(V/Ad);
H_agua_regada := 1.59154943091895336
3uego la altura de agua en el depsito tras la operacin de riego $+rie,o.
H_riego:=5-H_agua_regada;
H_riego := 3.40845056908104664
A continuacin se e#presa la ecuacin diferencial de la forma dtd!.
G:=(H,t)->-(Ad/A0)/(2*g*H)^(1/2);
G:= H, t /K
1
2

Ad 2
A0 g H
c.1) Resolucin mediante un mtodo numrico.
m:=5;
n:=0;
m:= 5
n := 0
l:=-0.001;
l := K0.001
H[1]:=5;
t_RK[1]:=0;
H
1
:= 5
t_RK
1
:= 0
N:=floor((n-m)/l);
N := 5000
for i from 2 to N+1 do
H[i]:=H[1]+(i-1)*l;
K1:=evalf(l*G(H[i-1],t_RK[i-1]));
K2:=evalf(l*G(H[i-1]+(l/2),t_RK[i-1]+(K1/2)));
K3:=evalf(l*G(H[i-1]+(l/2),t_RK[i-1]+(K2/2)));
K4:=evalf(l*G(H[i],t_RK[i-1]+K3));
t_RK[i]:=evalf(t_RK[i-1]+(1/6)*(K1+2*K2+2*K3+K4));
if H[i]=3.408 then
O OOO O OOO
(35 (35
O OOO O OOO
(36 (36
(37 (37
(34 (34
O OOO O OOO
O OOO O OOO
(38 (38
O OOO O OOO
O OOO O OOO
t_riego:=t_RK[i];
fi;
od:
print(t_riego);
1760.90181568502802
t_riegoHORAS=t_riego/3600;
t_riegoHORAS = 0.489139393245841117
c.2) Resolucin anal)tica utili*ando a solucin e#acta de la ecuacin diferencial.
t_riego_exacta:=evalf(solve(Ec-H_riego,t));
t_riego_exacta := 18432.4002732626745, 1760.35082058341465
t_riego_exactaHORAS:=t_riego_exacta/3600;
t_riego_exactaHORAS := 5.12011118701740958, 0.488986339050948514
c.') (om!aracin de los reultados o"tenidos !or am"os !rocedimientos.
"e define un vector , donde mostrar los distintos resultados y poder comparar los valores
L:=array(1..2,1..4):
L[1,1]:='TABLA_COMPARATIVA':
L[1,2]:='Clculo_Runge-Kutta4':
L[1,3]:='Clculo_analitico':
L[1,4]:='Error':
L[2,1]:='t_riego(h)':
L[2,2]:=0.489139393245841117:
L[2,3]:=t_riego_exactaHORAS[2]:
L[2,4]:=abs(t_riego_exactaHORAS[2]-0.489139393245841117):
print(L);
TABLA_COMPARATIVA Clculo_RungeKKutta4 Clculo_analitico Error
t_riego h 0.489139393245841117 0.488986339050948514 0.000153054194892603

Anda mungkin juga menyukai