编程语言
首页 > 编程语言> > python-用任意参数替换sympy函数

python-用任意参数替换sympy函数

作者:互联网

这应该是一件容易的事,但是我很难让它在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定义为类才能进行替换?

解决方法:

当您以这种方式执行advanced expression manipulation时(好吧,您的示例仍然很简单),replace method非常有用:

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

从文档:

[replace] Traverses an expression tree and performs replacement of matching subexpressions from the bottom to the top of the tree.

文档的第二个示例显示,任何函数都可以用对其参数起作用的另一个函数替换,如上例所示.

标签:substitution,sympy,python
来源: https://codeday.me/bug/20191028/1954937.html