- À propos du calcul des limites avec SymPy
- Calculer une limite simple avec limit()
- Calculer une limite d'une forme indéterminée
- Calculer une limite à gauche et à droite
- Calculer une limite à l'infini
- Calculer des limites avec les fonctions trigonométriques
- Calculer des limites avec exp() et log()
- Utiliser Limit() pour représenter une limite
- Combiner limit() avec simplify(), factor() et series()
- À retenir !
1. À propos du calcul des limites avec SymPy
En analyse mathématique, la limite permet d'étudier le comportement d'une fonction lorsque sa variable se rapproche d'une valeur donnée ou tend vers l'infini. La bibliothèque SymPy permet d'effectuer ce calcul symboliquement avec la fonction limit().
La syntaxe fondamentale est limit(expression, variable, valeur). SymPy cherche alors la limite de l'expression lorsque la variable tend vers la valeur indiquée.
Le programme suivant calcule la limite de x² + 2x + 1 lorsque x tend vers 2.
1 2 3 4 5 6 | from sympy import symbols, limit x = symbols("x") expression = x**2 + 2*x + 1 resultat = limit(expression, x, 2) print(resultat) |
Sortie :
1 | 9 |
Dans cet exemple, l'expression est continue en x = 2. La limite correspond donc simplement à la valeur obtenue en remplaçant x par 2.
2. Calculer une limite simple avec limit()
Pour une fonction continue au point étudié, limit() retourne directement la valeur vers laquelle tend l'expression. Il n'est pas nécessaire d'effectuer manuellement les transformations algébriques.
Le programme suivant calcule la limite de 3x² - 5x + 2 lorsque x tend vers 1.
1 2 3 4 5 6 | from sympy import symbols, limit x = symbols("x") expression = 3*x**2 - 5*x + 2 resultat = limit(expression, x, 1) print(resultat) |
Sortie :
1 |
La fonction étant polynomiale, elle est continue et la limite vaut directement 3 - 5 + 2 = 0.
La fonction limit() peut également être appelée comme méthode sur une expression SymPy à l'aide de .limit().
1 2 3 4 5 6 | from sympy import symbols x = symbols("x") expression = x**3 - 2*x + 4 resultat = expression.limit(x, 2) print(resultat) |
Sortie :
1 | 8 |
Les écritures limit(expression, x, 2) et expression.limit(x, 2) permettent donc toutes les deux de calculer la limite.
3. Calculer une limite d'une forme indéterminée
L'un des principaux intérêts de limit() apparaît lorsque la substitution directe conduit à une forme indéterminée telle que 0/0. SymPy effectue alors les transformations symboliques nécessaires pour déterminer la limite.
Considérons l'expression (x² - 1)/(x - 1). Pour x = 1, le numérateur et le dénominateur s'annulent, mais la limite existe.
1 2 3 4 5 6 | from sympy import symbols, limit x = symbols("x") expression = (x**2 - 1)/(x - 1) resultat = limit(expression, x, 1) print(resultat) |
Sortie :
1 | 2 |
En effet, pour x ≠ 1, l'expression peut être simplifiée en x + 1. Sa limite lorsque x tend vers 1 est donc égale à 2.
Le programme suivant présente une autre forme indéterminée 0/0 obtenue avec des polynômes.
1 2 3 4 5 6 | from sympy import symbols, limit x = symbols("x") expression = (x**3 - 8)/(x - 2) resultat = limit(expression, x, 2) print(resultat) |
Sortie :
1 | 12 |
SymPy détermine ici automatiquement que la limite vaut 12, sans qu'il soit nécessaire de factoriser manuellement x³ - 8.
4. Calculer une limite à gauche et à droite
Lorsqu'une fonction n'a pas le même comportement des deux côtés d'un point, il faut distinguer la limite à gauche et la limite à droite. Le paramètre dir permet de préciser le sens d'approche.
Pour une limite en un point fini, dir="-" indique une approche depuis les valeurs inférieures, donc une limite à gauche. Le programme suivant calcule la limite à gauche de 1/x en 0.
1 2 3 4 5 6 | from sympy import symbols, limit x = symbols("x") expression = 1/x resultat = limit(expression, x, 0, dir="-") print(resultat) |
Sortie :
1 | -oo |
Le symbole -oo représente -∞. Lorsque x s'approche de zéro par valeurs négatives, 1/x tend vers moins l'infini.
Pour calculer la limite à droite, nous utilisons dir="+".
1 2 3 4 5 6 | from sympy import symbols, limit x = symbols("x") expression = 1/x resultat = limit(expression, x, 0, dir="+") print(resultat) |
Sortie :
1 | oo |
Le symbole oo représente +∞. Les limites à gauche et à droite étant différentes, 1/x n'admet pas de limite bilatérale finie ou infinie unique en zéro.
5. Calculer une limite à l'infini
SymPy utilise le symbole oo pour représenter l'infini. Nous pouvons donc calculer le comportement asymptotique d'une fonction lorsque x tend vers +∞ ou -∞.
Le programme suivant calcule la limite de 1/x lorsque x tend vers l'infini positif.
1 2 3 4 5 6 | from sympy import symbols, limit, oo x = symbols("x") expression = 1/x resultat = limit(expression, x, oo) print(resultat) |
Sortie :
1 |
Lorsque x devient arbitrairement grand, la quantité 1/x se rapproche de zéro.
Pour une fraction rationnelle, SymPy peut également comparer automatiquement les termes dominants du numérateur et du dénominateur. Le programme suivant calcule une limite de ce type.
1 2 3 4 5 6 | from sympy import symbols, limit, oo x = symbols("x") expression = (3*x**2 + 2*x - 1)/(x**2 + 5) resultat = limit(expression, x, oo) print(resultat) |
Sortie :
1 | 3 |
Le numérateur et le dénominateur ont le même degré. La limite est donc égale au rapport de leurs coefficients dominants, soit 3/1 = 3.
Pour étudier le comportement en moins l'infini, nous pouvons utiliser -oo.
1 2 3 4 5 6 | from sympy import symbols, limit, oo x = symbols("x") expression = 2*x + 1 resultat = limit(expression, x, -oo) print(resultat) |
Sortie :
1 | -oo |
Lorsque x tend vers -∞, l'expression 2x + 1 tend également vers -∞.
6. Calculer des limites avec les fonctions trigonométriques
La fonction limit() permet de calculer de nombreuses limites trigonométriques. Elle reconnaît notamment certaines limites remarquables utilisées fréquemment en analyse.
Le programme suivant calcule la célèbre limite de sin(x)/x lorsque x tend vers zéro.
1 2 3 4 5 6 | from sympy import symbols, sin, limit x = symbols("x") expression = sin(x)/x resultat = limit(expression, x, 0) print(resultat) |
Sortie :
1 | 1 |
Nous retrouvons la limite remarquable sin(x)/x → 1 lorsque x tend vers zéro.
Le programme suivant calcule une autre limite classique faisant intervenir le cosinus.
1 2 3 4 5 6 | from sympy import symbols, cos, limit x = symbols("x") expression = (1 - cos(x))/x**2 resultat = limit(expression, x, 0) print(resultat) |
Sortie :
1 | 1/2 |
SymPy retourne la valeur exacte 1/2.
Nous pouvons également calculer la limite de tan(x)/x lorsque x tend vers zéro.
1 2 3 4 5 6 | from sympy import symbols, tan, limit x = symbols("x") expression = tan(x)/x resultat = limit(expression, x, 0) print(resultat) |
Sortie :
1 | 1 |
Cette limite remarquable vaut également 1.
7. Calculer des limites avec exp() et log()
La fonction limit() peut traiter des expressions contenant les fonctions exp() et log(). Ces fonctions interviennent fréquemment dans les formes indéterminées et les études asymptotiques.
Le programme suivant calcule la limite de (exp(x) - 1)/x lorsque x tend vers zéro.
1 2 3 4 5 6 | from sympy import symbols, exp, limit x = symbols("x") expression = (exp(x) - 1)/x resultat = limit(expression, x, 0) print(resultat) |
Sortie :
1 | 1 |
Cette limite vaut 1 et constitue une autre limite fondamentale de l'analyse.
Le programme suivant calcule la limite de log(1 + x)/x lorsque x tend vers zéro.
1 2 3 4 5 6 | from sympy import symbols, log, limit x = symbols("x") expression = log(1 + x)/x resultat = limit(expression, x, 0) print(resultat) |
Sortie :
1 | 1 |
SymPy retrouve automatiquement la limite remarquable log(1 + x)/x → 1.
Nous pouvons également étudier la croissance comparée du logarithme et de x à l'infini.
1 2 3 4 5 6 | from sympy import symbols, log, limit, oo x = symbols("x", positive=True) expression = log(x)/x resultat = limit(expression, x, oo) print(resultat) |
Sortie :
1 |
Le logarithme croît beaucoup moins rapidement que x, ce qui explique que le quotient tende vers zéro.
8. Utiliser Limit() pour représenter une limite
SymPy distingue la fonction limit(), qui calcule immédiatement une limite, et la classe Limit, qui permet de créer un objet symbolique représentant une limite sans nécessairement l'évaluer immédiatement.
Le programme suivant crée un objet Limit représentant la limite de sin(x)/x lorsque x tend vers zéro.
1 2 3 4 5 6 | from sympy import symbols, sin, Limit x = symbols("x") expression = sin(x)/x L = Limit(expression, x, 0) print(L) |
Sortie :
1 | Limit(sin(x)/x, x, 0, dir='+') |
L'objet représente la limite sans effectuer immédiatement son calcul. La représentation affichée peut également préciser la direction utilisée par SymPy.
La méthode doit() permet ensuite de demander l'évaluation de l'objet Limit.
1 2 3 4 5 6 | from sympy import symbols, sin, Limit x = symbols("x") L = Limit(sin(x)/x, x, 0) resultat = L.doit() print(resultat) |
Sortie :
1 | 1 |
Cette approche est utile lorsque nous souhaitons construire ou manipuler une expression symbolique avant d'effectuer réellement son calcul.
9. Combiner limit() avec simplify(), factor() et series()
La fonction limit() peut être associée à d'autres outils de SymPy tels que simplify(), factor() et series(). Ces fonctions permettent notamment de mieux comprendre pourquoi une limite prend une valeur donnée.
Le programme suivant factorise une expression rationnelle avant d'en calculer la limite.
1 2 3 4 5 6 7 8 9 | from sympy import symbols, factor, limit x = symbols("x") expression = (x**2 - 4)/(x - 2) expression_factorisee = factor(expression) resultat = limit(expression_factorisee, x, 2) print("Expression :", expression_factorisee) print("Limite :", resultat) |
Sortie :
1 2 | Expression : (x**2 - 4)/(x - 2) Limite : 4 |
La fonction factor() factorise les polynômes du numérateur et du dénominateur, mais ne supprime pas nécessairement le facteur commun dans une fraction. Pour effectuer cette réduction, cancel() est plus appropriée.
Le programme suivant utilise donc cancel() pour réduire la fraction avant de calculer sa limite.
1 2 3 4 5 6 7 8 9 | from sympy import symbols, cancel, limit x = symbols("x") expression = (x**2 - 4)/(x - 2) expression_reduite = cancel(expression) resultat = limit(expression_reduite, x, 2) print("Expression réduite :", expression_reduite) print("Limite :", resultat) |
Sortie :
1 2 | Expression réduite : x + 2 Limite : 4 |
La réduction fait apparaître directement le comportement de l'expression au voisinage de x = 2.
La fonction series() permet quant à elle d'obtenir un développement local d'une fonction. Le programme suivant développe sin(x)/x autour de zéro avant de calculer sa limite.
1 2 3 4 5 6 7 8 9 | from sympy import symbols, sin, series, limit x = symbols("x") expression = sin(x)/x developpement = series(expression, x, 0, 5) resultat = limit(expression, x, 0) print("Série :", developpement) print("Limite :", resultat) |
Sortie :
1 2 | Série : 1 - x**2/6 + x**4/120 + O(x**5) Limite : 1 |
Le terme constant du développement est 1, tandis que les autres termes tendent vers zéro lorsque x tend vers zéro. Le développement en série permet ainsi de mieux comprendre le résultat de la limite.
10. À retenir !
La fonction limit() de SymPy permet de calculer symboliquement des limites de fonctions en un point fini ou à l'infini. Elle peut traiter de nombreuses expressions algébriques, rationnelles, trigonométriques, exponentielles et logarithmiques.
- limit(expression, variable, valeur) calcule une limite symbolique.
- La méthode expression.limit() constitue une autre syntaxe possible.
- SymPy peut résoudre automatiquement de nombreuses formes indéterminées telles que 0/0.
- Le paramètre dir="-" permet de calculer une limite à gauche.
- Le paramètre dir="+" permet de calculer une limite à droite.
- Le symbole oo représente +∞ et -oo représente -∞.
- limit() permet de calculer de nombreuses limites trigonométriques remarquables.
- Les fonctions exp() et log() peuvent être utilisées dans les expressions étudiées.
- La classe Limit permet de représenter une limite symboliquement et doit() permet ensuite de l'évaluer.
- cancel(), simplify() et series() peuvent compléter l'étude d'une limite et aider à comprendre son comportement local.
Le programme suivant rassemble plusieurs calculs classiques avec limit() : une forme indéterminée, une limite trigonométrique, une limite à l'infini et une limite exponentielle.
1 2 3 4 5 6 7 8 9 10 11 12 13 | from sympy import symbols, sin, exp, limit, oo x = symbols("x") limite1 = limit((x**2 - 1)/(x - 1), x, 1) limite2 = limit(sin(x)/x, x, 0) limite3 = limit((3*x**2 + 1)/(x**2 + 2), x, oo) limite4 = limit((exp(x) - 1)/x, x, 0) print("Limite 1 :", limite1) print("Limite 2 :", limite2) print("Limite 3 :", limite3) print("Limite 4 :", limite4) |
Sortie :
1 2 3 4 | Limite 1 : 2 Limite 2 : 1 Limite 3 : 3 Limite 4 : 1 |
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


