我想知道是否有任何方法可以通过根据已定义的变量重写表达式来简化 Sympy 表达式,从而使 Python 收集适合该变量定义的术语。
提前致谢。
最佳答案
像你所描述的那样,这样的事情并不完全存在,但是做你想做的事并不难。
首先是 cse()
function ,它自动提取公共(public)子表达式作为变量。但是,如果您需要的话,它不会使用预定义的变量。但是,如果您的目标只是简化表达式的计算,并且您并不真正关心中间表达式是什么,cse
是你最好的选择。
您可以使用的一个技巧是隔 ionic 表达式的单个部分并替换它们。例如,假设您有一个表达式 expr
包含x + y
,并且您想要替换 x + y
与 z
。只是做expr.subs(x + y, z)
经常有效。但在某些情况下不会,因为 subs
仅替换x + y
如果它在表达式中准确地找到它。
您可以使用的一个技巧是“解决”(如果您愿意,您可以使用 solve
自动完成)替换 z = x + y
对于单个变量,例如 x = y - z
,然后替换它( expr.subs(x, y - z)
)。因为x
在哪里没有歧义。看起来就像 x + y
,这将在所有地方替换它。您通常必须expand
使事物抵消的表达式。
关于math - 将 Sympy 表达式简化为变量的隐式函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50418965/