CoCalc Public FilesTareas / Tarea 5 (2020) Adsorción y teoría de movimiento del soluto.sagewsOpen with one click!
Author: Esteban Richmond-Salazar
Description: Soluciones a Tareas Masa 2
Compute Environment: Ubuntu 18.04 (Deprecated)

Problema N° 1

Valor: 22 puntos

Referencia: Datos del problema 12.1-1 de Geankoplis (1998)

A continuación se muestran los datos de la isoterma de adsorción de glucosa (en agua) utilizando alúmina.

c / (g/cm3)

0,0040

0,0087

0,019

0,024

0,094

0,195

q / (g/g)

0,026

0,053

0,075

0,082

0,123

0,129


q = mglucosa/malúmina
  1. [4 puntos] Ajuste a el modelo de Langmuir y Freundlich y justifique cuál de los dos modelos se ajusta mejor a los datos.
  2. [4 puntos] Suponga que va a realizar la purificación de 15 L de disolución 1,30 mol/L de glucosa utilizando una etapa con 20 kg de alúmina pura. ¿Cuál es la concentración final de la disolución?
  3. [4 puntos] ¿Cuál es la concentración final de la disolución si utiliza 2 etapas a flujo cruzado, en ambas utilizando 20 kg de alumina pura?
  4. [6 puntos] ¿Cuál es la cantidad de alúmina en cada etapa que minimiza la cantidad requerida para obtener igual concentración final de la configuración anterior y cuánta alúmina se ahorraría usando el mínimo?
  5. [4 puntos] ¿Cuál sería la concentración de salida si se emplea la cantidad total de sólido obtenida en el punto anterior pero usando una sola etapa?
