math - 将 Sympy 表达式简化为变量的隐式函数

标签 math sympy simplify mathematical-expressions simplification

我想知道是否有任何方法可以通过根据已定义的变量重写表达式来简化 Sympy 表达式,从而使 Python 收集适合该变量定义的术语。

提前致谢。

最佳答案

像你所描述的那样,这样的事情并不完全存在,但是做你想做的事并不难。

首先是 cse() function ,它自动提取公共(public)子表达式作为变量。但是,如果您需要的话,它不会使用预定义的变量。但是,如果您的目标只是简化表达式的计算,并且您并不真正关心中间表达式是什么,cse是你最好的选择。

您可以使用的一个技巧是隔 ionic 表达式的单个部分并替换它们。例如,假设您有一个表达式 expr包含x + y ,并且您想要替换 x + yz 。只是做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/

相关文章:

Python:类型错误: 'exp' 对象不可调用

z3 - 简化 CNF 公式,同时保留某些变量的所有解决方案

c++ - 将角度转换为弧度

javascript - 使用 Javascript Math 创建圆形图案中的虚线

使用 sympylambdaify 和 scipy 的 Python 优化索引总和

sympy - 使用涉及 SymPy 中变量之间关系的假设简化表达式

math - 由角度分隔的轴

java - 在任何给定时间计算球的坐标 (x,y)

java - 简化 Java 代码

php - 在 PHP 中为 PDO 查询创建容器函数