1ʳᵉ PCM · Chapitre 05 · Analyse
Primitives
Primitives de polynômes et de A cos(ωt + φ), méthode d'Euler (problème de Cauchy).
Sommaire
Ce qu'il faut savoir faire
- Primitives de polynômes et de A cos(ωt + φ)
- Méthode d'Euler (problème de Cauchy)
Tout au long du chapitre précédent, nous avons appris à dériver : partant d'une grandeur, nous savons calculer sa vitesse de variation. Mais en sciences, le problème se présente très souvent dans l'autre sens. Le compteur d'un véhicule enregistre la vitesse à chaque instant, et l'on veut reconstituer la distance parcourue ; une centrale inertielle mesure l'accélération d'un mobile, et l'on veut remonter à sa vitesse, puis à sa position ; en électricité, on connaît le courant qui alimente un condensateur, c'est-à-dire le rythme auquel sa charge s'accumule, et l'on veut suivre la charge elle-même ; en cinétique chimique, on mesure une vitesse de réaction et l'on cherche l'évolution de la concentration. Chaque fois, la question est la même : connaissant la dérivée d'une grandeur, comment retrouver la grandeur ? C'est le problème inverse de la dérivation, et l'objet mathématique qui le résout s'appelle une primitive.
Ce chapitre, qui clôt l'année, construit cette notion en trois temps. Nous définirons d'abord ce qu'est une primitive, et nous décrirons l'ensemble des primitives d'une même fonction : elles se déduisent toutes les unes des autres par l'ajout d'une constante, qu'une condition initiale suffit à fixer. Nous apprendrons ensuite à calculer des primitives pour les deux familles de fonctions les plus utiles en sciences industrielles et de laboratoire : les polynômes et les signaux sinusoïdaux, avec pour récompense la loi horaire de la chute libre. Enfin, pour les fonctions dont aucune primitive ne s'exprime avec les fonctions connues, nous découvrirons la méthode d'Euler, qui construit point par point une courbe approchée de la solution, et que nous programmerons en Python.
La notion de primitive
Donnons tout de suite un nom au problème inverse de la dérivation. Dériver, c'est passer d'une fonction à sa dérivée ; chercher une primitive, c'est faire le chemin en sens contraire : partant d'une fonction , on cherche une fonction dont la dérivée est .
Définition
Primitive d'une fonction. Soit une fonction définie sur un intervalle . On appelle primitive de sur toute fonction dérivable sur telle que, pour tout de :
Exemple
Un premier exemple. La fonction est une primitive de sur : en effet, est dérivable sur et pour tout réel . Remarquons au passage que convient tout aussi bien : sa dérivée est encore , puisque la constante disparaît en dérivant.
Cet exemple révèle un fait essentiel : la définition d'une primitive ne demande aucun calcul nouveau. Pour vérifier qu'une fonction est une primitive de , il suffit de dériver avec les règles du chapitre précédent, puis de comparer le résultat à . Toute la difficulté du chapitre sera de trouver des primitives ; les vérifier, en revanche, est toujours à notre portée.
Méthode
Vérifier qu'une fonction est une primitive. Pour montrer que est une primitive de sur un intervalle :
- justifier que est dérivable sur ;
- calculer avec les règles de dérivation (somme, produit, quotient, , , ) ;
- simplifier l'expression obtenue et constater qu'elle est égale à pour tout de .
Exemple
Une vérification avec la dérivée d'un produit. Montrons que est une primitive de sur . La fonction est dérivable sur comme somme d'un produit de fonctions dérivables et de la fonction cosinus. Dérivons le produit avec la formule , en posant et :
Par ailleurs, . En ajoutant les deux résultats :
La fonction est donc bien une primitive de sur . Remarquez que jamais nous n'aurions deviné cette primitive par simple lecture inverse d'un tableau : c'est la vérification par dérivation qui fait tout le travail.
Une précision de vocabulaire s'impose, et l'exemple de la fonction l'a déjà laissé entrevoir : on dit une primitive, et non la primitive. En effet, , , sont trois primitives distinctes de la même fonction . Combien y en a-t-il ? Toutes se ressemblent-elles ? C'est la question du paragraphe suivant.
L'ensemble des primitives d'une fonction
Partons de l'observation précédente : si est une primitive de sur un intervalle , alors pour tout réel , la fonction en est une autre, puisque la dérivée d'une constante est nulle. La famille des primitives contient donc au moins toutes les fonctions . Le résultat remarquable, que nous admettons, est qu'il n'y en a aucune autre.
Propriété
Ensemble des primitives (admis). Soit une fonction admettant une primitive sur un intervalle . Alors les primitives de sur sont exactement les fonctions de la forme :
Autrement dit : deux primitives d'une même fonction sur un intervalle diffèrent d'une constante.
Ce théorème est admis, mais il mérite d'être compris, et deux points de vue l'éclairent. Le premier est cinématique. Si et sont deux primitives de , la différence a pour dérivée . Or que dit une dérivée nulle ? Imaginons que soit la position d'un mobile à l'instant : sa dérivée est sa vitesse, et une vitesse nulle à chaque instant signifie que le mobile ne bouge jamais. Sa position est donc constante : pour tout , c'est-à-dire . Le second point de vue est géométrique. Deux primitives et de ont le même nombre dérivé en chaque abscisse : leurs courbes ont donc des tangentes de même coefficient directeur en tout point de même abscisse. Deux courbes qui ont partout la même pente sont « parallèles » : l'une se déduit de l'autre par une translation verticale, et la hauteur de cette translation est précisément la constante .
La figure illustre cette situation pour la fonction . On vérifie en dérivant que est une primitive de : les primitives de sont donc les fonctions . Quatre d'entre elles sont tracées, pour quatre valeurs de : ce sont quatre paraboles superposables, décalées verticalement les unes des autres, et qui ont toutes la même pente à chaque abscisse.
Cette lecture graphique suggère une propriété importante : les courbes de la famille recouvrent le plan sans jamais se croiser. Par un point donné, il passe donc une et une seule courbe de la famille. C'est le contenu de la propriété suivante.
Propriété
Primitive vérifiant une condition initiale. Soit une fonction admettant des primitives sur un intervalle . Pour tout de et tout réel , il existe une unique primitive de sur telle que :
Graphiquement : parmi toutes les courbes parallèles de la famille, une seule passe par le point de coordonnées .
Cette propriété est le pendant mathématique d'une évidence physique : connaître la vitesse d'un mobile à chaque instant ne suffit pas à connaître sa position, il faut aussi savoir d'où il est parti. La donnée s'appelle une condition initiale ; elle sélectionne, dans la famille des primitives, celle qui correspond à la situation étudiée.
Méthode
Déterminer la primitive vérifiant une condition. Pour trouver la primitive de sur telle que :
- déterminer une primitive particulière de (et le vérifier en dérivant) ;
- écrire la forme générale des primitives : ;
- traduire la condition : , puis résoudre cette équation d'inconnue ;
- conclure en écrivant l'expression complète de .
Exemple
Une primitive imposée par sa valeur en un point. Déterminons la primitive de sur vérifiant .
On vérifie d'abord que est une primitive de : sa dérivée vaut , c'est bien . Les primitives de sont donc les fonctions avec réel. Traduisons la condition initiale :
d'où . La primitive cherchée est , et c'est la seule.
Primitives des fonctions polynômes
Il est temps d'apprendre à trouver des primitives, et non plus seulement à les vérifier. L'idée directrice est simple : le tableau des dérivées du chapitre précédent, lu à l'envers, devient un tableau de primitives. Puisque la dérivée de est , une primitive de est , donc une primitive de est . Puisque la dérivée de est , une primitive de est . Le mécanisme de dérivation « l'exposant descend en facteur puis diminue de » s'inverse en : l'exposant augmente de , puis on divise par le nouvel exposant.
Propriété
Primitives des fonctions de référence. Chaque fonction du tableau admet la primitive indiquée sur ; toutes ses primitives s'en déduisent en ajoutant une constante .
| Fonction | Une primitive |
|---|---|
| (constante) | |
| ( entier, ) |
Chaque ligne se vérifie en dérivant la colonne de droite : par exemple .
Pour traiter un polynôme entier, il reste à savoir gérer les sommes et les coefficients. Là encore, les règles de dérivation s'inversent sans difficulté : puisque l'on dérive une somme terme à terme et que les constantes multiplicatives restent en place, il en va de même pour la recherche de primitives.
Propriété
Primitive d'une somme et d'un multiple. Soient et deux fonctions admettant respectivement et pour primitives sur un intervalle , et soit un réel. Alors :
- est une primitive de sur ;
- est une primitive de sur .
En pratique : on cherche une primitive terme à terme, et les coefficients multiplicatifs restent en place.
Ces deux propriétés couvrent tous les polynômes : un polynôme est une somme de termes de la forme , et chacun admet pour primitive. Tout polynôme admet donc des primitives sur , qui sont encore des polynômes, de degré augmenté d'une unité.
Méthode
Primitive d'un polynôme. Pour déterminer une primitive d'un polynôme :
- traiter chaque terme séparément : devient , et une constante devient ;
- simplifier les coefficients obtenus ;
- ajouter la constante si l'on demande toutes les primitives ;
- vérifier en dérivant le résultat : on doit retomber exactement sur le polynôme de départ.
Exemple
Primitives d'un polynôme du second degré. Cherchons les primitives de sur . Traitons chaque terme : admet pour primitive ; le terme admet pour primitive ; la constante admet pour primitive . Les primitives de sont donc les fonctions :
Vérification. Dérivons : . Le compte est bon.
Ce réflexe de vérification n'est pas une coquetterie : les erreurs de coefficient sont le piège numéro un du calcul de primitives (oublier de diviser par le nouvel exposant, ou diviser par l'ancien). Dériver le résultat prend dix secondes et détecte toutes ces erreurs.
Primitives des fonctions sinusoïdales
Après les polynômes, tournons-nous vers les signaux sinusoïdaux et , omniprésents en électricité et en mécanique vibratoire. Rappelons les résultats du chapitre précédent : , , et pour une fonction composée avec une expression affine, . En dérivant un signal sinusoïdal, l'amplitude est donc multipliée par la pulsation . Lisons ces règles à l'envers : pour trouver une primitive, il faudra diviser par , et gérer avec soin l'échange entre sinus et cosinus.
Propriété
Primitives des signaux sinusoïdaux. Soient , et des réels, avec . Sur :
- une primitive de est ;
- une primitive de est .
Toutes les autres primitives s'en déduisent en ajoutant une constante.
Comme toujours, la justification tient en une dérivation. Dérivons : la règle avec donne
et le facteur issu de la dérivation compense exactement la division par . De même, en dérivant , on obtient : les deux signes « moins » se compensent.
Exemple
Charge d'un condensateur alimenté en courant sinusoïdal. Un condensateur, initialement déchargé, est traversé par le courant , en ampères, où est en secondes (la pulsation rad/s correspond au Hz du réseau). Le courant est le rythme auquel la charge s'accumule : est donc une primitive de . D'après la propriété, avec et :
La condition initiale donne , d'où , en coulombs, avec . La charge oscille donc à la même fréquence que le courant, mais avec un quart de période de décalage : elle est maximale quand le courant s'annule.
Un mot d'avertissement, car cette famille de formules est un nid à erreurs de signe. En dérivant, c'est le cosinus qui produit le signe « moins » : . En cherchant une primitive, c'est l'inverse : c'est le sinus qui reçoit le signe « moins », puisqu'une primitive de est . Deuxième piège : on divise par , on ne multiplie pas (la multiplication par , c'est la dérivation). En cas de doute, le réflexe est toujours le même : dériver le résultat obtenu et vérifier que l'on retombe sur la fonction de départ, signe compris.
Primitives et cinématique
Le vocabulaire des primitives donne enfin sa forme définitive au lien entre position, vitesse et accélération, entrevu au chapitre précédent. La vitesse est la dérivée de la position : . En sens inverse, la position est donc une primitive de la vitesse : une primitive parmi d'autres, car la vitesse seule ne dit pas d'où le mobile est parti ; c'est la position initiale qui fixe la constante. Le même raisonnement s'applique un cran plus haut : l'accélération est la dérivée de la vitesse, donc la vitesse est une primitive de l'accélération, la constante étant fixée par la vitesse initiale.
Méthode
De l'accélération à la position. Connaissant l'accélération d'un mobile, sa vitesse initiale et sa position initiale :
- chercher une primitive de : la vitesse s'écrit ;
- déterminer avec la vitesse initiale ;
- chercher une primitive de : la position s'écrit ;
- déterminer avec la position initiale.
Deux primitives successives, et une condition initiale à chaque étape : sans elles, le mouvement n'est déterminé qu'à des constantes près.
Exemple
Loi horaire de la chute libre. Un objet est lancé verticalement vers le bas avec une vitesse initiale , depuis une position repérée par sur un axe vertical orienté vers le bas. En chute libre (frottements négligés), l'accélération est constante et vaut , avec .
Première primitive : la vitesse. La vitesse est une primitive de la fonction constante , donc . À l'instant initial, , d'où :
Seconde primitive : la position. La position est une primitive de . Terme à terme : une primitive de est , une primitive de la constante est . Donc , et la condition donne :
C'est la loi horaire du mouvement uniformément accéléré, exactement celle du cours de physique : elle n'est rien d'autre que le calcul de deux primitives successives d'une constante.
Application numérique. Pour un objet lâché sans vitesse initiale () depuis l'origine () : . Après secondes de chute, l'objet a parcouru m et sa vitesse atteint m/s, soit environ km/h.
La méthode d'Euler
Jusqu'ici, toutes les fonctions rencontrées avaient des primitives que nous savions écrire : polynômes, signaux sinusoïdaux. Il faut maintenant faire face à une réalité que les scientifiques connaissent bien : certaines fonctions, pourtant très simples, n'ont pas de primitive exprimable avec les fonctions connues. L'exemple emblématique est la fonction
définie et continue sur tout entier (son dénominateur ne s'annule jamais). On peut démontrer que ses primitives existent, mais aucune ne s'écrit à l'aide des polynômes, des quotients ou des fonctions trigonométriques du programme : aucun tableau, aucune formule de ce chapitre ne les donnera. Devons-nous renoncer à tracer leur courbe ? Non, et c'est tout l'objet de cette dernière section : à défaut d'une formule, nous allons construire la courbe point par point, de façon approchée.
Posons d'abord proprement le problème.
Définition
Problème de Cauchy. Soient une fonction définie sur un intervalle, un réel de cet intervalle et un réel. Résoudre le problème de Cauchy
c'est chercher la fonction dont la dérivée est et qui vaut en . Autrement dit : chercher la primitive de dont la courbe passe par le point . D'après la propriété de la condition initiale, cette fonction existe et est unique.
L'idée de la méthode d'Euler tient dans un résultat déjà connu : l'approximation affine du chapitre Dérivées. Près d'un point, une courbe se confond avec sa tangente, ce qui s'écrit pour petit. Or ici, nous connaissons : c'est justement la fonction du problème de Cauchy ! L'approximation devient :
Voilà qui change tout : connaissant la valeur de en un point, cette formule donne une valeur approchée de un peu plus loin, au prix d'un simple calcul de . Et rien n'empêche de recommencer à partir du nouveau point, puis du suivant : de proche en proche, on avance le long de la courbe par petits pas de longueur , appelée le pas de la méthode.
Méthode
Construire les points d'Euler. Pour approcher la solution du problème de Cauchy , , avec un pas :
- partir du point donné par la condition initiale ;
- calculer le point suivant par les formules : et ;
- répéter l'étape 2 autant de fois que nécessaire pour couvrir l'intervalle voulu ;
- relier les points obtenus : la ligne brisée ainsi tracée est une approximation de la courbe de la solution.
À chaque étape, on remplace la courbe par sa tangente sur un petit intervalle de longueur : chaque segment de la ligne brisée a pour coefficient directeur , la pente exacte que la solution doit avoir en . Mettons la méthode à l'épreuve sur notre fonction rebelle.
Exemple
Points d'Euler pour , . Appliquons la méthode sur l'intervalle avec un pas , en partant du point . Il faut quatre étapes.
Étape 1. En : , donc . Nouveau point : .
Étape 2. En : , donc . Nouveau point : .
Étape 3. En : , donc . Nouveau point : .
Étape 4. En : , donc . Dernier point : .
Récapitulons les valeurs obtenues :
Cinq points, obtenus avec de simples additions et multiplications, alors qu'aucune formule ne peut donner la solution : c'est la force de la méthode.
La figure superpose la ligne brisée d'Euler et la courbe de la solution exacte du problème. On constate que la ligne brisée suit fidèlement la courbe au début, puis s'en écarte légèrement : chaque étape commet une petite erreur (on suit la tangente au lieu de la courbe), et ces erreurs s'accumulent de proche en proche.
Comment améliorer la précision ? La réponse est dans l'approximation affine elle-même : elle est d'autant meilleure que est petit. En divisant le pas par , chaque segment colle beaucoup mieux à la courbe, et la ligne brisée devient presque indiscernable de la solution. Le prix à payer est le nombre de calculs : couvrir avec un pas de demande étapes au lieu de , et un pas de en demanderait . C'est le même arbitrage qu'en physique lorsqu'on choisit l'incrément de temps d'une simulation : un pas fin donne un résultat précis mais coûteux, un pas grossier va vite mais dérive. Ce genre de calcul répétitif est exactement ce pour quoi les ordinateurs sont faits, et la méthode d'Euler se programme en quelques lignes.
def euler(f, t0, y0, h, n):
"""Construit n points d'Euler pour y' = f(t), y(t0) = y0, avec un pas h."""
liste_t = [t0]
liste_y = [y0]
t = t0
y = y0
for k in range(n):
y = y + h * f(t)
t = t + h
liste_t.append(t)
liste_y.append(y)
return liste_t, liste_y
f = lambda t: 1 / (1 + t**2)
temps, valeurs = euler(f, 0, 0, 0.5, 4)
print(temps) # [0, 0.5, 1.0, 1.5, 2.0]
print(valeurs) # [0, 0.5, 0.9, 1.15, 1.3038...]
La fonction euler reproduit exactement la méthode : elle part du couple (t0, y0), puis répète n fois le passage d'un point au suivant, en stockant les valeurs dans deux listes. L'appel avec h = 0.5 et n = 4 redonne les cinq points calculés à la main ; pour affiner, il suffit de changer les arguments, par exemple euler(f, 0, 0, 0.05, 40), et de laisser la machine additionner.
Ce chapitre referme l'année sur une boucle élégante. La dérivation transformait une position en vitesse, une fonction en sa pente ; la primitive fait le chemin inverse, et rend à la physique ses lois horaires. Et quand les formules s'arrêtent, l'approximation affine, premier outil du chapitre Dérivées, prend le relais sous la forme de la méthode d'Euler : quelques multiplications répétées suffisent à dessiner une courbe qu'aucune expression ne sait décrire. Les exercices vont maintenant faire fonctionner ces trois registres, du calcul de primitives à la programmation.
Bloqué sur « Primitives » ?
On peut le travailler ensemble dès cette semaine. La première heure est offerte — on fait le point honnêtement, et vous repartez au minimum avec une méthode.