%matplotlib inline import numpy as np import matplotlib.pyplot as plt from IPython.html.widgets import interact # En Python los comentarios se escriben con una almohadilla def funcion_prueba(x): print(x) interact(funcion_prueba, x=(1,10,1)) def Isoterma_1(K): #Hacemos un vector para la presión parcial de A. Este rango corresponde con el eje de adcisas. Pa = np.linspace(0,1,1000) #Definimos la ecuación de la Isoterma. Theta_a = (K*Pa) / (1 + K*Pa) #Escribimos los comandos necesarios para represetar los resultados. #Con este primer comando delimitamos el tamaño de la figura. fig = plt.figure(figsize=(10, 8)) #Representa el vector de theta frente al de presiones parciales. plt.plot(Pa,Theta_a) #Establece los límites de la figura. plt.ylim([0,1]) plt.xlim([0,0.1]) #Coloca el título de los ejes y a la figura. plt.ylabel('theta') plt.xlabel(u'Presión parcial de A') plt.title(u'REPRESENTACIÓN DE LA ISOTERMA DE LANGMUIR') interact(Isoterma_1, K = (0,150,0.5)) # Si quieres cambiar el estilo de las figuras # con este comando (opcional) puedes hacerlo plt.style.use('ggplot') # Para ver otros estilos disponibles puedes usar: # print plt.style.available def Isoterma_1(T,Ea): #Hacemos un vector para la presión parcial de A. Este rango corresponde con el eje de adcisas. Pa = np.linspace(0,1,1000) #Coeficiente R R = 8.314 #Coeficiente preexponencial ko = 10**(-8) #Definimos K K = ko*np.exp(-(Ea*1000)/(R*T)) #Definimos la ecuación de la Isoterma. Theta_a = (K*Pa) / (1 + K*Pa) #Escribimos los comandos necesarios para represetar los resultados. #Con este primer comando delimitamos el tamaño de la figura. fig = plt.figure(figsize=(10, 8)) #Representa el vector de theta frente al de presiones parciales. plt.plot(Pa,Theta_a) #Establece los límites de la figura. plt.ylim([0,1.5]) plt.xlim([0,0.1]) #Coloca el título de los ejes y a la figura. plt.ylabel('theta') plt.xlabel(u'Presión parcial de A') plt.title(u'REPRESENTACIÓN DE LA ISOTERMA DE LANGMUIR') # Cambiamos el estilo por defecto (opcional) plt.style.use('ggplot') interact(Isoterma_1, T = (0,500,0.5), Ea = (-100,0,0.5) ) def Isoterma_2(T,Ea_a,Ea_b): #Coeficiente R (gases ideales) R = 8.314 #Coeficiente prexponencial ko = 10**(-8) #Definimos el coeficiente para el componente A Ka = ko*np.exp(-(Ea_a*1000)/(R*T)) #Definimos el coeficiente para el componente B Kb = ko*np.exp(-(Ea_b*1000)/(R*T)) #Vectores de presiones parciales y presión total Pa = np.linspace(0,.25,1000) Pb = np.linspace(0,.25,1000) P = Pa + Pb #Función para representar la adsorción de A Ocupacion_a = (Ka*Pa) / (1 + Ka*Pa + Kb*Pb ) #Función para representar la adsorción de B Ocupacion_b = (Kb*Pb) / (1 + Ka*Pa + Kb*Pb ) plt.figure(figsize=(8, 5)) plt.plot(P,Ocupacion_a, label='A component') plt.plot(P,Ocupacion_b, label='B component') plt.ylim([0,1]) plt.xlim([0,0.1]) plt.ylabel(r'$\theta$ / fractional-occupancy') plt.xlabel(u'$ p_A $ / Partial pressure ') plt.title(u'Langmuir adsorption model for two components') plt.legend() # Cambiamos el estilo por defecto (opcional) plt.style.use('ggplot') interact(Isoterma_2, T = (0.5,500,0.5), Ea_a = (-100,0,0.5), Ea_b = (-100,0,0.5) ) def Isoterma_3(K_1 , K_2 , K_3): #Coeficiente R (gases ideales) en kJ/molK R = 8.31*(10**(-3)) #Coeficiente de equilibrio de adsorción de A #K_a = k_0*np.exp(E_a/(R*T)) #K_1 = 100 #K_2 = 10 #K_3 = 1 #Hacemos un vector para la presión de A P = np.linspace(0,1,1000) Ocupacion_1 = ((K_1*P)**(0.5)) / (1 + ((K_1*P)**(0.5))) Ocupacion_2 = ((K_2*P)**(0.5)) / (1 + ((K_2*P)**(0.5))) Ocupacion_3 = (K_3*P) / (1 + K_3*P) fig = plt.figure(figsize=(10, 6)) plt.plot(P,Ocupacion_1) plt.plot(P,Ocupacion_2) plt.plot(P,Ocupacion_3) plt.ylim([0,1]) plt.xlim([0,0.1]) plt.ylabel(r'$\theta$ / fractional-occupancy') plt.xlabel(u'$ p_A $ / Partial pressure $') # Cambiamos el estilo por defecto (opcional) plt.style.use('ggplot') interact(Isoterma_3, K_1 = (0,150,0.5) , K_2 = (0,150,0.5), K_3 = (0,150,0.5))