我只是想知道是否有一种方法在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)
Run Code Online (Sandbox Code Playgroud)
如果我把cos,sin或exp作为输入,那么我有一个输出: -2*l*sin(l**2)
如果我想使输入函数更通用,例如多项式或复数函数,或者可能是组合cos,sin和exp的函数???
作为一种语法,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)
Run Code Online (Sandbox Code Playgroud)
之后我们可以替代和评估:
>>> f.subs({'x': 2})
sin(2) + 8
>>> f.subs({'x': 2}).evalf()
8.90929742682568
Run Code Online (Sandbox Code Playgroud)
另请参阅我的答案,了解一些其他技巧,您可以通过一些工作来完成:
>>> f = definition_to_function("f(x) = sin(x) + x**3")
>>> f(3)
27.14112000805987
Run Code Online (Sandbox Code Playgroud)