SymPy : dérive, factorise et résous tes équations sans calculette

De quoi avez-vous besoin

Version de Python

3.x

Packages

  • {"nom": "sympy", "version": "1.14.0"}

Difficulté

Débutant

Une dérivée à recalculer, une équation du second degré à résoudre, une intégrale qui traîne depuis le lycée. Avant, tu sortais la calculette ou tu rouvrais un vieux cours. Maintenant, tu peux laisser Python s'en charger avec SymPy, la bibliothèque de calcul symbolique de référence. La nuance clé : SymPy ne travaille pas avec des nombres approchés comme NumPy. Il manipule des expressions exactes. La racine de 2 reste une racine de 2, et une dérivée reste une formule que tu peux relire à l'écran. En sept étapes, tu vas dériver, factoriser, résoudre et intégrer sans toucher un stylo.

Étape 1 — Installe SymPy

SymPy s'installe comme n'importe quel paquet Python. Aucune dépendance lourde, une seule ligne suffit.

bash
pip install sympy

Étape 2 — Déclare tes symboles

La base du calcul symbolique, ce sont les symboles. Ce sont des variables que Python traite comme des inconnues mathématiques, pas comme des nombres. Dès que tu les as, tu écris des expressions et tu les transformes.

python
from sympy import symbols, expand

x, y = symbols("x y")
expr = (x + y) ** 2
print(expr)           # (x + y)**2
print(expand(expr))   # x**2 + 2*x*y + y**2

expand développe l'expression. Tu remarques tout de suite que SymPy affiche des maths propres, pas des flottants approximatifs.

Étape 3 — Dérive sans papier ni brouillon

La dérivée est la porte d'entrée classique. Une ligne, et tu obtiens la formule exacte.

python
from sympy import symbols, diff

x = symbols("x")
f = x**3 + 2*x**2 - 5*x + 1
df = diff(f, x)
print(df)   # 3*x**2 + 4*x - 5

Pour dériver plusieurs fois, passe l'ordre en plus : diff(f, x, 2) te donne la dérivée seconde.

Étape 4 — Résous une équation en une ligne

solve est la fonction qui règle les équations. Tu lui donnes une expression, elle te rend toutes les solutions.

python
from sympy import symbols, solve

x = symbols("x")
print(solve(x**2 - 5*x + 6, x))   # [2, 3]

Deux racines, deux solutions, sans discriminant à calculer. solve gère aussi les systèmes d'équations si tu lui passes une liste.

Étape 5 — Factorise et simplifie

La factorisation fait le travail inverse de expand. Pratique pour repérer les racines d'un polynôme, ou pour nettoyer une formule avant de la montrer à quelqu'un.

python
from sympy import symbols, factor, simplify

x = symbols("x")
print(factor(x**2 - 5*x + 6))          # (x - 3)*(x - 2)
print(simplify((x**2 - 1) / (x - 1)))  # x + 1

Étape 6 — Intègre, en indéfinie comme en définie

L'intégration est le pendant inverse de la dérivation. integrate gère les deux cas : la primitive simple, ou l'intégrale bornée avec un intervalle.

python
from sympy import symbols, integrate

x = symbols("x")
print(integrate(2*x, x))            # x**2
print(integrate(x**2, (x, 0, 2)))   # 8/3

Remarque le résultat exact 8/3, pas 2.666666. C'est tout l'intérêt du calcul symbolique.

Étape 7 — La limite que tout le monde connaît

sin(x)/x en 0, c'est la limite célèbre qui vaut 1. SymPy la calcule proprement.

python
from sympy import symbols, limit, sin

x = symbols("x")
print(limit(sin(x) / x, x, 0))   # 1

Bonus — les matrices et leurs valeurs propres

SymPy sait aussi faire de l'algèbre linéaire exacte. Déterminant, inverse, valeurs propres : tout reste symbolique.

python
from sympy import Matrix

M = Matrix([[1, 2], [3, 4]])
print(M.det())          # -2
print(M.inv())          # Matrix([[-2, 1], [3/2, -1/2]])
print(M.eigenvals())    # {5/2 - sqrt(33)/2: 1, 5/2 + sqrt(33)/2: 1}

SymPy ne remplace pas ton cerveau, il te débarrasse du calcul mécanique. Tu gardes la compréhension, tu délègues l'exécution. Et comme tout reste exact, tu peux vérifier tes résultats sans craindre les erreurs d'arrondi. La prochaine fois qu'une dérivée ou une équation te barre la route, tu sais quoi faire : pip install sympy, et on n'en parle plus.