2017-10-07 96 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