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 :

est l'erreur à l'itération et est la constante asymptotique.

Résumé des ordres théoriques

MéthodeOrdre pConstante CType
Bissection (fixe)Linéaire
Regula FalsiDépend de Linéaire
SécanteDépend de Superlinéaire
NewtonQuadratique
Point fixe (typiquement)Linéaire

Outil interactif

Utilisez l'outil ci-dessous pour explorer la convergence des méthodes.

Instructions :

  1. Choisissez une fonction test parmi les options proposées
  2. Sélectionnez les méthodes à comparer
  3. Ajustez le nombre d'itérations et le point initial
  4. Observez les courbes de convergence et le tableau d'analyse

1. Choix de la fonction

Intervalle et point initial

Racine estimée : 1.5213797068

Graphe de f(x) = x³ - x - 2

Racine x₀┆ Intervalle [a, b]

2. Critères d'arrêt

⚠️Limite d'itérations (obligatoire)

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éthodeItérationsErreur finaleOrdre p (estimé)Constante CArrêté par
Bissection345.27e-111.39210795.091|Δx| < 1e-10
Regula Falsi201.19e-111.000.315|Δx| < 1e-10
Sécante70.00e+01.510.126|Δx| < 1e-10
Newton50.00e+02.010.804|Δx| < 1e-10
Tableau détaillé des itérations
nBissectionRegula FalsiSécanteNewton
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_iter
Newton
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_iter
Sé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_iter

Sources 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.
  • WikipediaRate 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)| < 1 au voisinage de la racine
  • Si |g'(r)| = 1 exactement (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

  1. 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.

  2. 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 ?

  3. Étudier la sécante : Vérifiez que l'ordre estimé se rapproche de (le nombre d'or).

  4. 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 !

  5. Point fixe divergent : Toujours avec , essayez . Cette fois, la méthode diverge car .

  6. 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 !

  7. Comparer les formulations de point fixe : Pour , comparez (diverge) et (converge). Cela illustre l'importance cruciale du choix de .

  8. 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.