Adloun

Résolution d'équations non linéaires

Cours · Python (école d'ingénieur), chapitre 11 · école d'ingénieur, informatique · le début du chapitre, la suite sur Adloun

11.1 Introduction et Ordre de Convergence

Dans ce chapitre, nous nous intéressons à l'approximation des zéros d'une fonction réelle d'une variable réelle. Étant donné un intervalle et une application continue , on cherche à calculer une valeur approchée de telle que .

Toutes les méthodes de résolution présentées sont des méthodes itératives. Elles consistent à construire une suite de valeurs qui converge vers la racine . La vitesse de convergence de la suite détermine la qualité et la performance pratique de l'algorithme.

Définition 11.1Ordre de convergence

Soit une suite convergeant vers . On note l'erreur absolue à l'étape . On dit que la convergence est d'ordre s'il existe une constante (appelée facteur asymptotique) telle que :

iRemarqueCas particuliers
  • et : convergence linéaire.
  • et : convergence superlinéaire (plus rapide que linéaire).
  • : convergence quadratique.

Lien avec la précision décimale

Si désigne le nombre de décimales exactes à l'étape , alors pour assez grand :

Critères d'Arrêt

En pratique, on doit arrêter le processus itératif lorsque l'approximation est jugée satisfaisante. On utilise principalement trois critères :

11.2 Méthode de la Fausse Position (Regula Falsi)

La méthode de la fausse position est une alternative à la dichotomie. Plutôt que de diviser l'intervalle systématiquement par son milieu, on calcule l'intersection de la droite sécante reliant et avec l'axe des abscisses.

L'abscisse de cette intersection s'écrit :

L'algorithme de recherche itère alors les bornes en posant , et :

Contrairement à la dichotomie, la largeur de l'intervalle ne tend pas nécessairement vers 0. C'est le cas par exemple si la fonction est strictement convexe : l'une des bornes reste fixe (stationnaire) tandis que l'autre converge vers la racine .

◆Théorème 11.2Convergence de la fausse position

Si est de classe , strictement convexe et , alors la suite construite par la méthode de la fausse position converge linéairement (ordre 1) vers l'unique racine .

Exemple 11.3Algorithme de la fausse position

def regula_falsi(f, a, b, epsilon=1e-12, maxiter=100):
    """
    Methode de la fausse position.
    """
    if f(a) * f(b) > 0:
        raise ValueError("f(a) et f(b) doivent être de signes opposés")

    u, v = a, b
    for n in range(maxiter):
        # Calcul du point d'intersection
        x = (u * f(v) - v * f(u)) / (f(v) - f(u))

        if abs(f(x)) < epsilon or abs(v - u) < epsilon:
            return x

        if f(u) * f(x) <= 0:
            v = x
        else:
            u = x

    raise RuntimeError(f"Non convergence après {maxiter} itérations")

11.3 Méthode de Newton-Raphson

La méthode de Newton-Raphson s'affranchit de la contrainte d'encadrement en procédant par approximations successives basées sur la tangente locale à la courbe.

11.3.1 Principe de l'Algorithme

À l'étape , on modélise la fonction par son approximation affine tangente :

L'intersection avec l'axe donne la valeur suivante :

La suite de Newton-Raphson est définie par la relation de récurrence :

11.3.2 Théorème de Convergence Quadratique

◆Théorème 11.4Convergence locale de Newton

Soit une fonction de classe sur un voisinage de telle que et . Alors il existe un voisinage de tel que pour tout choix initial , la suite converge de manière quadratique (ordre 2) vers .

Démonstration

Soit la fonction itératrice. Sa dérivée s'écrit :

Comme , on a .

Par le développement de Taylor de en :

d'où :

En réarrangeant :

Soit .

En prenant suffisamment proche de , est minoré par une constante et . Ainsi :

Posons . Si est choisi tel que , alors par récurrence :

La convergence est quadratique ().

11.3.3 Application : Méthode de Héron (Racine Carrée)

Calculer la racine carrée d'un nombre réel revient à chercher la racine positive de . La suite de Newton associée s'écrit :

Exemple 11.5Méthode de Héron

def heron(alpha, x0=None, tol=1e-12, maxiter=100):
    """
    Calcule sqrt(alpha) par la methode de Heron (Newton pour x**2 - alpha = 0).
    """
    if x0 is None:
        x0 = alpha if alpha >= 1 else 1.0

    x = x0
    for n in range(maxiter):
        x_new = 0.5 * (x + alpha / x)
        if abs(x_new - x) < tol:
            return x_new
        x = x_new

    raise RuntimeError(f"Non convergence après {maxiter} itérations")

# Exemple
print(heron(2))   # 1.414213562373095
print(heron(10))  # 3.1622776601683795

11.3.4 Dangers et Limites de Newton

Exemple 11.6Divergence de la méthode de Newton

Pour avec , la suite oscille entre 0 et 1 indéfiniment :

11.4 Dérivée Numérique et Choix du Pas

Pour appliquer Newton-Raphson sans connaître analytiquement la dérivée , on l'approxime par un taux de variation avec un pas petit.

11.4.1 Différences Finies

Définition 11.7Approximations de la dérivée
  • Différence en avant : (erreur )
  • Différence en arrière : (erreur )
  • Différence centrée : (erreur )

11.4.2 Le Choix Optimal du Pas

Intuitivement, on pourrait penser qu'il faut choisir le pas le plus petit possible. En informatique binaire, c'est faux en raison du compromis entre :

Pour la différence en avant, l'erreur totale est . L'étude des variations montre que cette erreur est minimale pour :

Pour la différence centrée, l'erreur totale est , avec un optimum :

Exemple 11.8Calcul d'une dérivée centrée

def derivee_centree(f, x, h=1e-5):
    """Approximation de la dérivée par différence centrée."""
    return (f(x + h) - f(x - h)) / (2 * h)

11.5 Méthode de la Sécante

La méthode de la sécante évite d'avoir à évaluer la dérivée en la remplaçant par la pente de la corde reliant les deux points précédents et .

La suite est définie par la formule de récurrence :

Cette méthode requiert deux points initiaux et .

◆Théorème 11.9Convergence de la méthode de la sécante

Si est suffisamment régulière et sont choisis dans un voisinage de la racine avec , alors la méthode de la sécante converge localement avec un ordre :

C'est le nombre d'or, qui vérifie .

Démonstration (Esquisse)

L'erreur vérifie asymptotiquement . La valeur est la racine positive de .

La suite du cours est sur Adloun

Le chapitre en entier, formules et figures comprises, avec le tuteur, les fiches, les QCM et les exercices.

Lire la suite du cours

En accès libre, sans inscription.

Exercices corrigés de ce chapitre

Lire la suite du cours →