如果定义了函数,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.
的函数
我看到 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.