2016-06-09 14 views
5

Choć może to zabrzmieć głupio, chciałbym użyć złożonych greckich liter jako jednego symbolu w SymPy. Na przykład, jeśli po wprowadzeniu w Jupyter Notebook:Czy istnieje właściwy sposób ustawiania złożonych greckich liter jako symbolu w programie SymPy?

import sympy as sp 
ab = sp.Symbol("alpha beta") 
sp.pprint(ab) 

ab zachowuje dowolnie stosowane w manipulacji symbolami, a wyjście jest:

alpha beta 

Chciałbym wyjście jest:

α⋅β 

mogę użyć polecenia Subs po manipulacji, tak jak poniżej:

ab.subs({ab : sp.Symbol("alpha") * sp.Symbol("beta")}) 

ale jest to nużące i niepożądane.

+0

Czy dodać "*" między każdą pracą char? '>>> pprint (alpha * beta) α⋅β' –

+0

Nie. Jeśli wziąłem pochodną tego wyrażenia w odniesieniu do" alpha ", dostałbym" beta ". Chcę otrzymać zero. –

Odpowiedz

4

Nazwy symboli mogą być dowolnymi ciągami, ale automatyczne przekształcanie greckich liter w litery na greckie w celu drukowania nie działa dla wszystkich danych wejściowych. Domyślam się, że nie próbuje podzielić ciągu w spacjach.

Jeśli używasz notebooka Jupyter, można po prostu ustawić nazwę symbolu być lateksu, co chcesz

ab = Symbol(r'\alpha\cdot\beta') 

(nie zapomnij poprzedzić ciąg z r, tak że Python robi "zjedzone ukośniki")

Jeśli używasz zwykłego tekstu, możesz ustawić go na ciąg znaków Unicode. Powinno to również działać w notebooku Jupyter, chociaż będzie renderować nieco inaczej, ponieważ będzie renderować rzeczywiste znaki Unicode zamiast LaTeX.

ab = Symbol(u'α⋅β') 
+0

Właśnie tego potrzebowałem! Dziękuję Ci! –

Powiązane problemy