这应该是一项简单的任务,但我很难让它在Sympy中工作。 我想用具有特定公式的任意参数替换未定义的函数,例如:
from sympy import *
var('a b c')
f= Function('f')
test= f(a+b)
lin= test.subs({f(c):2*(c)})
print(lin)
我希望打印出来
2*(a+b)
然而,为此,我必须使用
lin= test.subs({f(a+b):2*(a+b)})
我是否必须将f定义为类才能进行此替换?
答案 0 :(得分:4)
当你这样做advanced expression manipulation时(好吧,你的例子仍然很简单),replace method非常有用:
test.replace(f, lambda arg: 2*arg) # returns: 2*x + 2*y
来自文档:
[replace]遍历表达式树并执行从树的底部到顶部的匹配子表达式的替换。
文档的第二个例子表明,任何函数都可以替换为其参数的另一个函数,如上例所示。