2016-04-07 24 views
1

Bir ifadeyi, herhangi bir manipülasyon veya basitleştirme olmadan istediğimin olup olmadığını iki kez kontrol etmek için yazdıracağım. İşte basit bir örnek: Bu ifade biraz manipüle ettiGirilen baskı ifadesi girilen

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

ama oldukça adil bunu girilen sıraya göre basılmış görmek istiyorum, bu yüzden karşı kolayca kontrol edebilirsiniz Yazdığım formüller.

Bunu yapmanın bir yolu var mı?

cevap

1

Sen Ancak

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) 

kullanarak bazı sadeleştirmeler önleyebilirsiniz, bazı basitleştirmeler kaçınılmazdır. Örneğin, terimleri aynı sırada tutmanın bir yolu yoktur ve 1/x ve x**-1 gibi bazı ifadeler de aynı şekilde dahili olarak temsil edilir. Bununla birlikte, sympify(evaluate=False)'un geliştirilebileceği yerler kesinlikle vardır.

İlgili konular