SymPy - Impression

Il existe plusieurs imprimantes disponibles dans SymPy. Voici une liste partielle -

  • str
  • srepr
  • Jolie imprimante ASCII
  • Jolie imprimante Unicode
  • LaTeX
  • MathML
  • Dot

Les objets SymPy peuvent également être envoyés en sortie vers du code de divers langages, tels que C, Fortran, Javascript, Theano et Python.

SymPy utilise des caractères Unicode pour rendre la sortie sous forme de jolie impression. Si vous utilisez la console Python pour exécuter une session SymPy, le meilleur environnement d'impression joli est activé en appelant la fonction init_session ().

>>> from sympy import init_session 
>>> init_session()

Console IPython pour SymPy 1.5.1 (Python 3.7.4-64 bits) (types de masse: python).

Ces commandes ont été exécutées -

>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
>>> init_printing()

La documentation peut être trouvée sur https://docs.sympy.org/1.5.1/.

>>> Integral(sqrt(1/x),x)

$\int \sqrt\frac{1}{x} dx$

Si LATEX n'est pas installé, mais que Matplotlib est installé, il utilisera le moteur de rendu Matplotlib. Si Matplotlib n'est pas installé, il utilise la jolie imprimante Unicode. Cependant, le notebook Jupyter utilise MathJax pour rendre LATEX.

Dans un terminal qui ne prend pas en charge Unicode, une jolie imprimante ASCII est utilisée.

Pour utiliser une imprimante ASCII, utilisez la fonction pprint () avec la propriété use_unicode définie sur False

>>> pprint(Integral(sqrt(1/x),x),use_unicode=False)

La jolie imprimante Unicode est également accessible depuis pprint () et pretty (). Si le terminal prend en charge Unicode, il est utilisé automatiquement. Si pprint () n'est pas capable de détecter que le terminal prend en charge l'Unicode, vous pouvez passer use_unicode = True pour le forcer à utiliser Unicode.

Pour obtenir la forme LATEX d'une expression, utilisez la fonction latex ().

>>> print(latex(Integral(sqrt(1/x),x)))

\int \sqrt{\frac{1}{x}}\, dx

Vous pouvez également utiliser une imprimante mathml. à cet effet, importez la fonction print_mathml. Une version chaîne est obtenue par la fonction mathml ().

>>> from sympy.printing.mathml import print_mathml 
>>> print_mathml(Integral(sqrt(1/x),x))

<apply>

<int/>

<bvar>

<ci>x</ci>

</bvar>

<apply>

<root/>

<apply>

<power/>

<ci>x</ci>

<cn>-1</cn>

</apply>

</apply>

</apply>

>>>mathml(Integral(sqrt(1/x),x))

'<apply><int/><bvar><ci>x</ci></bvar><apply><root/><apply><power/><ci>x</ci><cn>-1</cn></apply></apply></apply>'