繁体   English   中英

用任意参数替换sympy函数

[英]substitute sympy function with arbitrary arguments

这应该是一项简单的任务,但我很难让它在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定义为类以进行此替换?

当你像这样进行高级表达式操作时 (好吧,你的例子仍然很简单), replace方法非常有用:

test.replace(f, lambda arg: 2*arg)  # returns: 2*x + 2*y

来自文档:

[replace]遍历表达式树并执行从树的底部到顶部的匹配子表达式的替换。

文档的第二个示例表明,任何函数都可以替换为其参数的另一个函数,如上面的示例所示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM