Es una función que, a base de una ecuación matemática en String, devuelve una función que resuelve la ecuación en base de un valor 'x'.
Es parecido a lo que hace la función SciTools.StringFunction pero corregiendo el bug al elevar un número negativo a una potencia fraccional. Primero el código y luego unos ejemplos
from math import *
def converter(fx):
"""Devuelve una funcion que resuelve, mediante la varable 'x', la funcion expresada en la cadena de texto 'fx'
"""
def operacion(x):
funcion=fx
resultado=funcion.replace('x',str(x))
resultado = eval(resultado)
return resultado
return operacion
Por ejemplo, tengo la siguiente ecuación en String:
"2*x**2 + 1"
(Aclaro que la ecuación debe estar en formato de Python), entonces hago lo siguiente:
f=converter("2*x**2 + 1")
#f ya es una función que resuelve la ecuación con cualquier número como parámetro, por ejemplo:
print f(1)
3
print f(2)
9
print f(0)
1
Y como dije, no tiene el bug que se obtiene al elevar un número negativo al elevarlo a una potencia fraccional.
No hay comentarios:
Publicar un comentario