我正在尝试在 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)值的表达式。
尽管您首先声明x为 a sympy.Symbol,但一旦执行赋值x=y+z,x就会成为 a 的别名y+z。x每当您从该点之后使用时,x都会被 python 自动翻译为y+z.
如果您坚持使用此工作流程,则可以使用Eq(S('x'),y+z)显示方程。
我尝试使用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)
我认为这是解决问题的更通用的方法。