Application numérique : la méthode des trapèzes

Leçon optionnelle — Illustration concrète de l'intégration numérique


Contexte

Dans la leçon « Pourquoi certaines intégrales n'ont pas de solution analytique », nous avons vu que l'intégrale

J=0π1+cos2(x)dxJ = \int_0^{\pi} \sqrt{1 + \cos^2(x)} \, dx

n'admet aucune primitive en forme close. C'est une intégrale elliptique, prouvablement non élémentaire par le théorème de Liouville.

Pourtant, cette intégrale existe bel et bien — c'est l'aire sous une courbe parfaitement définie. Comment la calculer? C'est ici qu'intervient l'analyse numérique.


La méthode des trapèzes

Idée géométrique

La méthode des trapèzes approche l'aire sous la courbe par une somme d'aires de trapèzes. Sur chaque sous-intervalle, on relie les deux points de la courbe par un segment de droite.

Formule

On découpe l'intervalle [a,b][a, b] en nn sous-intervalles de largeur h=banh = \frac{b-a}{n}. Les points de subdivision sont :

xk=a+khpour k=0,1,2,,nx_k = a + k \cdot h \quad \text{pour } k = 0, 1, 2, \ldots, n

L'approximation de l'intégrale est alors :

abf(x)dxh2[f(x0)+2f(x1)+2f(x2)++2f(xn1)+f(xn)]\int_a^b f(x) \, dx \approx \frac{h}{2} \left[ f(x_0) + 2f(x_1) + 2f(x_2) + \cdots + 2f(x_{n-1}) + f(x_n) \right]

Ou, sous forme compacte :

In=h2[f(a)+f(b)+2k=1n1f(xk)]I_n = \frac{h}{2} \left[ f(a) + f(b) + 2\sum_{k=1}^{n-1} f(x_k) \right]
💡

Pourquoi les coefficients 1, 2, 2, ..., 2, 1 ?

