gpt4 book ai didi

python - 在 SymPy 中用 (-M) 替换矩阵 M 并明确显示它

转载 作者:太空宇宙 更新时间:2023-11-03 21:38:54 27 4
gpt4 key购买 nike

假设我有以下矩阵表达式:

import sympy
sympy.init_printing(use_unicode=True)
x = sympy.MatrixSymbol('x', 2, 2)
y = sympy.MatrixSymbol('y', 2, 2)

a = x * y

我想用相同的矩阵乘以负一来替换第二个矩阵:

a.subs(y, (-y))

如果xy是常规SymPy符号,则这将显示为-xy。但在本例中,它显示为x - y。尽管在替换矩阵值时它可以正确计算(即作为 -xy),但该演示很快就会变得不明确。如何让它正确显示?

sympy.init_printing()未被调用时,它明确显示为x\*(-y)

我在 Jupyter 中使用它。

最佳答案

这是 SymPy 的 LaTeX 打印机中的一个错误:它不认为 MatMul(Integer(-1), MatrixSymbol(...)) 在乘积中需要括号。

在错误修复之前,解决方法是使用“漂亮”打印而不是 LaTeX:

sympy.init_printing(use_latex=False)

结果为x⋅(-y)。 pretty-print 通常比 str 输出(例如 x*(-y))更具可读性。

<小时/>

The big is fixed in the current master branch因此不应出现在 1.3 以上的 SymPy 版本中。

关于python - 在 SymPy 中用 (-M) 替换矩阵 M 并明确显示它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53044835/

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