# ==================== Problema 1 ==================== c = [0.004, 0.0087, 0.019, 0.024, 0.094, 0.195] # g/cm³, kg/L q = [0.026, 0.053 , 0.075, 0.082, 0.123, 0.129] # g/g, kg/kg html('<h2>Solución</h2>') datos_eq = zip(c,q) # Combina los datos de equilibrio %var c_A, q_A_max, K_Ac, n L = 15 # [L] c0 = 1.30 # [mol/L] antes 1.39 M = 180.156 # [kg/kmol] S1 = 20 # [kg] q0 = 0 # [kg/kg] S2 = 20 # [kg] c0 = c0*M/1000 # [kg/L] html('<h3>Parte a) Ajustar a el modelo de Langmuir y Freundlich</h3>') show("===== Isoterma de Langmuir =====") qA_L(c_A) = q_A_max*K_Ac*c_A / (1+K_Ac*c_A) ajuste = find_fit(datos_eq, qA_L, solution_dict = True) qA_L = qA_L(q_A_max= numerical_approx(ajuste[q_A_max], digits = 4), K_Ac= numerical_approx(ajuste[K_Ac], digits=4)) show(r"$K_{A,c} = $ ", numerical_approx(ajuste[K_Ac], digits=4), r" L/kg; $q_{A,máx} = $", numerical_approx(ajuste[q_A_max], digits=4), " kg/kg") show("$q_{A_L} = $", qA_L) show("===== Isoterma de Freundlich =====") qA_F(c_A) = K_Ac*c_A^(1/n) ajuste = find_fit(datos_eq, qA_F, solution_dict = True) qA_F = qA_F(n= numerical_approx(ajuste[n], digits=4), K_Ac=numerical_approx(ajuste[K_Ac], digits=4)) show(r"$K_{A,c} = $ ", numerical_approx(ajuste[K_Ac], digits=4), r" L/kg; $n = $", numerical_approx(ajuste[n], digits=4)) show("$q_{A_F} = $", qA_F) # Gráfica gr_datos = scatter_plot(datos_eq, axes_labels = ['$c_A/(\\mathrm{kg/L})$', '$q_A/(\\mathrm{kg/kg})$']) gr_Langm = plot(qA_L, xmin = 0, xmax = max(max(c),c0), thickness=2, legend_label = 'Langmuir', color = 'blue') gr_Frlch = plot(qA_F, xmin = 0, xmax = max(c), thickness=2, legend_label = 'Freundlich', color = 'green') show(gr_datos+gr_Langm+gr_Frlch) html('<h3>Parte b) Una etapa</h3>') def Calcula_etapa(W_L, W_S, c_entra, q_entra, q_isot): R.<c_sale> = QQ[] q_sale = q_isot(c_sale) f = c_sale - (W_S/W_L * (q_entra - q_sale) + c_entra) csale = find_root(f, 0, c_entra) return [csale, q_sale(c_sale=csale)] c1, q1 = Calcula_etapa(L, S1, c0, q0, qA_L) show (r'$c_1 = %.3g$ kg/L; $q_1 = %.3g$ kg/kg' %(c1,q1)) gr_etapa1 = line([(c0,q0),(c1,q1)], color = 'purple', thickness=2, legend_label = 'Etapa 1') + line([(c1,q1),(c1,0)], color = 'purple', linestyle= '--') \ + text("$c_0$", (c0, -0.005)) + text("$c_1$", (c1, -0.005)) + text("$ q = -\\frac{F}{S_1}(c-c_0)+q_0$", (0.15, 0.09), color = 'purple', fontsize = "large") show(gr_datos+gr_Langm+gr_etapa1) html('<h3>Parte c) Dos etapas a flujo cruzado, idénticas cantidades de sólido</h3>') c2, q2 = Calcula_etapa(L, S2, c1, q0, qA_L) show (r'$c_2 = %.3g$ kg/L; $q_2 = %.3g$ kg/kg' %(c2,q2)) gr_etapa2 = line([(c1,q0),(c2,q2)], color = 'magenta', thickness=2, legend_label = 'Etapa 2') + line([(c2,q2),(c2,0)], color = 'magenta', linestyle= '--') \ + text("$c_2$", (c2, -0.005)) + text("$ q = -\\frac{F}{S_2}(c-c_1)+q_0$", (0.045, 0.05), color = 'magenta', fontsize = "large") show(gr_datos+gr_Langm+gr_etapa1+gr_etapa2) html('<h3>Parte d) Dos etapas a flujo cruzado, calcular sólido mínimo</h3>') S1m = L*(c0-c_A)/(qA_L(c_A) + q0) # Alúmina requerida en la etapa 1 para obtnener una concentración c_A S2m = L*(c_A-c2)/(qA_L(c_A=c2) + q0) # Alúmina requerida en la etapa 2 con una concentración de entrada c_A STm = S1m+S2m # Alúmina total S_Tm, c1m = find_local_minimum(STm, c2, c0) q1m = qA_L(c1m) show (r"$S_{T}$ /kg $=$", STm) show (r"$S_{T, mín}= %.3g$ kg; $c_{1}= %.3g$ kg/L" %(S_Tm, c1m)) show (r"$Ahorro = %s $ kg" %(numerical_approx(((S1+S2)-S_Tm), digits=3))) show (r"$S_{1}= %s$ kg; $S_{2}= %s$ kg" %(numerical_approx(S1m(c1m), digits=3), numerical_approx(S2m(c1m), digits=3))) html('<h3>Parte e) Una etapa con total obtenido en d)</h3>') c1e, q1e = Calcula_etapa(W_L=L, W_S=S_Tm, c_entra=c0, q_entra=q0, q_isot=qA_L) show (r'$c_1 = %.3g$ kg/L; $q_1 = %.3g$ kg/kg' %(c1e, q1e)) gr_etapa1e = line([(c0,q0),(c1e,q1e)], color = 'green', thickness=2, legend_label = 'Una sola etapa %.3g kg'%S_Tm) + line([(c1e,q1e),(c1e,0)], color = 'green', linestyle = '--') gr_etapa2m = line([(c0,q0),(c1m,q1m)], color = 'purple') + line([(c1m,q1m),(c1m,0)], color = 'purple', linestyle= '--') \ + line([(c1m,q0),(c2,q2)], color = 'purple', legend_label = 'Dos etapas %.3g kg en total'%S_Tm) + line([(c2,q2),(c2,0)], color = 'purple', linestyle= '--') show(gr_datos+gr_Langm+gr_etapa1e+gr_etapa2m) # *** Final del código ***

