也许我忽略了明显但你如何防止同情重新排列方程?
我在iPython笔记本中使用Sympy,因此我可以轻松地将Latex代码复制粘贴到Lyx,但我希望方程式与我定义它们的顺序相同.
例如,灰体辐射的公式是其温度的函数:

Sympy自动将温度组件放在前面,这给出了一个非常不寻常的公式表示.反正有没有阻止这个?
目前,SymPy无法完全按照输入的内容进行打印,因为该信息甚至无法保存在任何地方.
我相信乘法,符号按字母顺序排列,大写字母在小写字母之前(基本上是从的顺序ord).我能想到的最好的技巧是使用symbol_names选项latex,它允许您在其LaTeX表示中更改用于符号的名称.订购仍将基于原始符号的名称,因此您可以欺骗它:
>>> from sympy.abc import epsilon, omega, t
>>> latex(epsilon*sigma*t**4, symbol_names={t:"T"})
\epsilon \sigma T^{4}
Run Code Online (Sandbox Code Playgroud)
如果你想在笔记本中打印出漂亮的打印效果,那么你必须编写一个自定义版本的打印扩展,将你的symbol_namesdict 传递给你latex.见https://github.com/sympy/sympy/blob/master/sympy/interactive/printing.py(理想情况下一个可以只通过该latex选项init_printing,我将在SymPy bug跟踪系统的可打开的问题).
如果您希望产品的参数按给定顺序出现,您可以从这些参数创建 Mul,然后告诉打印机您不希望它们重新排序,如此处所示的Add。所以对于你的例子你可以这样做
>>> var('epsilon, sigma, T')
(epsilon, sigma, T)
>>> this = Mul(epsilon, sigma, T**4, evaluate=False)
>>> StrPrinter({'order':'none'})._print_Mul(this)
epsilon*sigma*T**4
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1838 次 |
| 最近记录: |