在 SymPy 中解析包含用户定义函数的符号表达式

Parsing a symbolic expression that includes user-defined functions in SymPy

我有一些方程式可以调用其他函数。我想象征性地写这个,在 Sympy 中可以这样做吗?

这是我正在尝试做的一个简化示例:

x = sp.Symbol('x')
omega = sp.Function('omega')(x ** 2)

eq_1 = sp.sympify("omega(x)")

eq_1 正在使用参数 x 调用函数 omega,返回 x**2。关于如何实现这个的任何想法?

x = sp.Symbol('x')
omega = sp.Lambda(x, x**2)
eq_1 = sp.sympify("omega(x)", locals={"omega": omega})

要点:

  • Lambda 是一种创建执行特定操作的 SymPy 函数的方法
  • localssympify 的参数,其中 links 输入的子字符串,例如 "omega",到您创建的 SymPy 对象。没有它,sympify 只会 link built-in 像 expsin 一样的功能,但它不会猜测输入中的 "omega" 是否真的表示您的函数,或不相关的字母 omega。