有没有办法用sympy输出包含等号的方程?

问题描述 投票:0回答:2

同情

A = Matrix([[1,1],[2,2],[0,0]])
MatMul(A.T, A, evaluate=False)

我可以输出这样的方程

有没有办法输出这样包含等号的方程?

python sympy
2个回答
5
投票

以下内容应该有效。

Eq
是一个
Equality
容器,打印时用
=
分隔左侧和右侧。发送左侧和右侧(可能未评估),将返回未评估的
Eq
,可以将其传递给
pprint
latex
(以获取乳胶表示):

eq = lambda l, r: Eq(l, r, evaluate=False)
e = eq(MatMul(A.T, A, evaluate=False), A.T*A)
>>> pprint(e)  # or latex(e)

0
投票

对于 ipython 用户(以及带有

#%%
分隔符的 vscode),这将产生一个漂亮的图形显示。 方程中的
evaluate=False
阻止评估和将结果还原为 True 或 False..

display(Eq(MatMul(A.T, A, evaluate=False), A.T*A, evaluate=False))

另一个有用的变体是显示变量名称,如下所示:

display(Eq(S('A'),A, evaluate=False))
© www.soinside.com 2019 - 2024. All rights reserved.