Solución

Parte a) Ajustar a el modelo de Langmuir y Freundlich

===== Isoterma de Langmuir =====
KA,c=K_{A,c} = 61.43\displaystyle 61.43 L/kg; qA,maˊx=q_{A,máx} = 0.1413\displaystyle 0.1413 kg/kg
qAL=q_{A_L} = 8.678cA61.43cA+1\displaystyle \frac{8.678 \, c_{A}}{61.43 \, c_{A} + 1}
===== Isoterma de Freundlich =====
KA,c=K_{A,c} = 0.2282\displaystyle 0.2282 L/kg; n=n = 3.312\displaystyle 3.312
qAF=q_{A_F} = 0.2282cA0.3019\displaystyle 0.2282 \, c_{A}^{0.3019}

Parte b) Una etapa

c1=0.0783c_1 = 0.0783 kg/L; q1=0.117q_1 = 0.117 kg/kg

Parte c) Dos etapas a flujo cruzado, idénticas cantidades de sólido

c2=0.00939c_2 = 0.00939 kg/L; q2=0.0517q_2 = 0.0517 kg/kg

Parte d) Dos etapas a flujo cruzado, calcular sólido mínimo

STS_{T} /kg == 0.1152(61.43cA+1)(15cA3.51304200000000)cA+290.3cA2.725\displaystyle -\frac{0.1152 \, {\left(61.43 \, c_{A} + 1\right)} {\left(15 \, c_{A} - 3.51304200000000\right)}}{c_{A}} + 290.3 \, c_{A} - 2.725
ST,mıˊn=37.7S_{T, mín}= 37.7 kg; c1=0.0469c_{1}= 0.0469 kg/L
Ahorro=2.32Ahorro = 2.32 kg
S1=26.8S_{1}= 26.8 kg; S2=10.9S_{2}= 10.9 kg

Parte e) Una etapa con total obtenido en d)

c1=0.0237c_1 = 0.0237 kg/L; q1=0.0838q_1 = 0.0838 kg/kg

Problema N° 2

Valor: 15 puntos

Referencia: Adaptado de Problema 12.3-2 Geankoplis (1998)

Mediante cribas moleculares se elimina vapor de agua del nitrógeno gaseoso en un lecho relleno a 28.3 °C. La altura de la columna es de 0.268 m y la densidad del lecho es 712.8 kg/m³. La concentración inicial del agua en el sólido es q0=mH2O/mS=0.01 kg/kgq_{0} = m_{H_{2}O}/m_{S} = 0.01 \text{ kg/kg} y la velocidad de masa del nitrógeno gaseoso es de 4052 kg/(m² h).
La concentración inicial de agua en el gas es Y0=mH2O/mN2=926106 kg/kgY_0 = m_{H_{2}O}/m_{N_2} = 926*10^{-6} \text{ kg/kg}.
A continuación se muestran los datos experimentales

t / ( h )

0

9

9.2

9.6

10

10.4

10.8

11.25

11.5

12

12.5

12.8

Y*106 /(kg/kg)

0.6

0.6

2.6

21

91

235

418

630

717

855

906

926

Se desea una concentración de salida Y=0.02Y0Y = 0.02 Y_0 en el punto de ruptura. Determine:
  1. [5 puntos] Tiempo del punto de ruptura, fracción de la capacidad total usada hasta el punto de ruptura, la altura del lecho sin utilizar, la capacidad de carga de saturación del sólido.
  2. [4 puntos] Si la columna se aumenta a 0.4 m, determine el nuevo tiempo de ruptura.
  3. [6 puntos] Calcule la altura que debería tener el lecho si el tiempo de ruptura se fija en 24 h pero con un flujo de nitrógeno de 6000 kg/(m² h), manteniendo diámetro constante e iguales características del sólido.
