2017-10-07 24 views
2

我想在sympy中區分表達式,如下所示。我使用jupyter qtconsole啓用乳膠:diff的輸出無法渲染並啓用LaTeX

from sympy import * 
init_printing() 
p0,nu,lamb,k,epsp, dp0 = symbols(r'p_0, nu, lambda, kappa, \delta\epsilon_p^p, \deltap_0') 
test = Eq(epsp,((lamb-k)/nu)*dp0/p0) 
p0expr = solve(test,p0)[0] 
diff(p0expr, epsp) 
diff(p0expr,k) 
diff(p0expr,lamb) 

我想集中在最後三行代碼,行6,7和8線7,8輸出乳膠風格輸出,而6號線則沒有。爲什麼第6行不能輸出膠乳?

回答

0

從看文本輸出diff(p0expr, epsp)

-\deltap_0*(-kappa + lambda)/(\delta\epsilon_p^p**2*nu) 

問題是出在你平方名爲\delta\epsilon_p^p變量。 (其他兩個衍生物不具有它的平方)。如果這方獲取乳膠標記轉換爲

\delta\epsilon_p^p^2 

的結果是無效的乳膠由於多個上標。建議:在此符號名稱周圍放置花括號,

symbols(r'p_0, nu, lambda, kappa, {\delta\epsilon_p^p}, \deltap_0') 

這將防止名稱與包含它的公式之間產生干擾。

測試與http://live.sympy.org/

live sympy

頂出力是從你的版本,底部是用花括號如上。它呈現除了\deltap這當然是一個未定義的LaTeX命令。除非您在其他地方定義的是自定義的東西,否則應該使用{\delta}p_0來解決這個問題。

+0

對不起,但我試過你的方法,仍然是同樣的問題。更重要的是,如果我對最後兩個符號進行卷曲處理,它們都不會輸出乳膠。我的設置非常接近他們的主要文檔建議的設置。 Jupyter qtconsole是由相同的人誰做Ipython和anaconda,據我所知 – user32882

+0

在http://live.sympy.org/測試,它按預期工作。 – FTP