如何在 sympy 中显示完整的表达式?

psy*_*dia 4 sympy

我正在尝试在 Jupyter 笔记本中使用sympy以可重复的方式记录和执行一系列数学计算。

如果我定义以下内容:

from sympy import *

init_printing()
x, y, z = symbols("x y z")

x=y+z
x
Run Code Online (Sandbox Code Playgroud)

然后我可以显示x(即y+z)的值。

如何显示完整的方程 ( x=y+z)?

运行Eq(x,y+z),即使有evaluate=False) 返回具有x替换 ( y+z=y+z)值的表达式。

Ste*_*ios 5

尽管您首先声明x为 a sympy.Symbol,但一旦执行赋值x=y+zx就会成为 a 的别名y+zx每当您从该点之后使用时,x都会被 python 自动翻译为y+z.

如果您坚持使用此工作流程,则可以使用Eq(S('x'),y+z)显示方程。

  • @iury simoes-sousa:使用“显示(Eq(S('x'),y + z,评估= False))”。将显示完整的表达式,而不是“True”或“False” (3认同)

Iur*_*usa 5

我尝试使用Eq(S('x'),y+z),Eq(S('x'),x)sympy继续返回一个布尔变量。

所以我找到了一种使用Ipython内置函数来显示它的方法:

from sympy import *
from IPython.display import display, Math

init_printing()
x, y, z = symbols("x y z")

x=y+z
display(Math('x = '+latex(x)))
Run Code Online (Sandbox Code Playgroud)

我认为这是解决问题的更通用的方法。