# ==================== Problema 2 ==================== html('<h2>Solución</h2>') # Datos experimentales lista_t = [0 , 9 , 9.2, 9.6, 10, 10.4, 10.8, 11.25, 11.5, 12, 12.5, 12.8] # [h] #lista_t = [0 , 4 , 4.2, 4.6, 5, 5.4, 5.8, 6.25, 6.5, 7, 7.5, 7.8] # [h] lista_Y = [0.6, 0.6, 2.6, 21 , 91, 235 , 418 , 630 , 717 , 855, 906 , 926 ] # [*10^-6 kg/kg] datos_t_Y = zip(lista_t, lista_Y) # Datos adicionales t = 28.3 # [°C]g/kg P = 1 # [atm] L = 0.268 # [m] rho_b = 712.8 # [kg/m^3] q_0 = 0.01 # [kg/kg] G_s = 4052 # [kg/(m^2 h)] Y_0 = 926 # [*10^-6 kg/kg] Y_rup = 0.02*Y_0 # [*10^-6 kg/kg] L_parte_b = 0.4 # [m] t_rupt_c = 24 # [h] G_s_c = 6000 # [kg/(m^2 h)] # Ajuste de datos lista_Yn = [Y/Y_0 for Y in lista_Y] datos_t_Yn = zip(lista_t, lista_Yn) a, b, t = var('a, b, t') modelo(t) = Y_0/2 * (1 + erf(a*t-b)) ajuste = find_fit(datos_t_Y, modelo, initial_guess=[1, max(lista_t)], solution_dict = True) Y(t) = modelo(a=ajuste[a], b=ajuste[b]) Y(t) # Cálculo de tiempos t_sat = max(lista_t) t_ideal = numerical_approx(numerical_integral(1-Y/Y_0, 0, max(lista_t))[0], digits = 4) t_rupt = find_root(Y(t) == Y_rup, 0, t_sat) print "t_rupt =", numerical_approx(t_rupt, digits = 3), "h" print "t_ideal =", t_ideal.numerical_approx(digits = 3), "h" print "t_agot =", t_sat.numerical_approx(digits = 3), "h" # Cálculo de fracción sin utilizar qA_rup = G_s*Y_0*10^-6/(L*rho_b) * numerical_integral(1-Y/Y_0, 0, t_rupt)[0] #+ q_0 print "qA_rupt =", qA_rup.numerical_approx(digits = 3), "kg/kg" qA_max = G_s*Y_0*10^-6/(L*rho_b) * t_ideal + q_0 print "qA_max =", qA_max.numerical_approx(digits = 3), "kg/kg" f_util = qA_rup/qA_max f_nout = 1-f_util print "Fracción utilizada =", f_util.numerical_approx(digits = 3) print "Fracción no utilizada =", f_nout.numerical_approx(digits = 3) LES = L*f_util LUB = L*f_nout print "LUB =", LUB.numerical_approx(digits = 3), "m" scatter_plot(datos_t_Yn, axes_labels = ["$t/(\mathrm{h})$", ""]) \ + plot(Y/Y_0, xmin = 0, xmax=15, legend_label = "$Y/Y_0$", color = 'orange') \ + plot(1-Y/Y_0, xmin = 0, xmax=15, legend_label = "$1-Y/Y_0$", color = 'purple') \ + plot(unit_step(t-t_ideal), xmax = 15, legend_label = "$1-Y_{ideal}/Y_0$") print "=== Parte b ===" LES_b = L_parte_b - LUB # LES_2/t_rup2 = LES/t_rup t_rupt_b = LES_b/LES*t_rupt print "LES =", LES_b.numerical_approx(digits = 3), "m" print "t_rupt =", t_rupt_b.numerical_approx(digits = 3), "h" print "=== Parte c ===" LUB_c = LUB * G_s_c/G_s # Despejando LES de q_max = m_sat/m_S = (G_s * Y0 * t_ideal)/(A_c * LES * rho_b) LES_c = G_s_c*Y_0*10^-6*t_rupt_c/(rho_b*qA_max) L_c = LES_c + LUB_c print "Nuevo LUB =", LUB_c.numerical_approx(digits = 3), "m" print "Nuevo LES =", LES_c.numerical_approx(digits = 3), "m" print "Nueva L =", L_c.numerical_approx(digits = 3), "m" # *** Final del código ***

