Sous Jupyter, par exemple, comment afficher en LaTeX des fonctions Python? Il existe un module pour faire cela…

LaTeX, Python, Jupyter: installation du module latexify

pip install latexify-py
ou (selon votre distribution)
conda install latexify-py

Vous trouverez plus d’informations sur le module latexify ici : https://pypi.org/project/latexify-py/

Enfin… c’est un bien grand mot car toutes les docs rédigées en anglais sont totalement merdiques et non exhaustives! Donc là, en ne mettant qu’un exemple, ça signifie : « démerde-toi bibi ! ». En fait, il faut aller sur le github pour avoir bien plus d’informations!

LaTeX, Python, Jupyter: quelques exemples

Exemple 1: fonction définie par morceaux

Rien ne vaut le code direct:

import latexify

@latexify.function
def f(x):
    if x <= -3:
        return 3*x+1
    elif -3 < x <= 3:
        return 2*x - 2
    else:
        return x+1

Personnellement, j’utilise Spyder, qui s’appuie sur Jupyter. Voici une capture d’écran:

python latex jupyter latexify

Il suffit de taper le nom de la fonction Python pour qu’elle affiche au format \(\LaTeX\) notre fonction mathématique. C’est plutôt ludique pour enseigner les tests conditionnels Python et les fonctions définies par morceaux en classe de Seconde par exemple.

Si vous souhaitez afficher directement le code \(\LaTeX\) pour le mettre dans un document TEX, vous pouvez aussi faire ceci:

In  [5]: print(f)
Out [5]: f(x) = \left\{ \begin{array}{ll} 3 x + 1, & \mathrm{if} \ x \le -3 \\ 2 x - 2, & \mathrm{if} \ -3 < x \le 3 \\ x + 1, & \mathrm{otherwise} \end{array} \right.

Exemple 2: la factorielle

import latexify

@latexify.function
def factorial(n: int) -> int:
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)
latexify factorial
In  [3]: print(factorial)
Out [3]: \mathrm{factorial}(n) = \left\{ \begin{array}{ll} 1, & \mathrm{if} \ n = 0 \\ n \cdot \mathopen{}\left( n - 1 \mathclose{}\right) !, & \mathrm{otherwise} \end{array} \right.

Exemple 3: une fonction Python retournant une expression mathématique

Allez! On va s’amuser un peu en mélangeant les tests conditionnels, les lettres grecques et les expressions littérales.

import latexify
from math import sqrt

@latexify.expression(use_math_symbols=True)
def solve(a, b, c):
    Delta = b**2-4*a*c
    if Delta < 0:
        return None
    elif Delta == 0:
        return -b/(2*a)
    else:
        return (-b - sqrt(Delta)) / (2 * a) , (-b + sqrt(Delta)) / (2 * a) 
latexify use_math_symbols expression
In  [17]: print(solve)
Out [17]: \begin{array}{l} \Delta = b^{2} - 4 a c \\ \left\{ \begin{array}{ll} \mathrm{None}, & \mathrm{if} \ \Delta < 0 \\ \frac{-b}{2 a}, & \mathrm{if} \ \Delta = 0 \\ \mathopen{}\left( \frac{-b - \sqrt{ \Delta }}{2 a}, \frac{-b + \sqrt{ \Delta }}{2 a} \mathclose{}\right), & \mathrm{otherwise} \end{array} \right. \end{array}

On peut ainsi s’amuser à faire beaucoup de choses… Avez-vous des idées pour compléter ce post ? Lâchez-vous en commentaire et j’ajouterai les suggestions qui me paraissent intéressantes et différentes de celles déjà proposées.


0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x