Méthodes numériques#

Dès la terminale

Rechercher et approcher une valeur#

La dichotomie#

On cherche une solution de \(f(x)=0\) dans un intervalle \([a;b]\). Si \(f\) est continue et si \(f(a)\) et \(f(b)\) sont de signes opposés, on coupe l’intervalle en deux et on conserve la moitié où le changement de signe se produit.

Départ
11,52

m = 1,5 : le changement de signe se trouve dans [1 ; 1,5].

Étape 1
11,251,5

m = 1,25 : le nouvel intervalle est [1,25 ; 1,5].

Étape 2
1,251,3751,5

m = 1,375 : il reste [1,375 ; 1,5].

Étape 3
1,3751,43751,5

Le nouvel intervalle est [1,375 ; 1,4375]. Sa longueur a encore été divisée par deux.

intervalle conservé partie écartée

Pour approcher \(\sqrt2\), on résout \(x^2-2=0\) sur \([1;2]\).

Exemple
Dichotomie sur [1 ; 2]
Prêt
Sortie

  

La longueur finale de l’intervalle est inférieure à 0,001. Diminue cette précision et observe le nombre d’itérations nécessaires en ajoutant un compteur.

Défi. Utiliser la dichotomie pour approcher la solution de \(x^3-5=0\) à \(10^{-2}\) près.

Besoin d’un indice ?

La solution se trouve entre 1 et 2. Reprends la structure de l’exemple en changeant la fonction et l’intervalle de départ.

À toi
Dichotomie pour x³ − 5
À faire
Sortie

  

Maximum par balayage#

Pour approcher le maximum d’une fonction sur un intervalle, on peut tester beaucoup de points régulièrement espacés et conserver la plus grande valeur rencontrée.

On considère \(f(x)=-3x^2+4x+1\) sur \([0;4]\).

Exemple
Maximum approché
Prêt
Sortie

  

Avec n = 1000, le pas devient dix fois plus petit et la position obtenue est généralement plus précise.

Application. Approcher le maximum de \(f(x)=-x^2+6x-5\) sur \([0;6]\).

À toi
Maximum sur [0 ; 6]
À faire
Sortie

  

La méthode de Héron#

La suite \(u_{n+1}=\frac12\left(u_n+\frac{a}{u_n}\right)\) approche rapidement \(\sqrt a\) lorsque \(a>0\) et \(u_0>0\).

Exemple
Approcher une racine carrée
Prêt
Sortie

  

Pour d’autres valeurs de a, la comparaison avec a**0.5 permet d’évaluer l’approximation. Cette méthode réutilise seulement les fonctions, les boucles et les suites déjà rencontrées.

Prolongement. Approcher le nombre d’or \(\varphi=(1+\sqrt5)/2\) sans utiliser sqrt ni une puissance 0.5. Réutiliser la méthode de Héron et écrire une fonction nombre_or(precision).

À toi
Approcher le nombre d’or
À faire
Sortie

  

Approcher une aire#

Méthode des rectangles#

On peut approcher l’aire située sous une courbe en découpant l’intervalle en bandes étroites. Sur chaque bande, on remplace la courbe par un rectangle.

Pour \(f(x)=x^2\) sur \([0;1]\), la valeur exacte de l’intégrale est \(\frac13\).

Cinq rectangles à gauche Cinq rectangles dont la hauteur est donnée par l’extrémité gauche de chaque intervalle. f(x) = x² 01
5 rectangles à gauche
Vingt rectangles à gauche La même méthode avec une subdivision quatre fois plus fine. f(x) = x² 01
20 rectangles à gauche

La méthode reste la même, mais le pas est quatre fois plus petit dans le second schéma : les rectangles suivent plus finement la courbe. Le premier rectangle a une hauteur nulle, car f(0) = 0.

Exemple
Aire sous la courbe de x²
Prêt
Sortie

  

Avec n = 10, 100 puis 1000, l’erreur diminue tandis que le nombre de calculs augmente.

Point milieu et trapèzes#

Sur chaque sous-intervalle, il faut décider à quelle hauteur remplacer la courbe. Trois choix classiques sont représentés ci-dessous.

à gauche
hauteur prise au début
au milieu
hauteur prise au centre
trapèze
segment entre les deux bords

Sur le sous-intervalle \([x_i;x_{i+1}]\) de largeur \(h\), les trois contributions sont :

\[h f(x_i),\qquad h f\!\left(\frac{x_i+x_{i+1}}2\right),\qquad h\frac{f(x_i)+f(x_{i+1})}{2}.\]