Solución

463*erf(0.9522085536048622*t - 10.389243416543025) + 463 t_rupt = 9.39 h t_ideal = 10.9 h t_agot = 12.8 h qA_rupt = 0.184 kg/kg qA_max = 0.224 kg/kg Fracción utilizada = 0.821 Fracción no utilizada = 0.179 LUB = 0.0478 m
=== Parte b === LES = 0.352 m t_rupt = 15.0 h === Parte c === Nuevo LUB = 0.0708 m Nuevo LES = 0.834 m Nueva L = 0.905 m

Problema N° 3

Valor: 24 puntos

Referencia: Esteban Richmond (2019)

Una columna de 6 cm de diámetro interno se rellena con 80 cm de alúmina activada. Al inicio se hace pasar ciclohexano puro a través de la columna por unos 5 min, luego de esto se introduce una alimentación de antraceno disuelto en ciclohexano a una concentración de 0.010 mol/L y se mantiene constante durante 10 min, luego se aumenta la concentración de la alimentación a 0.015 mol/L y se mantiene así por 15 min, finalmente se introduce ciclohexano puro por 60 min.

En todo momento el flujo alimentado se mantiene estable en 0,30 L/min.

Aplique la teoría del movimiento del soluto y elabore una gráfica con el perfil de concentración a la salida durante el tiempo de la corrida (90 min de duración).

Datos:

Isoterma de Langmuir: qA=20cA1+350cA, estando qA en mol/kg y cA en mol/L.q_A = \frac{20 c_A}{1+350 c_A}\text{, estando } q_A \text{ en mol/kg y } c_A\text{ en mol/L.}

Kd,A=1.0K_{d,A} = 1.0,

ρb=1200\rho_b = 1200 kg/m³ (densidad aparente del lecho en ciclohexano)

ρf=780\rho_f = 780 kg/m³,

εe=0.4\varepsilon_e = 0.4

εp=0.1\varepsilon_p = 0.1

