2013-01-31 50 views
6

也許IM俯瞰明顯,但如何防止sympy從重新排列方程式?防止Sympy從整理上式

進出口使用Sympy在IPython的筆記本電腦,所以我可以很容易地複製 - 粘貼乳膠代碼LYX,但我想我定義他們在同一順序的公式。

例如,對於灰體輻射作爲其溫度的函數的公式:

enter image description here

Sympy自動將溫度部件向前方,其給出下式的一個非常不尋常的表示。無論如何要防止這一點?

回答

7

目前,還沒有辦法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} 

如果你想要這個漂亮的印刷精美的筆記本,你就必須編寫打印擴展的自定義版本將symbol_names字典傳遞給latex。見https://github.com/sympy/sympy/blob/master/sympy/interactive/printing.py(理想情況下一個可以只通過latex選項init_printing,我將在SymPy bug跟蹤系統的可打開的問題)。

+0

我打開[此](http://code.google.com/p/sympy/issues/detail?id=3613)和[此](http://code.google.com/p/sympy/問題/細節?編號= 3612)SymPy問題,我在我的答案中提到的事情。 – asmeurer

+0

非常感謝您回答並解決問題。我認爲這將是一個很好的補充事件,儘管可視化並不是Sympy真正的內容。筆記本電腦的未來看起來不錯,將其轉換爲pdf /博客或幻燈片可能在不久的將來是常見的東西。 –

+3

雖然我們關心可視化。如果沒有它的打印功能,SymPy不會像它那樣有用。 – asmeurer