如果定义了函数,Sympy 可以识别表达式中的函数吗?

Can Sympy identify functions in expressions, if fuctions are defined?

我看到 Sympy 有一个 sympy.Function 功能,但在文档中找不到以下问题的答案。

是否可以在表达式中找到自定义函数并使用函数定义来简化它们。

作为一个非常简单的例子,我定义函数:f(x) = 2 * exp(x).

现在假设我有一些 Sympy 表达式:6 * exp(y + z)

是否可以告诉 Sympy 简化此表达式以根据函数 f 给出结果...即 Sympy 的输出是:3 * f(x).

我发现使用 .subs() 可以简单地替换变量,但这似乎不适用于包含符号作为参数的函数,如上所述。

谢谢。

我认为 Sympy 目前不支持您想做的事情(例如,请参阅此 Whosebug )。不过,可以用这段代码做一些非常接近的事情:

from sympy import symbols, exp

x, f = symbols('x, f')
expr = 6 * exp(x)
f_func = 2 * exp(x)

print(expr.subs({f_func: f}))
# 3 * f

在上面的代码中,我假设您要简化的表达式(代码中的 expr)是 x.

的函数