我只是想知道是否有一种方法在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的函数???
答案 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代码混合使用。
包装很大,但我有很好的经验。它是免费和开源的。