Annexe 1 — Étude interactive de la convergence
Objectifs
Cette annexe propose un outil interactif pour explorer et comparer la convergence des différentes méthodes de résolution d'équations non linéaires étudiées dans le chapitre 2.
Vous pourrez :
- Tester les méthodes sur différentes fonctions
- Observer l'évolution de l'erreur en échelle logarithmique
- Estimer numériquement l'ordre de convergence
- Comparer les résultats avec les valeurs théoriques
Rappel théorique
Ordre de convergence
Une méthode a un ordre de convergence si :
où est l'erreur à l'itération et est la constante asymptotique.
Résumé des ordres théoriques
| Méthode | Ordre p | Constante C | Type |
|---|---|---|---|
| Bissection | (fixe) | Linéaire | |
| Regula Falsi | Dépend de | Linéaire | |
| Sécante | Dépend de | Superlinéaire | |
| Newton | Quadratique | ||
| Point fixe | (typiquement) | Linéaire |
Outil interactif
Utilisez l'outil ci-dessous pour explorer la convergence des méthodes.
Instructions :
- Choisissez une fonction test parmi les options proposées
- Sélectionnez les méthodes à comparer
- Ajustez le nombre d'itérations et le point initial
- Observez les courbes de convergence et le tableau d'analyse
1. Choix de la fonction
Intervalle et point initial
Graphe de f(x) = x³ - x - 2
2. Critères d'arrêt
Garde-fou pour éviter les boucles infinies. Toujours actif, max 500.
Critères optionnels — si aucun n'est activé, seule la limite d'itérations sera utilisée.
3. Méthodes à comparer
4. Évolution de l'erreur (échelle log₁₀)
5. Analyse de la convergence
| Méthode | Itérations | Erreur finale | Ordre p (estimé) | Constante C | Arrêté par |
|---|---|---|---|---|---|
| Bissection | 34 | 5.27e-11 | 1.39 | 210795.091 | |Δx| < 1e-10 |
| Regula Falsi | 20 | 1.19e-11 | 1.00 | 0.315 | |Δx| < 1e-10 |
| Sécante | 7 | 0.00e+0 | 1.51 | 0.126 | |Δx| < 1e-10 |
| Newton | 5 | 0.00e+0 | 2.01 | 0.804 | |Δx| < 1e-10 |
Tableau détaillé des itérations
| n | Bissection | Regula Falsi | Sécante | Newton |
|---|---|---|---|---|
| 0 | x = 1.5000000000 |Δx| = 5.00e-1 |f(x)| = 1.25e-1 | x = 1.3333333333 |Δx| = 6.67e-1 |f(x)| = 9.63e-1 | x = 1.5000000000 |Δx| = 5.00e-1 |f(x)| = 1.25e-1 | x = 1.5000000000 |Δx| = 1.00e+0 |f(x)| = 1.25e-1 |
| 1 | x = 1.7500000000 |Δx| = 2.50e-1 |f(x)| = 1.61e+0 | x = 1.4626865672 |Δx| = 1.29e-1 |f(x)| = 3.33e-1 | x = 1.5333333333 |Δx| = 3.33e-2 |f(x)| = 7.17e-2 | x = 1.5217391304 |Δx| = 2.17e-2 |f(x)| = 2.14e-3 |
| 2 | x = 1.6250000000 |Δx| = 1.25e-1 |f(x)| = 6.66e-1 | x = 1.5040190039 |Δx| = 4.13e-2 |f(x)| = 1.02e-1 | x = 1.5211824515 |Δx| = 1.22e-2 |f(x)| = 1.17e-3 | x = 1.5213798060 |Δx| = 3.59e-4 |f(x)| = 5.89e-7 |
| 3 | x = 1.5625000000 |Δx| = 6.25e-2 |f(x)| = 2.52e-1 | x = 1.5163305648 |Δx| = 1.23e-2 |f(x)| = 2.99e-2 | x = 1.5213779078 |Δx| = 1.95e-4 |f(x)| = 1.07e-5 | x = 1.5213797068 |Δx| = 9.92e-8 |f(x)| = 4.53e-14 |
| 4 | x = 1.5312500000 |Δx| = 3.13e-2 |f(x)| = 5.91e-2 | x = 1.5199185500 |Δx| = 3.59e-3 |f(x)| = 8.68e-3 | x = 1.5213797071 |Δx| = 1.80e-6 |f(x)| = 1.62e-9 | x = 1.5213797068 |Δx| = 7.55e-15 |f(x)| = 0.00e+0 |
| 5 | x = 1.5156250000 |Δx| = 1.56e-2 |f(x)| = 3.41e-2 | x = 1.5209574814 |Δx| = 1.04e-3 |f(x)| = 2.51e-3 | x = 1.5213797068 |Δx| = 2.73e-10 |f(x)| = 2.44e-15 | - |
| 6 | x = 1.5234375000 |Δx| = 7.81e-3 |f(x)| = 1.23e-2 | x = 1.5212577491 |Δx| = 3.00e-4 |f(x)| = 7.25e-4 | x = 1.5213797068 |Δx| = 4.44e-16 |f(x)| = 0.00e+0 | - |
| 7 | x = 1.5195312500 |Δx| = 3.91e-3 |f(x)| = 1.10e-2 | x = 1.5213444842 |Δx| = 8.67e-5 |f(x)| = 2.09e-4 | - | - |
| 8 | x = 1.5214843750 |Δx| = 1.95e-3 |f(x)| = 6.22e-4 | x = 1.5213695345 |Δx| = 2.51e-5 |f(x)| = 6.05e-5 | - | - |
| 9 | x = 1.5205078125 |Δx| = 9.77e-4 |f(x)| = 5.18e-3 | x = 1.5213767691 |Δx| = 7.23e-6 |f(x)| = 1.75e-5 | - | - |
| 10 | x = 1.5209960938 |Δx| = 4.88e-4 |f(x)| = 2.28e-3 | x = 1.5213788584 |Δx| = 2.09e-6 |f(x)| = 5.04e-6 | - | - |
| 11 | x = 1.5212402344 |Δx| = 2.44e-4 |f(x)| = 8.29e-4 | x = 1.5213794618 |Δx| = 6.03e-7 |f(x)| = 1.46e-6 | - | - |
| 12 | x = 1.5213623047 |Δx| = 1.22e-4 |f(x)| = 1.03e-4 | x = 1.5213796360 |Δx| = 1.74e-7 |f(x)| = 4.21e-7 | - | - |
| 13 | x = 1.5214233398 |Δx| = 6.10e-5 |f(x)| = 2.59e-4 | x = 1.5213796864 |Δx| = 5.03e-8 |f(x)| = 1.21e-7 | - | - |
| 14 | x = 1.5213928223 |Δx| = 3.05e-5 |f(x)| = 7.80e-5 | x = 1.5213797009 |Δx| = 1.45e-8 |f(x)| = 3.51e-8 | - | - |
| 15 | x = 1.5213775635 |Δx| = 1.53e-5 |f(x)| = 1.27e-5 | x = 1.5213797051 |Δx| = 4.20e-9 |f(x)| = 1.01e-8 | - | - |
| 16 | x = 1.5213851929 |Δx| = 7.63e-6 |f(x)| = 3.26e-5 | x = 1.5213797063 |Δx| = 1.21e-9 |f(x)| = 2.93e-9 | - | - |
| 17 | x = 1.5213813782 |Δx| = 3.81e-6 |f(x)| = 9.93e-6 | x = 1.5213797067 |Δx| = 3.50e-10 |f(x)| = 8.45e-10 | - | - |
| 18 | x = 1.5213794708 |Δx| = 1.91e-6 |f(x)| = 1.40e-6 | x = 1.5213797068 |Δx| = 1.01e-10 |f(x)| = 2.44e-10 | - | - |
| 19 | x = 1.5213804245 |Δx| = 9.54e-7 |f(x)| = 4.27e-6 | x = 1.5213797068 |Δx| = 2.92e-11 |f(x)| = 7.05e-11 | - | - |
| 20 | x = 1.5213799477 |Δx| = 4.77e-7 |f(x)| = 1.43e-6 | - | - | - |
| 21 | x = 1.5213797092 |Δx| = 2.38e-7 |f(x)| = 1.45e-8 | - | - | - |
| 22 | x = 1.5213795900 |Δx| = 1.19e-7 |f(x)| = 6.94e-7 | - | - | - |
| 23 | x = 1.5213796496 |Δx| = 5.96e-8 |f(x)| = 3.40e-7 | - | - | - |
| 24 | x = 1.5213796794 |Δx| = 2.98e-8 |f(x)| = 1.63e-7 | - | - | - |
| 25 | x = 1.5213796943 |Δx| = 1.49e-8 |f(x)| = 7.41e-8 | - | - | - |
| 26 | x = 1.5213797018 |Δx| = 7.45e-9 |f(x)| = 2.98e-8 | - | - | - |
| 27 | x = 1.5213797055 |Δx| = 3.73e-9 |f(x)| = 7.64e-9 | - | - | - |
| 28 | x = 1.5213797074 |Δx| = 1.86e-9 |f(x)| = 3.43e-9 | - | - | - |
| 29 | x = 1.5213797064 |Δx| = 9.31e-10 |f(x)| = 2.11e-9 | - | - | - |
| 30 | x = 1.5213797069 |Δx| = 4.66e-10 |f(x)| = 6.59e-10 | - | - | - |
| 31 | x = 1.5213797067 |Δx| = 2.33e-10 |f(x)| = 7.25e-10 | - | - | - |
| 32 | x = 1.5213797068 |Δx| = 1.16e-10 |f(x)| = 3.28e-11 | - | - | - |
| 33 | x = 1.5213797069 |Δx| = 5.82e-11 |f(x)| = 3.13e-10 | - | - | - |
Code Python des méthodes
Bissection
def bissection(f, a, b, tol_x=1e-10, tol_f=1e-10, max_iter=100):
"""Méthode de bissection avec critères d'arrêt multiples."""
if f(a) * f(b) > 0:
raise ValueError("f(a) et f(b) doivent être de signes opposés")
for n in range(max_iter):
c = (a + b) / 2
fc = f(c)
# Critères d'arrêt
if abs(b - a) < tol_x or abs(fc) < tol_f:
return c, n + 1
if f(a) * fc < 0:
b = c
else:
a = c
return c, max_iterNewton
def newton(f, df, x0, tol_x=1e-10, tol_f=1e-10, max_iter=100):
"""Méthode de Newton avec critères d'arrêt multiples."""
x = x0
for n in range(max_iter):
fx = f(x)
dfx = df(x)
if abs(dfx) < 1e-14:
raise ValueError("Dérivée nulle")
x_new = x - fx / dfx
# Critères d'arrêt
if abs(x_new - x) < tol_x or abs(fx) < tol_f:
return x_new, n + 1
x = x_new
return x, max_iterSécante
def secante(f, x0, x1, tol_x=1e-10, tol_f=1e-10, max_iter=100):
"""Méthode de la sécante avec critères d'arrêt multiples."""
f0, f1 = f(x0), f(x1)
for n in range(max_iter):
if abs(f1 - f0) < 1e-14:
break
x2 = x1 - f1 * (x1 - x0) / (f1 - f0)
# Critères d'arrêt
if abs(x2 - x1) < tol_x or abs(f1) < tol_f:
return x2, n + 1
x0, f0 = x1, f1
x1, f1 = x2, f(x2)
return x1, max_iterSources et références
- Burden, R. L., & Faires, J. D. (2015). Numerical Analysis (10th ed.). Cengage Learning. — Chapitres 2-3 : Méthodes itératives pour les équations non linéaires.
- Quarteroni, A., Sacco, R., & Saleri, F. (2007). Numerical Mathematics (2nd ed.). Springer. — Analyse de convergence et ordres de convergence.
- Atkinson, K. E. (1989). An Introduction to Numerical Analysis (2nd ed.). Wiley. — Théorie de l'ordre de convergence et constantes asymptotiques.
- Wikipedia — Rate of convergence — Définitions formelles et exemples.
Notes techniques et problèmes connus
Bissection et Regula Falsi
- Nécessitent que
f(a) × f(b) < 0(signes opposés) - Si l'intervalle ne contient pas de changement de signe, la méthode peut ne pas fonctionner correctement
- Regula Falsi peut « stagner » si une borne reste fixe pendant de nombreuses itérations
Newton
- La dérivée est calculée numériquement (différences finies) pour les fonctions personnalisées → peut être imprécise
- Peut diverger si
f'(x₀) ≈ 0(division par ~0) - Pour les racines multiples, la convergence devient linéaire au lieu de quadratique
- Un mauvais point de départ peut mener à une racine différente ou à la divergence
Point Fixe
- La convergence dépend ENTIÈREMENT du choix de g(x)
- Condition nécessaire :
|g'(r)| < 1au voisinage de la racine - Si
|g'(r)| = 1exactement (ex: g(x) = 2/x pour √2), la méthode oscille sans converger - Si
|g'(r)| > 1, la méthode diverge
Sécante
- Peut diverger si les deux points initiaux donnent
f(x₀) ≈ f(x₁) - Pas de garantie de rester dans un intervalle (méthode « ouverte »)
Estimation de l'ordre de convergence
- L'estimation numérique de p est approximative et peut varier selon les itérations
- Elle n'est fiable que dans le régime asymptotique (proche de la convergence)
- Les erreurs d'arrondi peuvent fausser l'estimation pour les très petites erreurs (< 10⁻¹⁴)
Fonctions personnalisées
- La racine est estimée par bissection rapide — peut être imprécise si la fonction est complexe
- Les discontinuités ou singularités peuvent causer des comportements inattendus
- Assurez-vous que g(x) est bien une reformulation de f(x) = 0, c'est-à-dire que g(r) = r ⟺ f(r) = 0
Interprétation des résultats
Lecture du graphique
- Axe horizontal : numéro de l'itération
- Axe vertical : logarithme en base 10 de l'erreur
- Une droite sur ce graphique indique une convergence linéaire
- Une courbe qui s'accélère (pente qui augmente) indique une convergence superlinéaire ou quadratique
Estimation de l'ordre
L'ordre de convergence est estimé numériquement par :
Cette estimation devient plus précise lorsque l'on est proche de la convergence.
Observation clé
Comparez les ordres estimés avec les valeurs théoriques. Les écarts peuvent s'expliquer par :
- Le régime transitoire (loin de la racine)
- Les erreurs d'arrondi (très proche de la racine)
- Les particularités de la fonction choisie
Exercices suggérés
-
Comparer Bissection et Regula Falsi : Pour quelle fonction la différence est-elle la plus marquée ? Essayez avec et observez si Regula Falsi « stagne » sur une borne.
-
Observer la convergence de Newton : Notez le nombre d'itérations nécessaires pour atteindre la précision machine. Que se passe-t-il si vous choisissez un point initial éloigné de la racine ?
-
Étudier la sécante : Vérifiez que l'ordre estimé se rapproche de (le nombre d'or).
-
Point fixe oscillant : Sélectionnez la fonction , activez la méthode Point Fixe, puis choisissez . Observez le comportement : la méthode oscille entre deux valeurs sans converger. Pourquoi ? Calculez en : on obtient exactement. La condition n'est pas satisfaite !
-
Point fixe divergent : Toujours avec , essayez . Cette fois, la méthode diverge car .
-
Point fixe convergent (quadratique) : Avec la même fonction, choisissez (méthode de Héron). Observez la convergence très rapide : c'est parce que , ce qui donne une convergence quadratique au lieu de linéaire !
-
Comparer les formulations de point fixe : Pour , comparez (diverge) et (converge). Cela illustre l'importance cruciale du choix de .
-
Mystère du point fixe arccos : Pour , comparez et . Observez attentivement le graphique des erreurs pour : la méthode s'arrête après une seule itération. Pourquoi ? Ce n'est pas un simple problème de convergence lente ou de . Indice : calculez avec , puis demandez-vous si est calculable. Quel est le domaine de définition de ?
Lien avec la théorie
Les résultats observés dans cette visualisation confirment les analyses théoriques sur la convergence :
- Newton est la méthode la plus rapide pour les racines simples (convergence quadratique)
- Sécante offre un bon compromis : pas besoin de calculer , mais convergence superlinéaire
- Bissection est lente mais garantie : elle converge toujours si les conditions initiales sont satisfaites
- Regula Falsi peut être plus rapide que la bissection, mais parfois beaucoup plus lente
Attention
L'ordre de convergence ne dit pas tout ! Une méthode à convergence lente mais garantie peut être préférable à une méthode rapide mais qui diverge pour certains points initiaux.