SoloCodigo

Programación Web y Scripting => Python => Mensaje iniciado por: juankepler en Lunes 31 de Enero de 2011, 18:05

Título: Leer ecuación
Publicado por: juankepler en Lunes 31 de Enero de 2011, 18:05
Hola!
Quiero que mi programa le pida al usuario que ingrese un sistema de ecuaciones y para luego lo resolverlo.
Sé cómo resolver el sist. de ec. por medio de iteraciones, pero el usuario al ingresar las ecuaciones, éstas son un texto y no puedo evaluarlas para cada valor de x.
¿Cómo puedo convertir el texto de las ecuaciones una función?

Ej. del sistema de ecuaciones que podría ingresar el usuario (x1, x2, x3, son las variables):
"3*x1-cos(x2*x3)-1/2"
"x1**2-81*(x2+1/10)**2+sin(x3)+1.06"
"exp((-x1)*x2)+20*x3+(10*pi-3)/3"

Ej de la función que deseo generar:
def func(x1,x2,x3): #Defino el sistema de ecuaciones a resolver
        f=matrix ([1.]*3) #Creo un vector con tantos elementos como ecuaciones tengo
        f[0,0]= 3*x1-cos(x2*x3)-1/2
        f[0,1]= x1**2-81*(x2+1/10)**2+sin(x3)+1.06
        f[0,2]= exp((-x1)*x2)+20*x3+(10*pi-3)/3
        return f #Le pido a la función que me devuelva el valor de “f” como resultado

Gracias!
Título: Re: Leer ecuación
Publicado por: m0skit0 en Lunes 31 de Enero de 2011, 18:59
Código: Python
  1. import compiler
  2. eq= "sin(x)*x**2"
  3. ast= compiler.parse( eq )
  4.  

http://stackoverflow.com/questions/5942 ... -in-python (http://stackoverflow.com/questions/594266/equation-parsing-in-python" onclick="window.open(this.href);return false;)