# ==================== Problema 3 ==================== html('<h2>Solución</h2>') cA = var('cA') # F = Dar flujo y área transversal, con ello calcular u_S F = 0.30/1000 # m³/min Dc = 6/100 # m Ac = pi/4*Dc^2 Hc = 80 # cm t0 = 0 # min c0 = 0 # mol/L t1 = 5 # min inicio alimentación c1 c1 = 0.01 # mol/L t2 = t1+10 # min inicio alimentación c2 c2 = 0.015 # mol/L t3 = t2+15 # min inicio alimentación c3 c3 = 0 # mol/L t4 = t3+60 # min final operación u_s = F/Ac*100 # cm/min print("u_s = %.3g cm/min"%u_s) # Datos adicionales eps_e = 0.4 eps_p = 0.1 Kd = 1.0 #rho_S = 1.465 # kg/L qA(cA) = 20*cA/(1+350*cA) rho_f = 0.78 rho_b = 1.2 rho_p = (rho_b - eps_e*rho_f)/(1-eps_e) rho_S = (rho_p - eps_p*rho_f)/(1-eps_p) print("Densidad de la partícula, rho_p = %.3g kg/L"%rho_p) print("Densidad del sólido, rho_S = %.3g kg/L"%rho_S) # Perfil alimentación line([(t0, c0),(t1,c0),(t1,c1),(t2,c1),(t2,c2),(t3,c2),(t3,c3),(t4,c3)], xmin = t0, axes_labels=['$t$/min','$c_F$/(g/L)']) print "Usando modelo para onda de choque" DqDc (c_antes, c_desp) = (qA(cA = c_desp)-qA(cA = c_antes))/(c_desp-c_antes) u_inter = u_s / eps_e uA_sh(c_antes,c_desp) = u_inter/(1 + (1-eps_e)/eps_e *eps_p* Kd + (1-eps_e)*(1-eps_p)/eps_e * rho_S * DqDc(c_antes,c_desp)) u_sh1 = uA_sh(c0, c1) u_sh2 = uA_sh(c1, c2) t_s1 = t1 + Hc/u_sh1 t_s2 = t2 + Hc/u_sh2 t_s3 = 0 print("Tiempo que tardaría en recorrer Hc onda de choque 1, Delta t_sh1 = %.3g min" %(Hc/u_sh1)) print("Tiempo que tardaría en recorrer Hc onda de choque 2, Delta t_sh2 = %.3g min" %(Hc/u_sh2)) print("Momento en que saldría onda de choque 1, t_sh1 = %.3g min" %(t_s1)) print("Momento en que saldría onda de choque 2, t_sh2 = %.3g min" %(t_s2)) #[t_s1, t_s2, t_s3] show ("$u_{sh1} = $", numerical_approx(u_sh1, digits=4), " cm/min; $u_{sh2} = $", numerical_approx(u_sh2, digits=4), " cm/min") if(t_s1 <= t_s2): show("Las ondas de choque no coinciden") gr_onda1 = line([(t0,0),(t1,0),(t_s1, Hc)], legend_label='Onda de choque 1') gr_onda2 = line([(t0,0),(t2,0),(t_s2, Hc)], legend_label='Onda de choque 2', axes_labels=['$t$/min','$L$/cm'], color = 'green', xmax = t_s2+2,) gr_perfil = line([(t0,c0),(t_s1,c0),(t_s1,c1)]) + line([(t_s1,c1),(t_s2,c1),(t_s2,c2),(t_s2+2,c2)], axes_labels=['$t$/min','$c_{sale}$/(g/L)']) show(gr_onda1+gr_onda2) show ("$t_{esc1} = $", numerical_approx(t_s1, digits=3), " min; $t_{esc2} = $", numerical_approx(t_s2, digits=3), " min") else: show("Las ondas de choque coinciden y se genera una tercera") t_inter = t1+(t2-t1)*u_sh2/(u_sh2-u_sh1) z_inter = u_sh1*(t_inter-t1) u_sh3 = uA_sh(c0, c2) show ("$u_{sh3} = $", numerical_approx(u_sh3, digits=4), " cm/min; $t_{inter} = $", numerical_approx(t_inter, digits=4), " min; $z_{inter} = $", numerical_approx(z_inter, digits=4), " cm") t_s3 = t_inter+(Hc-z_inter)/u_sh3 gr_onda1 = line([(t0,0),(t1,0),(t_inter, z_inter)], legend_label='Onda de choque 1') gr_onda2 = line([(t0,0),(t2,0),(t_inter, z_inter)], legend_label='Onda de choque 2', color = 'green') gr_onda3 = line([(t_inter,z_inter),(t_s3, Hc)], legend_label='Onda de choque 3', color = 'red', axes_labels=['$t$/min','$L$/cm'], xmax = t_s3+2) gr_perfil = line([(t0,c0),(t_s3,c0),(t_s3,c2)], axes_labels=['$t$/min','$c_{sale}$/(g/L)']) show(gr_onda1+gr_onda2+gr_onda3) print("Tiempo salida onda de choque 3 = %.3g min"%t_s3) # Onda difusa print "Onda difusa" N_dat = 50 conc = [c2+i*(c3-c2)/(N_dat-1) for i in range(N_dat)] # mol/m³. u_A(cA) = u_inter/(1 + (1-eps_e)/eps_e *eps_p* Kd + (1-eps_e)*(1-eps_p)/eps_e * rho_S * derivative(qA)) t_esc = [t3+numerical_approx(Hc/u_A(c), digits=4) for c in conc] print "Tiempos de salida en minutos:", t_esc conc t_max = t_esc[5] lista_tc = zip(t_esc,conc) lista_tc.insert(0,(max(t_s2,t_s3),c2)) #line([(t0, c0),(t1,c0),(t1,c1),(t_s1,c1),(t_max,c1)], xmax=t_max, axes_labels=['$t$/min','$c_F$/(mol/L)']) gr_perfil + line(lista_tc, xmax = t4) # ****** Fin solución problema 3 *****

