Categorías
Python

pyBigParser, un evaluador de funciones complejas en Python

En ingeniería química es común el uso de largas y complejas expresiones matemáticas para, por ejemplo, la obtención de parámetros termodinámicos en compuestos que intervienen en un proceso a modelar.

pyBigParser es una librería escrita en Python que permite crear objetos para el almacenamiento de funciones y su evaluación. Gracias a esta librería la función se puede dividir en «bloques» facilitando su implementación y evaluando la misma con otros parámetros a posteriori.

Por ejemplo, la ecuación:

$latex \left ( 24+6*c \right )^2+\left ( 2* \frac{25}{d} \right )$

se puede escribir de forma más compacta de la siguiente forma:

$latex (x)^2+\left ( 2*y \right )$

siendo:

$latex x=24+6*c$

$latex y=2*\frac{25}{d}$

Para hacer esto con pyBigParser:

from pybigparser import evaluator

mybig = evaluator.bigFunction()
mybig.setFunction("x**2+2*y")
mybig.addSub("x", "24+6*c")
mybig.addSub("y", "25 / d")
mybig.addSub("c", "1")
mybig.addSub("d", "4")

mybig.evaluate()

¿Sencillo no? En el momento de escribir esta entrada pyBigParser tiene una media de 500 descargas diarías.

Si estás iniciandote en programación con Python, puede que te ayude ver el vídeo-ejemplo que el propio creador (Nelson Carrasquel) ha publicado en nuestro canal de YouTube de CAChemE.

Por CAChemE

CAChemE es una comunidad formada por ingenieros químicos y estudiantes que pretende estimular las posibilidades de software en la ingeniería de procesos química y organización industrial. Nuestro objetivo es fomentar el uso de las nuevas posibilidades que ofrece el software de libre con su más directa aplicación a la universidad e industria.