Maths et sciences - Calculs et tracés avec sympy
Avant de démarrer⚓︎
Python
Nous utilisons ici Python. Pour se familiariser avec l'introduction de Python dans votre site, se reporter au tutoriel spécifique :
Bac à sable
Depuis la version v.2.0.1 le site modèle à cloner contient une page "Bac à sable" qui permet de tester sympy pour le calcul formel ou les tracés, ainsi que la tortue.
Si vous avez une version antérieure, vous pouvez tout simplement recopier le répertoire sympy, py_sandbox et la page bac_a_sable.md dans docs.
la bibliothèque sympy
La bibliothèque sympy permet de réaliser du calcul formel, de tracer simplement en 2D des courbes paramétrées, des courbes implicites, des régions et en 3D des fonctions de deux variables, des courbes et des surfaces paramétrées.
Beaucoup d'exemples à parir du paragraphe 5 dans l'introduction à sympy par Vincent Jalby
Pour des calculs⚓︎
Comment utiliser sympy pour des calculs formels
Commencer par exécuter le code. Vous pourrez écrire vos calculs dans la partie console (en dessous de l'éditeur, à côté de >>>).
Par exemple :

Vous pouvez aussi définir des fonctions dans la partie éditeurs, exécuter le code, et ensuite utiliser la console :

from sympy import *
x = symbols('x')
# Vous pouvez ajouter des fonctions ci-dessous.
# Commencer par exécuter ce code puis écrire vos calculs dans la console en bas à côté des >>>
# Vos éventuelles fonctions ci-dessous :
Pour des graphiques⚓︎
Le principe
Le fichier Python
Le fichier Python dans lequel se trouve le code qui permet de tracer la figure désirée
doit contenir une section # --- PYODIDE:env --- # dont le début est le suivant :
# --- PYODIDE:env --- #
from sympy import *
import sympy.plotting as plotting
def plot(*a, **kw):
plotting.plot(*a, **kw)
PyodidePlot.clear_current_figure_title()
Cela permettra d'utiliser les syntaxes habituelles de la bibliothèque sympy
Le fichier Markdown
Le principe est d'appeler :
-
Une fois la macro
-
Autant de fois que de fenêtres graphiques désirées, la macro :
-
Dans le cas où l'on désire plusieurs fenêtres, il faut les identifier. On appelera donc par exemple pour deux fenêtres :
Tracé d'un seul graphique⚓︎
Rendu
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Votre figure
Fichier python utilisé pour cet exemple
# --- PYODIDE:env --- #
from sympy import *
import sympy.plotting as plotting
def plot(*a, **kw):
plotting.plot(*a, **kw)
PyodidePlot.clear_current_figure_title()
PyodidePlot().target() # Cible la figure dans laquelle tracer la figure dans la page
# --- PYODIDE:code --- #
# Les imports suivants ont été faits dans du code caché :
# from sympy import *
x = symbols('x')
# Modifier la ligne ci-dessous qui sert d'exemple
plot(exp(x), x, ln(x), (x,-5,5), ylim=(-5,5), legend=True)
Tracé de plusieurs graphiques dans des fenêtre différentes⚓︎
Le principe est exactement le même pour l'utilisation de la bibliothèque sympy que pour la bibliothèque matplotlib (Utiliser la bibliothèque matplotlib)
- Il faudra par exemple ajouter dans les sections
# --- PYODIDE:env --- #de chaque fichier python:
fig1 = PyodidePlot('cible_1')etfig2 = PyodidePlot('cible_2')ainsi quefig1.target()etfig2.target() - Les figures seront tracées en utilisant les macros :
{{ IDE('scripts/fct_carre') }}
{{ figure('cible_1') }}
{{ IDE('scripts/fct_sqrt') }}
{{ figure('cible_2') }}
Rendu
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Votre figure
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Votre figure
Fichiers Python utilisés pour cet exemple
# --- PYODIDE:env --- #
from sympy import *
import sympy.plotting as plotting
def plot(*a, **kw):
plotting.plot(*a, **kw)
PyodidePlot.clear_current_figure_title()
fig1=PyodidePlot('cible_1')
fig1.target() # Cible la figure dans laquelle tracer la figure dans la page
# --- PYODIDE:code --- #
# Les imports suivants ont été faits dans du code caché :
# from sympy import *
x = symbols('x')
plot(x**2, (x,-5,5), ylim=(-1,5), legend=True)
# --- PYODIDE:env --- #
from sympy import *
import sympy.plotting as plotting
def plot(*a, **kw):
plotting.plot(*a, **kw)
PyodidePlot.clear_current_figure_title()
fig2=PyodidePlot('cible_2')
fig2.target() # Cible la figure dans laquelle tracer la figure dans la page
# --- PYODIDE:code --- #
# Les imports suivants ont été faits dans du code caché :
# from sympy import *
x = symbols('x')
plot(sqrt(x), (x,0,9), ylim=(0,3), legend=True)
Documentation officielle de Frédéric Zinelli
Lien pour tester du code Python en ligne avec ou sans turtle, sympy et matplotlib⚓︎
Ressouce Educative Libre, sans aucune installation :
https://mcoilhac.forge.apps.education.fr/tester-code-calcul-formel-graphique-animation-avec-python/
Crédits pour l'intégration de la bibliothèque sympy : Frédéric Zinelli
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)