Solución

u_s = 10.6 cm/min Densidad de la partícula, rho_p = 1.48 kg/L Densidad del sólido, rho_S = 1.56 kg/L
Usando modelo para onda de choque Tiempo que tardaría en recorrer Hc onda de choque 1, Delta t_sh1 = 31.7 min Tiempo que tardaría en recorrer Hc onda de choque 2, Delta t_sh2 = 7.98 min Momento en que saldría onda de choque 1, t_sh1 = 36.7 min Momento en que saldría onda de choque 2, t_sh2 = 23 min
ush1=u_{sh1} = 2.527\displaystyle 2.527 cm/min; ush2=u_{sh2} = 10.03\displaystyle 10.03 cm/min
Las ondas de choque coinciden y se genera una tercera
ush3=u_{sh3} = 3.366\displaystyle 3.366 cm/min; tinter=t_{inter} = 18.37\displaystyle 18.37 min; zinter=z_{inter} = 33.79\displaystyle 33.79 cm
Tiempo salida onda de choque 3 = 32.1 min Onda difusa Tiempos de salida en minutos: [36.72, 36.83, 36.95, 37.08, 37.21, 37.35, 37.50, 37.66, 37.83, 38.01, 38.20, 38.40, 38.62, 38.85, 39.09, 39.35, 39.63, 39.94, 40.26, 40.61, 40.99, 41.40, 41.84, 42.32, 42.84, 43.41, 44.04, 44.72, 45.48, 46.31, 47.23, 48.26, 49.40, 50.69, 52.13, 53.76, 55.62, 57.75, 60.20, 63.03, 66.34, 70.25, 74.89, 80.47, 87.25, 95.62, 106.1, 119.5, 137.0, 160.3] [0.0150000000000000, 0.0146938775510204, 0.0143877551020408, 0.0140816326530612, 0.0137755102040816, 0.0134693877551020, 0.0131632653061224, 0.0128571428571429, 0.0125510204081633, 0.0122448979591837, 0.0119387755102041, 0.0116326530612245, 0.0113265306122449, 0.0110204081632653, 0.0107142857142857, 0.0104081632653061, 0.0101020408163265, 0.00979591836734694, 0.00948979591836735, 0.00918367346938775, 0.00887755102040816, 0.00857142857142857, 0.00826530612244898, 0.00795918367346939, 0.00765306122448980, 0.00734693877551020, 0.00704081632653061, 0.00673469387755102, 0.00642857142857143, 0.00612244897959184, 0.00581632653061225, 0.00551020408163265, 0.00520408163265306, 0.00489795918367347, 0.00459183673469388, 0.00428571428571429, 0.00397959183673469, 0.00367346938775510, 0.00336734693877551, 0.00306122448979592, 0.00275510204081633, 0.00244897959183673, 0.00214285714285714, 0.00183673469387755, 0.00153061224489796, 0.00122448979591837, 0.000918367346938776, 0.000612244897959184, 0.000306122448979592, 0.000000000000000]