Le calcul d'une intégrale a été appris en première année : on cherche une primitive, on la prend entre deux bornes, c'est fini. Ce chapitre n'ajoute qu'une chose — mais elle change tout : des propriétés qui permettent de manipuler une intégrale sans la calculer. Comparer deux intégrales, encadrer celle qu'on ne sait pas calculer, casser un produit en deux morceaux : voilà le programme.
AttentionCe chapitre revient sur du connu
Le programme l'annonce ainsi : « Ce chapitre sera l'occasion de revenir sur les calculs d'intégrales introduits au S2. » Les primitives usuelles sont donc supposées acquises ; on ne les redémontre pas, on s'en sert.
Deux limites, à garder en tête tout au long. D'abord, toutes les fonctions rencontrées ici sont continues sur un segment[a,b] : la notion de fonction continue par morceaux est hors-programme, elle n'apparaîtra qu'au quatrième semestre et seulement en pratique. Ensuite, les bornes sont des nombres : les intégrales généralisées en un point réel sont hors-programme, et les intégrales à borne infinie attendront le chapitre d'analyse du quatrième semestre.
2.1 Rappels sur l'intégrale
Définition 2.1Intégrale d'une fonction continue
Soit f une fonction continue sur un intervalle contenant a et b, et soit F une primitive de f sur cet intervalle. On pose
∫abf(t)dt=[F(t)]ab=F(b)−F(a).
Le résultat ne dépend pas de la primitive choisie : deux primitives diffèrent d'une constante, qui s'élimine dans la soustraction.
La dernière ligne se retrouve par une intégration par parties — c'est d'ailleurs l'exemple type de la section 4.
Proposition 2.2Interprétation géométrique
Si f est continue et positive sur [a,b] avec a≤b, alors ∫abf(t)dt est l'aire, en unités d'aire, de la région comprise entre la courbe de f, l'axe des abscisses et les droites verticales d'équations t=a et t=b.
◆Théorème 2.3Relation de Chasles
Pour f continue sur un intervalle contenant a, b et c :
∫acf(t)dt=∫abf(t)dt+∫bcf(t)dt.
Démonstration
Avec une primitive F : le membre de droite vaut (F(b)−F(a))+(F(c)−F(b))=F(c)−F(a), qui est le membre de gauche. Le terme F(b) apparaît deux fois avec des signes opposés.
AttentionUne intégrale n'est pas toujours une aire
Dès que f prend des valeurs négatives, ∫abf n'est plus une aire mais une aire algébrique : ce qui est sous l'axe compte négativement. Et si b<a, l'intégrale change de signe.
L'égalité « intégrale = aire » suppose donc deux choses : f≥0eta≤b. On les vérifie avant de l'invoquer.
2.2 Linéarité de l'intégrale
La première propriété est aussi la plus employée : elle dit qu'une intégrale se distribue sur une somme et laisse sortir les constantes. C'est ce qui permet d'intégrer une expression compliquée en la coupant en morceaux dont chacun est au tableau des primitives.
◆Théorème 2.4Linéarité
Soient f et g continues sur un intervalle contenant a et b, et soient α et β deux réels. Alors
∫ab(αf(t)+βg(t))dt=α∫abf(t)dt+β∫abg(t)dt.
Démonstration
Si F est une primitive de f et G une primitive de g, alors αF+βG est une primitive de αf+βg. En l'évaluant entre a et b on obtient α(F(b)−F(a))+β(G(b)−G(a)), qui est le membre de droite.
Le calcul direct donne le même résultat : [t3−t2+t]02=8−4+2=6. La linéarité n'est pas une astuce de calcul, c'est ce qui autorise à traiter un polynôme morceau par morceau.
AttentionCe que la linéarité ne dit pas
Elle porte sur les sommes et les multiples, jamais sur les produits ni sur les quotients :
∫abf(t)g(t)dt=(∫abf(t)dt)(∫abg(t)dt).
Contre-exemple immédiat sur [0,1] avec f=g=t : à gauche ∫01t2dt=31, à droite 21×21=41. C'est justement parce que le produit résiste que l'intégration par parties existe.
Python : La linéarité, mesurée
def aire(f, a, b, n=200000):
h = (b - a) / n
return sum(f(a + (k + 0.5) * h) for k in range(n)) * h
I1 = aire(lambda t: t, 0, 1)
I2 = aire(lambda t: t * t, 0, 1)
I3 = aire(lambda t: 3 * t - 2 * t * t, 0, 1)
print(round(I1, 6), round(I2, 6), round(I3, 6))
# 0.5 0.333333 0.833333
print(round(3 * I1 - 2 * I2, 6))
# 0.833333
La fonction aire découpe [a,b] en n tranches et somme les rectangles de hauteur prise au milieu. Les deux dernières sorties coïncident : c'est la linéarité, vérifiée sur un cas.
2.3 Positivité et comparaison
Voici le cœur du chapitre. Les deux résultats qui suivent permettent de dire quelque chose d'une intégrale qu'on ne sait pas calculer : il suffit d'encadrer la fonction, et l'encadrement se transmet aux intégrales. C'est l'outil qui servira, au quatrième semestre, à traiter les lois à densité.
◆Théorème 2.6Positivité de l'intégrale
Soit f continue sur [a,b] avec a≤b. Si f(t)≥0 pour tout t∈[a,b], alors ∫abf(t)dt≥0.
Démonstration
Une primitive F de f a pour dérivée f≥0 : elle est donc croissante sur [a,b]. Comme a≤b, on a F(a)≤F(b), c'est-à-dire F(b)−F(a)≥0.
◆Théorème 2.7Comparaison de deux intégrales
Soient f et g continues sur [a,b] avec a≤b. Si f(t)≤g(t) pour tout t∈[a,b], alors
∫abf(t)dt≤∫abg(t)dt.
Démonstration
La fonction g−f est continue et positive sur [a,b]. Le théorème précédent donne ∫ab(g−f)≥0, et la linéarité transforme cela en ∫abg−∫abf≥0.
↳Corollaire 2.8Encadrement par le minimum et le maximum
Soit f continue sur [a,b] avec a≤b. Si m≤f(t)≤M pour tout t∈[a,b], alors
m(b−a)≤∫abf(t)dt≤M(b−a).
Démonstration
On compare f aux deux fonctions constantes t↦m et t↦M, dont les intégrales sur [a,b] valent respectivement m(b−a) et M(b−a).
Exemple 2.9Encadrer sans calculer
On ne sait pas donner de primitive explicite de t↦e−t2. Pourtant, sur [0,1] on a 0≤t2≤1, donc e−1≤e−t2≤1, et le corollaire donne
e1≤∫01e−t2dt≤1,soit0,367≤∫01e−t2dt≤1.
La valeur exacte est 0,7468 : l'encadrement est large, mais il a été obtenu sans le moindre calcul d'intégrale.
2.4 Intégration par parties
Aucune formule ne donne la primitive d'un produit. L'intégration par parties ne la donne pas non plus : elle échange l'intégrale d'un produit contre celle d'un autre produit, en espérant que le second soit plus simple. C'est la seule technique de calcul nouvelle du chapitre, et elle vient tout entière de la dérivée d'un produit.
◆Théorème 2.10Intégration par parties
Si u, v, u′ et v′ sont des fonctions continues sur [a,b], alors
∫abu′(t)v(t)dt=[u(t)v(t)]ab−∫abu(t)v′(t)dt.
Démonstration
La fonction uv a pour dérivée u′v+uv′, qui est continue. Donc uv est une primitive de u′v+uv′ et
∫ab(u′(t)v(t)+u(t)v′(t))dt=[u(t)v(t)]ab.
La linéarité permet de séparer les deux morceaux, et l'on fait passer le second de l'autre côté.
ImportantComment choisir
Dans un produit à intégrer, on cherche le facteur qui se simplifie en dérivant : ce sera v. L'autre doit se primitiver sans peine : ce sera u′.
tn×eαt : on dérive tn (son degré baisse), on primitive l'exponentielle.
tn×lnt : on dérive lnt (il devient 1/t), on primitive tn.
Un mauvais choix ne donne pas un résultat faux : il donne une intégrale plus difficile que celle de départ. C'est le signal qu'il faut échanger les rôles.
Exemple 2.11Le cas d'école
Calculons ∫01te−tdt. On pose u′(t)=e−t et v(t)=t, donc u(t)=−e−t et v′(t)=1 :
C'est la ligne manquante du tableau des primitives : tlnt−t est une primitive de lnt.
2.5 Une application de gestion
Un euro d'aujourd'hui ne vaut pas un euro dans cinq ans. Quand un revenu s'étale dans le temps, l'addition ne suffit plus : il faut ramener chaque euro à sa valeur d'aujourd'hui avant de sommer, et cette somme continue est une intégrale.
ImportantLa valeur actuelle d'un flux continu
Un revenu de F euros par an, versé de façon continue pendant T années, ne vaut pas F×T aujourd'hui : un euro reçu dans t années vaut e−rt euro aujourd'hui, où r est le taux d'actualisation. La valeur actuelle du flux est donc
V=∫0TFe−rtdt=F×r1−e−rT.
Démonstration
Une primitive de t↦Fe−rt est t↦−rFe−rt. En l'évaluant entre 0 et T : −rFe−rT+rF=rF(1−e−rT).
Exemple 2.13Un contrat sur dix ans
Un contrat rapporte 50000 euros par an pendant 10 ans, au taux r=0,04. Sa valeur actuelle est
V=50000×0,041−e−0,4=50000×8,2420≈412100 euros,
et non 500000 euros. L'écart, près de 88000 euros, est le prix du temps.
Python : Une intégrale, deux façons
from math import exp
def aire(f, a, b, n=200000):
h = (b - a) / n
return sum(f(a + (k + 0.5) * h) for k in range(n)) * h
r, F, T = 0.04, 50000, 10
approche = aire(lambda t: F * exp(-r * t), 0, T)
exacte = F * (1 - exp(-r * T)) / r
print(round(approche, 2), round(exacte, 2))
# 412099.94 412099.94
La méthode des rectangles ignore tout des primitives : elle ne fait qu'additionner des tranches. Qu'elle retrouve la formule à deux décimales près est un contrôle, pas une démonstration.
Python : Ce que vaut un découpage grossier
from math import exp
def f(t):
return t * exp(-t)
def aire(f, a, b, n):
h = (b - a) / n
s = 0.0
for k in range(n):
s = s + f(a + (k + 0.5) * h) * h
return s
for n in [10, 100, 1000]:
print(n, round(aire(f, 0, 1, n), 6))
# 10 0.264658 / 100 0.264245 / 1000 0.264241
print(round(1 - 2 / exp(1), 6)) # 0.264241
Dix tranches suffisent déjà à trois décimales. Mille tranches redonnent 1−2/e à la sixième décimale — mais aucune valeur de n ne donnera l'exact, que seule l'intégration par parties fournit.