在Sympy表达式中寻找函数

5
我希望你能够找到一种强大的方法来查找Sympy表达式中的功能参数。例如,在下面的示例中,如何从operator中检索出f
import sympy

x, y = sympy.symbols('x y')
f = sympy.Function('f')
operator = x*f(x, y).diff(x) + y*f(x, y)

print(operator.free_symbols)
# prints {x, y}
1个回答

5
方法expr.atoms(class)返回expr中所有属于该类的对象集合。因此,
operator.atoms(sympy.Function)

将返回f(x, y)。如果您想忽略函数的参数,请使用

[a.func for a in operator.atoms(sympy.Function)]

(对于SymPy对象a,a.func是其“函数”部分,a.args是其“参数”部分。)
请注意,如果operator包含,比如sin(x),那么上述代码也将包括在内。要仅返回未定义(非内置)函数,请将sympy.Function替换为sympy.function.AppliedUndef作为类选择器中的atoms。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接