2016-04-07 106 views
1

我想漂亮打印一個表達式,仔細檢查它是我想要的,沒有任何操作或簡化。這裏有一個簡單的例子:漂亮的打印表達如輸入

from sympy import * 
import abc 
init_session() 

sigma_1, sigma_0, mu_1, mu_0,x = symbols("sigma_1 sigma_0 mu_1 mu_0 x") 
diff = log(1/(sqrt(2*pi*sigma_1**2)) * exp(-(x-mu_1)**2/(2*sigma_1**2))) - log(1/(sqrt(2*pi*sigma_0**2)) * exp(-(x-mu_0)**2/(2*sigma_0**2))) 
diff 

enter image description here

這操縱表達了一點,但我想看到它只是在我進入它的順序漂亮的印刷,所以我可以很容易地檢查它,我寫下的公式。

有沒有辦法做到這一點?

回答

1

您可以通過使用

sympify("log(1/(sqrt(2*pi*sigma_1**2)) * exp(-(x-mu_1)**2/(2*sigma_1**2))) - log(1/(sqrt(2*pi*sigma_0**2)) * exp(-(x-mu_0)**2/(2*sigma_0**2)))", evaluate=False) 

但是避免了一些簡化,不能避免一些簡化。例如,沒有辦法以相同的順序保留條款,並且一些表達式,如1/xx**-1在內部以相同的方式表示。據說,肯定有地方可以改進sympify(evaluate=False)