【问题标题】:substitute sympy function with arbitrary arguments用任意参数替换 sympy 函数
【发布时间】:2015-01-14 22:35:12
【问题描述】:

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

【问题讨论】:

    标签: python sympy substitution


    【解决方案1】:

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

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

    来自文档:

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

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

    【讨论】:

    • 谢谢!这正是我一直在寻找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多