在python代码中输入符号函数

时间:2013-03-12 18:22:28

标签: python sympy

我只是想知道是否有一种方法在python代码中输入符号函数?

就像我的代码一样:

from sympy import *
import numpy as np
import math
myfunction = input("enter your function \n")
l = Symbol('l')

print myfunction(l**2).diff(l)

如果我把cos,sin或exp作为输入,那么我的输出为:-2*l*sin(l**2)

什么如果我想让输入函数更通用,比如多项式或复数函数,或者可能是组合cos,sin和exp的函数???

2 个答案:

答案 0 :(得分:9)

作为一种语法,sin + cos根本不会很好地运作。让一般情况起作用的最简单方法是给同情一个表达式进行评估。我们可以让sympify努力将字符串转换为sympy对象:

>>> s = raw_input("enter a formula: ")
enter a formula: sin(x) + x**3
>>> s
'sin(x) + x**3'
>>> f = sympy.sympify(s)
>>> f
x**3 + sin(x)

之后我们可以替换和评估:

>>> f.subs({'x': 2})
sin(2) + 8
>>> f.subs({'x': 2}).evalf()
8.90929742682568

另请参阅我的回答here了解您可以通过一些工作获得的其他技巧:

>>> f = definition_to_function("f(x) = sin(x) + x**3")
>>> f(3)
27.14112000805987

答案 1 :(得分:1)

如果您需要对符号功能提供良好支持,则应考虑使用sage

它是python的预处理器,具有许多数学支持,包括符号函数。 Sage代码可以与普通的python代码混合使用。

包装很大,但我有很好的经验。它是免费和开源的。