首页 > 解决方案 > 如果定义了函数,Sympy 可以识别表达式中的函数吗?

问题描述

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

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

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

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

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

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

谢谢。

标签: pythonfunctionsympysymbolic-math

解决方案


我认为 Sympy 目前不支持您想要做的事情(例如,参见这个 stackoverflow question)。然而,可以用这段代码完成一些非常接近的事情:

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的函数。


推荐阅读