La structure de la boucle ne change pas : seule la contribution ajoutée à l’accumulateur est différente. Voici une comparaison sur \([0;1]\). Les commentaires signalent précisément la ligne qui distingue les méthodes.

Exemple
Comparer trois approximations
Prêt
Sortie

  

Avec une fonction croissante, les rectangles à gauche sous-estiment l’aire et les rectangles à droite la surestiment. La méthode de Simpson va encore plus loin en remplaçant localement la courbe par un arc de parabole ; elle pourra être étudiée avec un professeur.

Comparer les méthodes. Écrire trois fonctions rectangles, milieux et trapezes ayant les mêmes paramètres (f, a, b, n). Comparer leurs résultats pour 10, 100 puis 1 000 subdivisions.

À toi
Comparer trois méthodes
À faire
Sortie

  

Estimer une aire au hasard#

Les méthodes précédentes découpent l’intervalle de façon régulière. La méthode de Monte-Carlo procède autrement : elle place des points au hasard dans un rectangle qui contient la région à mesurer, puis observe la proportion de points tombés dans cette région.

Pour l’aire sous la parabole \(y=x^2\) entre 0 et 1, on choisit un point \((x,y)\) dans le carré \([0;1]\times[0;1]\). Il est sous la courbe lorsque \(y\leqslant x^2\). La fréquence de cette condition fournit une estimation de l’aire.

Cette approche est généralement moins précise que les rectangles ou les trapèzes pour une fonction aussi simple. Son intérêt apparaît surtout lorsque la région devient difficile à découper directement.

Simulation. Écrire une fonction aire_parabole(N) qui renvoie l’estimation obtenue avec N points. Comparer plusieurs résultats pour 100, 1 000 puis 20 000 points : deux exécutions avec le même nombre de points ne donnent pas exactement la même valeur.

À toi
Aire sous une parabole au hasard
À faire
Sortie

  

Résoudre une équation#

La méthode de Newton#

Pour résoudre \(f(x)=0\), la méthode de Newton remplace une valeur \(x_n\) par l’abscisse où la tangente en \(x_n\) coupe l’axe :

\[x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}.\]

La construction se lit sur le graphique : on part de \(x_0\), on monte jusqu’à la courbe, puis on suit la tangente jusqu’à l’axe des abscisses. Son point d’intersection donne \(x_1\). On recommence ensuite à partir de \(x_1\).

Les deux premières itérations sont séparées ci-dessous pour que les tangentes et les projections ne se recouvrent pas. On utilise \(f(x)=x^3-2\), dont la courbure rend la construction bien visible. Sa racine positive est notée \(\alpha=\sqrt[3]{2}\).

Première itération de Newton Depuis x zéro égal à 2, la verticale rejoint la courbe de x cube moins 2. La tangente coupe l’axe en x un égal à 1,5. y = x³ − 2 x₀ = 2 x₁ = 1,5 α
1 La tangente en x₀ donne x₁.
Deuxième itération de Newton Depuis x un égal à 1,5, la verticale rejoint la courbe. La nouvelle tangente coupe l’axe en x deux, plus proche de la racine alpha. y = x³ − 2 x₁ = 1,5 x₂ ≈ 1,296 α
2 La tangente en x₁ donne x₂.
x₀ = 2x₁ = 1,5x₂ ≈ 1,296x₃ ≈ 1,261α ≈ 1,260

À chaque étape : verticale jusqu’à la courbe, puis tangente jusqu’à l’axe.

Exemple
Approcher une solution par les tangentes
Prêt
Sortie

  

Les valeurs se rapprochent rapidement de \(\sqrt[3]{2}\). Newton peut converger très vite, mais un mauvais point de départ ou une dérivée nulle peut faire échouer la méthode.

Généraliser. Écrire une fonction newton(f, derivee, x, precision, max_iterations=100) qui s’arrête lorsque \(|f(x)|\) est inférieur à precision. Prévoir un nombre maximal d’itérations et le cas où la dérivée s’annule.

À toi
Méthode de Newton
À faire
Sortie

  

Une dérivée nulle#

Ce programme démarre en un point où la dérivée s’annule. Le message d’erreur permet de repérer la division impossible avant de choisir un autre départ ou de prévoir ce cas dans la fonction.

À corriger
Contrôler la pente
Erreur attendue
Sortie

  
Comment chercher ?

Calcule derivee(0). Avant toute division par une pente, un programme robuste vérifie que sa valeur n’est pas nulle — ou, avec des décimaux, qu’elle n’est pas trop proche de zéro.

La méthode de la sécante#

