2013-04-04 8 views
15

Chcę przetworzyć formuły LaTeX i użyć ich bezpośrednio jako wyrażeń SymPy. Innymi słowy, co potrzebne jest coś podobnego do sympify:Konwertuj formułę LaTex na typ, który może być używany wewnątrz SymPy

from sympy import sympify 
f = sympify('x^2 + sin(y) + 1/2') 
print f 

ale to może potrwać wyrażeń LaTeX (łańcuchy) jako dane wejściowe, na przykład:

f = latex_sympify('\frac{x}{1+x}') 

Zważywszy, że sympify jest w stanie konwertować string z regularnym wyrażeniem matematycznym do obiektu SymPy, jeśli istnieje coś, co może przekonwertować LaTeXa do regularnego wyrażenia matematycznego, myślę, że to by się udało, ale wolałbym robić wszystko w Pythonie.

Wszelkie sugestie będą mile widziane.

+0

Chyba coś takiego nie istnieje ... W każdym razie, ma mnóstwo LaTeX funkcji dla formuł, a więc która z nich powinna być zawarta co najmniej? Czy potrzebujesz obsługi tablic/macierzy/dwumianów itp.? – Bakuriu

+0

Nie ma jeszcze funkcji Sympy. Zobacz https://code.google.com/p/sympy/issues/detail?id=2319. Być może uda Ci się znaleźć dodatkowy analizator składni, który potrafi przekonwertować LaTeX na coś podobnego do Pythona, które SymPy może następnie przeanalizować. – asmeurer

+0

Również patche mile widziane :) – asmeurer

Odpowiedz

2

chciałbym spojrzeć na narzędzia, które przekształcają się lateks, takich jak MathML (przez google): http://www.mathtowebonline.com/

Następnie można przetwarzać XML, który pochodzi z tego. Powinieneś jednak uważnie interpretować wynik jako wyrażenie matematyczne. Takie narzędzia mogą gwarantować, że reprezentacja tekstowa jest równa, ale braketing (grupowanie) operandów z ich operatorami może nie być tym, czego oczekujesz. Generalnie zobaczysz mniej zagnieżdżenia. Operatory, które są tuż obok siebie, które interpretujemy zgodnie z konwencją jako zagnieżdżone, zostaną po prostu przekształcone w elementy rodzeństwa w formacie XML. Jeśli spróbujesz zinterpretować to jako formuły, pozostaje jeszcze trochę pracy do wykonania (odzyskanie struktury zagnieżdżonej we właściwy sposób).

Powiązane problemy