Ejemplo de como definir una punción en python calculando el factor de compresibilidad Z del gas
Una función se puede definir como un bloque de código al cual se le coloca un nombre para poder llamarla desde cualquier parte del programa, su principal característica es que la función debe de devolver un valor.
Las funciones le permiten automatizar tareas comunes, evite copiar y pegar. Para crear una nueva función, debe elegir un nombre para la función, enumerar las entradas o argumentos y colocar el código que ha desarrollado en el cuerpo de la función.
Para crear una función en Python usamos el comando “def” el cual permite definir una palabra reservada.
Plantilla de función básica: nombre y cuerpo
def mifuncion():
#acciones de la función
Generalmente para que una función ejecute una instrucción necesitan información, esta se pasa usando parámetros, los cuales se definen dentro de los parámetros después del nombre de la función
def mifuncion(Parametro_1, Parametro_2):
#acciones de la función
Las funciones pueden devolver valores al proceso principal con la instrucción “return”. En el momento de devolver un valor, la ejecución de la función finalizará
def mifuncion(Parametro_1, Parametro_2):
#acciones de la función
= Parametro_1 + Parametro_2
Resultado
return Resultado
Ejemplo: función para estimar el factor de compresibilidad Z del gas usando correlación de Papay
\[ z = 1-\frac{3.53p_{pr}}{10^{0.9813T_{pr}}}+\frac{0.274p_{pr}^2}{10^{0.8157T_{pr}}}\]
En este caso se definen dos argumentos, presión pseudoreducida y temperatura pseudoreducida. La función se llama z_papay y en su cuerpo está la ecuación. Al final definimos el valor que se devolverá como resultado almacenado en la variable “Z”.
def z_papay(Ppr, Tpr):
= 1-(3.53*Ppr)/(10**(0.9813*Tpr))+(0.274*Ppr**2)/(10**(0.8157*Tpr))
z
return(z)
Una vez que la función esté en el entorno, podemos usarla para calcular el valor Z.Usando valores de \(Ppr = 1\) y \(Tpr = 1\)
= z_papay(1,1)
z print(z)
0.6733526557640547
Para calcular el factor Z para verios valores de \(Ppr\) y \(Tpr\) usamos una expresión generadora. Este tipo de expresiones generan una serie de valores, para lo cual internamente se usa un bucle for, y los valores que generan se pueden calcular a partir de una expresión arbitraria. La sintaxis general de la expresión generadora es:
“expresion for elemento in iterable”
Generamos una lista con valores de \(Ppr\) de 0 a 8, y dos valores de \(Tpr\)
= list(range(0, 8, 1))
Ppr = 1.6
Tpr = 1.3
Tpr2
= [z_papay(element,Tpr) for element in Ppr]
zcal = [z_papay(element,Tpr2) for element in Ppr]
zcal2
print(zcal)
[1.0, 0.9185779062578696, 0.8642989820007001, 0.8371632272284913, 0.8371706419412435, 0.8643212261389566, 0.9186149798216303, 1.0000519029892652]
print(zcal2)
[1.0, 0.8367371799365374, 0.7211581270150493, 0.6532628412355361, 0.6330513225979975, 0.6605235711024335, 0.7356795867488441, 0.8585193695372297]
Los resultados se alamcenan en dos listas \(zcal\) y \(zcal2\), las cuales junto con la lista de los valores \(Ppr\) podemos graficar para visualizar los resultados. Para ello importamos la libreria “matplotlib”
import matplotlib.pyplot as plt
= "red", linewidth = 4);
plt.plot(Ppr,zcal, color = "blue", linewidth = 4);
plt.plot(Ppr,zcal2, color 'Presión pseudoreducida');
plt.xlabel('Factor Z');
plt.ylabel(; plt.show()