La méthode de la sécante évite de connaître la dérivée. Elle part de deux abscisses \(x_0\) et \(x_1\), puis trace la droite passant par les deux points correspondants de la courbe. L’intersection de cette droite avec l’axe donne \(x_2\). Pour poursuivre, on oublie \(x_0\) et on recommence avec \(x_1\) et \(x_2\).

On conserve la fonction \(f(x)=x^3-2\). Là encore, une seule sécante est affichée par graphique. Les deux points verts sont les points utilisés pour tracer la droite ; le point orange sur l’axe est la nouvelle approximation.

Première itération de la méthode de la sécante La droite passant par les points de la courbe d’abscisses x zéro égal à 0,8 et x un égal à 2 coupe l’axe en x deux proche de 1,038. y = x³ − 2 P₀P₁ x₀ = 0,8 x₁ = 2 x₂ ≈ 1,038 α
1 Les points P₀ et P₁ donnent x₂.
Deuxième itération de la méthode de la sécante La droite passant maintenant par les points d’abscisses x un et x deux coupe l’axe en x trois, plus proche de la racine alpha. y = x³ − 2 P₂P₁ x₁ = 2 x₂ ≈ 1,038 x₃ ≈ 1,161 α
2 On conserve P₁ et P₂ pour obtenir x₃.
x₀ = 0,8x₁ = 2x₂ ≈ 1,038x₃ ≈ 1,161x₄ ≈ 1,281α ≈ 1,260

À chaque étape, les deux approximations les plus récentes remplacent les deux précédentes.

\[x_{n+1}=x_n-f(x_n)\frac{x_n-x_{n-1}}{f(x_n)-f(x_{n-1})}.\]

Le dénominateur doit être non nul. Comme pour Newton, il faut contrôler le point de départ, le nombre d’itérations et la valeur finale obtenue.

Exemple
Deux étapes avec une sécante
Prêt
Sortie

  

Généraliser. Écrire une fonction secante(f, x0, x1, precision, max_iterations=100) qui renvoie une valeur x telle que \(|f(x)|<\text{precision}\). Tester sur \(f(x)=x^3-5\), avec 1 et 2 comme valeurs initiales.

À toi
Méthode de la sécante
À faire
Sortie

  

Itérer et modéliser#

La méthode d’Archimède#

Archimède approche \(\pi\) à l’aide de polygones réguliers inscrits et circonscrits à un cercle. Le demi-périmètre intérieur \(p_n\) est trop petit ; le demi-périmètre extérieur \(q_n\) est trop grand. Ainsi \(p_n<\pi<q_n\). En doublant le nombre de côtés, les deux polygones épousent de mieux en mieux le cercle.

Encadrement du cercle par des polygones réguliers À gauche, un carré inscrit et un carré circonscrit. À droite, deux octogones plus proches du cercle. Les côtés des polygones extérieurs sont tangents au cercle. plus de côtés polygone inscrit : périmètre trop petit polygone circonscrit : périmètre trop grand

En partant des hexagones, on pose \(p_0=3\) et \(q_0=2\sqrt3\). Le doublement du nombre de côtés conduit à :

\[p_{n+1}=\frac{2p_nq_n}{p_n+q_n}, \qquad q_{n+1}=\sqrt{p_{n+1}q_n}.\]

Contrôler la précision. Écrire une fonction archimede(precision) qui répète ces calculs tant que \(q_n-p_n\) dépasse precision, puis renvoie l’encadrement obtenu. Le calcul ne doit pas utiliser math.pi.

À toi
Méthode d’Archimède
À faire
Sortie

  

Construire une courbe par petits pas#

