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.

4 Responses to “pyBigParser, un evaluador de funciones complejas en Python”


  1. Fatal error: Uncaught Error: Call to undefined function ereg_replace() in /home/specia91/public_html/cacheme.org/wp-content/themes/definition/includes/theme-comments.php:64 Stack trace: #0 /home/specia91/public_html/cacheme.org/wp-content/themes/definition/includes/theme-comments.php(20): the_commenter_link() #1 /home/specia91/public_html/cacheme.org/wp-includes/class-walker-comment.php(180): custom_comment(Object(WP_Comment), Array, 1) #2 /home/specia91/public_html/cacheme.org/wp-includes/class-wp-walker.php(146): Walker_Comment->start_el('', Object(WP_Comment), 1, Array) #3 /home/specia91/public_html/cacheme.org/wp-includes/class-walker-comment.php(140): Walker->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #4 /home/specia91/public_html/cacheme.org/wp-includes/class-wp-walker.php(371): Walker_Comment->display_element(Object(WP_Comment), Array, '5', 0, Array, '') #5 /home/specia91/public_html/cacheme.org/wp-includes/comment-template.php(2094): Walker->paged_walk(Array, '5', 0, 0, Array) #6 /home/specia91/ in /home/specia91/public_html/cacheme.org/wp-content/themes/definition/includes/theme-comments.php on line 64