gpt4 book ai didi

python - 保留 sympy 方程中符号的顺序

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:30 25 4
gpt4 key购买 nike

我想按以下顺序保留方程的结构。

*请注意,这是在 sympy 中。

Eq=A*X+B*U

其中 X,U 被分配给其他方程。

Sympy 使用在别处分配的变量来扩展我的符号。所以它最终是这样的:Bx+Bx**2+3*A*x我想做的是保留 A X B U 的顺序。

更新澄清:你好!谢谢您的回复。

  1. 尝试不同的选项后,我发现通过使用 Matrixsymbols,可以不对矩阵中的元素进行操作。但是我仍然无法显示所需的顺序。

  2. 这样做的原因是我可以将其保存在 jupyter 笔记本中,其中的顺序可能有助于解释或记录特定过程。

最佳答案

当您创建带有变量的表达式时,这些变量的值将在创建过程中使用,例如

>>> x = cos(3)
>>> eq = x + 2
>>> eq
cos(3) + 2

因此,如果您希望 eq 看起来像 x + 2,则必须确保 x 被定义为符号 x

>>> x = Symbol('x')
>>> eq = x + 2
>>> eq
x + 2

如果您有多个符号并且想要控制顺序,请使用未计算的表达式:

>>> A,B,X,U = symbols('A B X U')
>>> ax = Mul(A, X, evaluate=False)
>>> bu = Mul(B, U, evaluate=False)
>>> eq = Add(ax, bu, evaluate=False)
>>> eq
A*X + B*U

您可以替换为您想要的值

>>> eq.subs({U:x+x**2, X:3*x})
3*A*x + B*(x**2 + x)
>>> expand(_)
3*A*x + B*x**2 + B*x

这对您想做的事情有帮助吗?

关于python - 保留 sympy 方程中符号的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42727473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com