Pour une équation \(y'=F(x,y)\), la méthode d’Euler part d’un point \((x_0,y_0)\) et répète :

\[x_{n+1}=x_n+h, \qquad y_{n+1}=y_n+hF(x_n,y_n).\]

La pente au point actuel détermine ainsi un petit déplacement. Un pas plus petit produit généralement une meilleure approximation, au prix d’un plus grand nombre de calculs. Le graphique des points permet de comparer cette approximation à une solution exacte lorsqu’elle est connue.

Le programme suivant montre la construction pour \(y'=y\), à partir de \((0;1)\). À chaque tour, il mémorise le point actuel, puis avance de h en suivant la pente y.

Exemple
Premiers pas de la méthode d’Euler
Prêt
Sortie

  

Généraliser. Écrire une fonction euler(F, x0, y0, h, n) qui renvoie les deux listes de coordonnées des \(n+1\) points construits. L’appliquer à \(y'=y\), \(y(0)=1\).

À toi
Méthode d’Euler
À faire
Sortie

  

Une application physique : le refroidissement#

Un objet à 80 °C est placé dans une pièce à 20 °C. Dans un modèle simple, sa vitesse de refroidissement est proportionnelle à l’écart avec la température de la pièce :

\[T'(t)=-0{,}12\bigl(T(t)-20\bigr).\]

La méthode d’Euler calcule ici une température approchée toutes les demi-minutes. Le programme est commenté pour distinguer le modèle physique de la mise à jour numérique.

Exemple
Simuler un refroidissement
Prêt
Sortie

  

La courbe descend rapidement au début, lorsque l’écart avec la pièce est grand, puis plus lentement. Diminuer h permet de vérifier si l’approximation se stabilise.

Le mouvement d’un projectile#

Un projectile est lancé depuis le sol à l’instant \(t=0\). Sa vitesse initiale \(\vec v_0\) a pour norme \(v_0\) et forme un angle \(\alpha\) avec l’horizontale. On néglige les frottements de l’air et on suppose le champ de pesanteur uniforme.

Dans ce modèle, le poids est la seule force exercée sur le projectile. La deuxième loi de Newton donne :

\[\begin{split}\sum \vec F=m\vec a \quad\Longrightarrow\quad m\vec g=m\vec a \quad\Longrightarrow\quad \begin{cases} x''(t)=0,\\ y''(t)=-g. \end{cases}\end{split}\]

Les conditions initiales sont :

\[x(0)=0,\qquad y(0)=0,\qquad x'(0)=v_0\cos(\alpha),\qquad y'(0)=v_0\sin(\alpha).\]

Une première intégration fournit les composantes de la vitesse :

\[x'(t)=v_0\cos(\alpha),\qquad y'(t)=v_0\sin(\alpha)-gt.\]

Le vecteur vitesse n’est donc pas constant : sa composante verticale évolue au cours du temps. Une seconde intégration donne les coordonnées du projectile :

\[\boxed{x(t)=v_0\cos(\alpha)t},\qquad \boxed{y(t)=v_0\sin(\alpha)t-\frac12gt^2}.\]

Lorsque \(\cos(\alpha)\neq0\), on élimine le temps grâce à \(t=x/(v_0\cos(\alpha))\). On obtient alors l’équation de la trajectoire :

\[\boxed{y=x\tan(\alpha)- \frac{g}{2v_0^2\cos^2(\alpha)}x^2}.\]

La trajectoire est donc une parabole. Le projectile revient au sol à l’instant \(t_f=2v_0\sin(\alpha)/g\), lorsque l’angle est strictement compris entre 0° et 90°.

Le programme reprend exactement ces expressions. Pour chaque instant \(t\), il calcule \(x(t)\), \(y(t)\), \(x'(t)\) et \(y'(t)\). L’animation fait avancer le projectile sur sa trajectoire. Pour que la flèche reste lisible quels que soient \(v_0\), l’angle et les dimensions du repère, sa longueur est rapportée à la vitesse initiale : elle représente \(\vec v(t)/v_0\). Une vitesse de norme \(v_0\) occupe ainsi toujours la même proportion de la largeur du graphique.

Exemple
Animer le mouvement d’un projectile
Prêt
Sortie

  

La valeur de \(v_0\) et l’angle ne sont que les conditions initiales choisies pour observer un exemple. Modifier l’une d’elles ne change ni le modèle physique ni la structure du programme. Dans la fenêtre « Graphique », le point orange suit le mouvement. La flèche verte est plus courte quand la norme de la vitesse devient inférieure à \(v_0\) ; cette variation a désormais un sens physique et ne provient plus de l’échelle des axes.

Activité. Écrire une fonction trajectoire(v0, angle, n) qui renvoie les deux listes de coordonnées de \(n+1\) points, du lancer jusqu’au retour au sol. L’angle est donné en degrés. Comparer ensuite plusieurs angles pour une même norme \(v_0\), puis plusieurs valeurs de \(v_0\) pour un même angle.

À toi
Étudier différents lancers
À faire
Sortie

  

Calculer un logarithme#

La méthode de Briggs exploite les racines carrées successives. Après n racines, le nombre \(y=x^{1/2^n}\) est proche de 1 et \(\ln(y)\) est proche de \(y-1\). On obtient :

\[\ln(x)\approx 2^n(y-1).\]

Cette approximation finit toutefois par subir les limites des nombres décimaux de la machine si n devient excessif.

Prolongement. Écrire une fonction log_briggs(x, n) utilisant n racines carrées successives. Comparer son résultat à math.log(x) pour plusieurs valeurs de n et observer pourquoi l’erreur ne diminue pas indéfiniment.

À toi
Méthode de Briggs
À faire
Sortie

  

Choisir une autre partie