python - 防止 Sympy 重新排列等式

标签 python sympy

也许我忽略了显而易见的东西,但你如何防止 sympy 重新排列方程式?

我在 iPython notebook 中使用 Sympy,因此我可以轻松地将 Latex 代码复制粘贴到 Lyx,但我希望方程的顺序与我定义它们的顺序相同。

例如,灰体辐射作为其温度函数的公式:

enter image description here

Sympy 自动将温度组件放在前面,这给出了一个非常不寻常的公式表示。有什么办法可以防止这种情况发生吗?

最佳答案

目前,SymPy 无法完全按照输入的内容打印内容,因为该信息甚至没有保存在任何地方。

我相信乘法,符号按字母顺序排列,大写字母在小写字母之前(基本上是 ord 中的顺序)。我能想出的最好的技巧是使用 latexsymbol_names 选项,它允许您更改符号在其 LaTeX 表示中使用的名称。排序仍将基于原始交易品种的名称,因此您可以欺骗它:

>>> from sympy.abc import epsilon, omega, t
>>> latex(epsilon*sigma*t**4, symbol_names={t:"T"})
\epsilon \sigma T^{4}

如果你想让它在笔记本上打印得很好,你必须编写一个自定义版本的打印扩展,将你的 symbol_names 字典传递给 latex。参见 https://github.com/sympy/sympy/blob/master/sympy/interactive/printing.py (理想情况下,可以将 latex 选项传递给 init_printing,我将为此在 SymPy 错误跟踪器中打开一个问题)。

关于python - 防止 Sympy 重新排列等式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14624511/

相关文章:

python - 使用 basemap 获取城市 map 的最佳方式?

python - 什么是python中的抽象类?

python - 使所有符号在 sympy 表达式中可交换

python - 求解有条件的非线性方程组

python - 省略某些替换值时使用 SymPy subs 方法

python - 使用 python 登录网站并进行网页抓取

python - 在 Theano 中定义一个带循环的函数

python - 如何将键中嵌套的Python字典值替换为以点分隔的字符串格式?

python - Sympy 导数中的精确用户定义表达式

python - sympy错误 'Symbol'对象不可调用