Chaque trapèze a pour aire h2(f(xk)+f(xk+1))\frac{h}{2}(f(x_k) + f(x_{k+1})). En sommant tous les trapèzes, les points intérieurs apparaissent deux fois (une fois comme extrémité droite d'un trapèze, une fois comme extrémité gauche du suivant), d'où le coefficient 2.


Implémentation

trapezes_elliptique.pypython
import numpy as np

def f(x):
  """Notre intégrale elliptique."""
  return np.sqrt(1 + np.cos(x)**2)

def trapezes(a, b, n):
  """
  Méthode des trapèzes avec n subdivisions.

  Paramètres :
      a, b : bornes de l'intervalle
      n    : nombre de subdivisions

  Retourne :
      Approximation de l'intégrale
  """
  h = (b - a) / n
  x = np.linspace(a, b, n + 1)
  y = f(x)

  # Formule des trapèzes
  return h * (0.5 * y[0] + np.sum(y[1:-1]) + 0.5 * y[-1])

# Calcul pour différentes valeurs de n
print("Méthode des trapèzes pour J = ∫₀^π √(1 + cos²(x)) dx")
print("-" * 50)

for n in [2, 4, 6, 8, 10, 12, 16]:
  I = trapezes(0, np.pi, n)
  print(f"n = {n:3d} : I ≈ {I:.10f}")

Résultats

n (subdivisions)ApproximationErreur absolue
23.79223779592.8 × 10⁻²
43.81994364322.5 × 10⁻⁴
63.82019386753.9 × 10⁻⁶
83.82019771547.4 × 10⁻⁸
103.82019778751.5 × 10⁻⁹
123.82019778903.4 × 10⁻¹¹
163.82019778901.9 × 10⁻¹⁴

Ajouter deux subdivisions divise l'erreur par un facteur qui reste compris entre 40 et 65 tout au long du tableau. Au-delà de n=16n = 16, l'erreur atteint la précision machine et cesse de décroître : ce n'est plus la méthode qu'on observe, mais la limite du calcul en double précision.


Analyse de la convergence

Ordre de convergence

On observe une convergence bien plus rapide que O(h2)O(h^2) : dès n=10n = 10 l'erreur vaut environ 1,5×1091{,}5 \times 10^{-9}, et à partir de n=20n = 20 on atteint la précision machine.

C'est un cas particulièrement favorable : f(x)=1+cos2(x)f(x) = \sqrt{1 + \cos^2(x)} est analytique et π\pi-périodique, et [0,π][0, \pi] couvre exactement une période. Toutes les dérivées coïncident aux deux bornes, les termes de bord de la formule d'Euler-Maclaurin s'annulent, et la méthode des trapèzes converge alors plus vite que n'importe quelle puissance de hh.

Borne théorique de l'erreur

Pour une fonction ff deux fois dérivable, l'erreur de la méthode des trapèzes est bornée par :

En(ba)312n2maxx[a,b]f(x)|E_n| \leq \frac{(b-a)^3}{12n^2} \max_{x \in [a,b]} |f''(x)|

Dans le cas général, cette borne garantit une convergence en O(h2)O(h^2) : doubler nn divise l'erreur au moins par 4. Ce n'est qu'une majoration, et l'exemple ci-dessus fait bien mieux.

Le cas général, sur la même fonction

Pour voir le O(h2)O(h^2) annoncé, il suffit de garder la même fonction et de changer l'intervalle. Sur [0,1][0, 1], qui ne correspond à aucune période, les termes de bord ne s'annulent plus :

nApproximationErreur absolueRapport
41.30934914222.1 × 10⁻³
81.31092104425.2 × 10⁻⁴4.01
161.31131225181.3 × 10⁻⁴4.00
321.31140994393.3 × 10⁻⁵4.00
641.31143436018.1 × 10⁻⁶4.00

La valeur exacte vaut ici 1,31144249821{,}3114424982, et le rapport se tient sur 4.00 à chaque doublement : c'est exactement le comportement d'ordre 2. Deux intervalles, une seule fonction, deux régimes de convergence — ce n'est donc pas l'intégrande qui décide, mais la façon dont ses dérivées se comportent aux bornes.

La formule d'Euler-Maclaurin fait apparaître des termes de bord en f(b)f(a)f'(b) - f'(a), puis en f(b)f(a)f'''(b) - f'''(a), et ainsi de suite. Sur [0,π][0, \pi], les dérivées impaires prennent la même valeur aux deux bornes : toutes ces différences s'annulent, et il ne reste aucun terme, à aucun ordre fini. Sur [0,1][0, 1], f(0)=0f'(0) = 0 mais f(1)0,40f'(1) \approx -0{,}40 : le premier terme survit et impose son O(h2)O(h^2).

Le cas général reste donc celui-ci : la méthode des trapèzes est d'ordre 2. La convergence spectrale observée plus haut tient à la périodicité de l'exemple, ce n'est pas la règle.


Ce que montre cet exemple

💡

Message clé

Ce que les mathématiques ne peuvent exprimer en forme close, l'analyse numérique le calcule avec une précision arbitraire.

La valeur J3.8201977890...J \approx 3.8201977890... est aussi « vraie » que π\pi ou ee — on peut la calculer avec autant de décimales qu'on veut.

Lien avec les fonctions spéciales

Cette valeur correspond exactement à :

J=22E(12)3.8201977890...J = 2\sqrt{2} \cdot E\left(\frac{1}{\sqrt{2}}\right) \approx 3.8201977890...

E(k)E(k) est l'intégrale elliptique complète de seconde espèce :

E(k)=0π/21k2sin2(θ)dθE(k) = \int_0^{\pi/2} \sqrt{1 - k^2 \sin^2(\theta)} \, d\theta

Les tables de fonctions spéciales (comme le Handbook of Mathematical Functions d'Abramowitz et Stegun) donnent E(1/2)1.3506...E(1/\sqrt{2}) \approx 1.3506....


Pour aller plus loin

La méthode des trapèzes est la plus simple des méthodes d'intégration numérique, mais pas la plus efficace. Dans les chapitres suivants, nous verrons :

  • La méthode de Simpson (convergence en O(h4)O(h^4))
  • Les méthodes de Gauss (précision optimale pour un nombre donné d'évaluations)
  • Les méthodes adaptatives (qui ajustent automatiquement le pas)
💡

À retenir

  • La méthode des trapèzes approxime l'intégrale par une somme de trapèzes
  • Elle converge en O(h2)O(h^2) dans le cas général : doubler nn divise l'erreur par 4
  • Elle permet de calculer numériquement des intégrales sans primitive élémentaire