Méthode d'interpolation linéaire (Regula Falsi)
Objectifs d'apprentissage
À la fin de cette leçon, vous serez en mesure de :
- Comprendre la différence géométrique entre la bissection et l'interpolation linéaire
- Dériver la formule de la méthode à partir de triangles semblables
- Implémenter l'algorithme et savoir quand l'utiliser
- Comparer les performances avec la méthode de bissection
Principe de la méthode
La méthode d'interpolation linéaire, aussi appelée Regula Falsi (règle de la fausse position), est une amélioration de la bissection. Comme cette dernière, elle repose sur l'alternance de signe de la fonction aux bornes de l'intervalle.
Idée clé
Au lieu de prendre le milieu de l'intervalle (comme en bissection), on utilise l'intersection avec l'axe des x de la droite passant par les deux points et .
Intuition géométrique
Si la fonction était vraiment une droite entre et , alors l'intersection de cette droite avec l'axe des serait exactement la racine. Pour une fonction non linéaire, cette intersection donne une meilleure approximation que le simple milieu.
Dérivation de la formule
Construction géométrique
Considérons la droite passant par les points et . Le point est l'abscisse où cette droite coupe l'axe des .
Méthode par triangles semblables
En observant le graphique, on identifie deux triangles semblables formés par :
- La droite reliant les deux points
- Les verticales aux abscisses , et
- L'axe des
Par la propriété des triangles semblables (droites parallèles coupant les côtés d'un triangle), on obtient :
Résolution pour X₃
En isolant :
Formule de l'interpolation linéaire
Méthode alternative : équation de la droite
On peut aussi retrouver cette formule en écrivant l'équation de la droite passant par les deux points et en cherchant où elle coupe l'axe .
L'équation de la droite est :
En posant et en résolvant pour , on retrouve la même formule.
Visualisation interactive
Le graphique suivant illustre la différence géométrique entre les deux méthodes. Observez comment l'interpolation linéaire utilise la pente de la sécante pour estimer la position de la racine.
Comparaison : Bissection vs Interpolation linéaire
F(X) = X³ + X² - 3X - 3 — Racine exacte : √3 ≈ 1.7320508
Dérivation géométrique (triangles semblables)
La droite sécante passe par les points (X₁, F(X₁)) et (X₂, F(X₂)). On cherche X₃, l'abscisse où cette droite coupe l'axe des x.
Par triangles semblables :
(X₂ - X₃) / (X₂ - X₁) = F(X₂) / (F(X₂) - F(X₁))
⟹ X₃ = X₂ - F(X₂) · (X₂ - X₁) / (F(X₂) - F(X₁))
Valeur actuelle : X₃ = 2.000 - (3.000) × (1.000) / (7.000) = 1.571429
Interprétation
- • La droite orange pointillée est la sécante passant par (X₁, F(X₁)) et (X₂, F(X₂))
- • Le point orange est X₃ calculé par interpolation linéaire
- • Le point violet est X₃ calculé par bissection (simple milieu)
- • Le point rouge est la racine exacte (√3)
- • L'interpolation linéaire utilise la pente de la fonction pour mieux estimer la racine
Algorithme
Pseudo-code
Algorithme : Méthode d'interpolation linéaire (Regula Falsi)
Entrées : F (fonction), X1, X2 (bornes), δ (tolérance sur x), ε (tolérance sur F)
Sortie : X (approximation de la racine)
Précondition : F(X1) · F(X2) ≤ 0
Calculer X3 = X2 - F(X2) · (X2 - X1) / (F(X2) - F(X1))
Tant que (|X1 - X2| ≥ δ) ET (|F(X3)| ≥ ε) faire
Calculer X3 = X2 - F(X2) · (X2 - X1) / (F(X2) - F(X1))
Si F(X1) · F(X3) ≤ 0 alors
X2 ← X3 // La racine est dans [X1, X3]
Sinon
X1 ← X3 // La racine est dans [X3, X2]
Fin Si
Fin Tant que
Retourner X = X3Implémentation en Python
def regula_falsi(f, x1, x2, tol_x=1e-6, tol_f=1e-10, max_iter=100):
"""
Méthode d'interpolation linéaire (Regula Falsi).
Paramètres:
f : fonction dont on cherche la racine
x1, x2 : bornes de l'intervalle initial
tol_x : tolérance sur x (critère d'arrêt)
tol_f : tolérance sur f(x) (critère d'arrêt)
max_iter : nombre maximum d'itérations
Retourne:
x3 : approximation de la racine
iterations : liste des itérés successifs
"""
# Vérification de la condition initiale
if f(x1) * f(x2) > 0:
raise ValueError("f(x1) et f(x2) doivent être de signes opposés")
iterations = []
for n in range(max_iter):
# Formule de l'interpolation linéaire
fx1, fx2 = f(x1), f(x2)
x3 = x2 - fx2 * (x2 - x1) / (fx2 - fx1)
fx3 = f(x3)
iterations.append({
'n': n + 1,
'x3': x3,
'f(x3)': fx3,
'erreur': abs(x2 - x1)
})
# Critères d'arrêt
if abs(x2 - x1) < tol_x or abs(fx3) < tol_f:
return x3, iterations
# Choix du sous-intervalle
if f(x1) * fx3 <= 0:
x2 = x3
else:
x1 = x3
return x3, iterationsComparaison avec la bissection
Exemple comparatif
Appliquons les deux méthodes à la fonction avec l'intervalle .
Méthode de bissection
| Itération | X₁ | X₂ | X₃ | F(X₃) | |X₂ - X₁| |
|---|---|---|---|---|---|
| 1 | 1.000000 | 2.000000 | 1.500000 | -1.875000 | 1.0 |
| 2 | 1.500000 | 2.000000 | 1.750000 | 0.171875 | 0.5 |
| 3 | 1.500000 | 1.750000 | 1.625000 | -0.943359 | 0.25 |
| 4 | 1.625000 | 1.750000 | 1.687500 | -0.409668 | 0.125 |
| 5 | 1.687500 | 1.750000 | 1.718750 | -0.124786 | 0.0625 |
| 6 | 1.718750 | 1.750000 | 1.734375 | 0.021774 | 0.03125 |
| 7 | 1.718750 | 1.734375 | 1.726563 | -0.052002 | 0.015625 |
| 8 | 1.726563 | 1.734375 | 1.730469 | -0.015231 | 0.0078125 |
Méthode Regula Falsi
| Itération | X₁ | X₂ | X₃ | F(X₃) | |Xₙ₊₁ - Xₙ| |
|---|---|---|---|---|---|
| 1 | 1.000000 | 2.000000 | 1.571429 | -1.364431 | — |
| 2 | 1.571429 | 2.000000 | 1.705411 | -0.247370 | 0.133982 |
| 3 | 1.705411 | 2.000000 | 1.727883 | -0.039318 | 0.022472 |
| 4 | 1.727883 | 2.000000 | 1.731405 | -0.006107 | 0.003522 |
| 5 | 1.731405 | 2.000000 | 1.731951 | -0.000944 | 0.000546 |
| 6 | 1.731951 | 2.000000 | 1.732035 | -0.000146 | 0.000084 |
| 7 | 1.732035 | 2.000000 | 1.732048 | -0.000023 | 0.000013 |
| 8 | 1.732048 | 2.000000 | 1.732050 | -0.000004 | 0.000002 |
Valeur exacte :
Analyse des résultats
Observation importante
Après 8 itérations :
- Bissection : , (erreur sur la racine ≈ 0.0016)
- Regula Falsi : , (erreur sur la racine ≈ 0.000001)
L'interpolation linéaire converge plus vite vers la valeur exacte, même si l'intervalle ne se réduit pas aussi régulièrement.
Notez le phénomène de la borne fixe : dans Regula Falsi, reste constant pendant toutes les itérations, tandis que seul se rapproche de la racine.
Avantages et inconvénients
Avantages
| Avantage | Description |
|---|---|
| Hypothèse faible | Ne nécessite que la continuité de |
| Facilité d'implémentation | Algorithme simple, similaire à la bissection |
| Convergence souvent meilleure | Exploite l'information sur la pente de la fonction |
| Hypothèse de linéarité locale | Efficace quand est proche d'une droite localement |
Inconvénients
| Inconvénient | Description |
|---|---|
| Intervalle de départ requis | Nécessite et avec |
| Convergence parfois lente | Peut être plus lente que la bissection dans certains cas |
| Borne fixe | Souvent, une des bornes reste fixe pendant plusieurs itérations |
| Pas de garantie d'erreur | Contrairement à la bissection, on ne peut pas prédire exactement le nombre d'itérations |
Quand utiliser cette méthode ?
Cas favorables
- La fonction est approximativement linéaire près de la racine
- On dispose d'un bon intervalle de départ
- On veut une méthode simple avec une convergence raisonnable
Cas défavorables
- La fonction est très courbée (convexe ou concave marquée)
- On a besoin d'une garantie sur le nombre d'itérations
- Une des bornes risque de rester fixe longtemps
Résumé
Dans cette leçon, nous avons étudié la méthode d'interpolation linéaire (Regula Falsi) :
-
Principe : utiliser l'intersection de la sécante avec l'axe des au lieu du milieu de l'intervalle
-
Formule :
-
Dérivation : par triangles semblables ou équation de la droite
-
Condition suffisante : même que la bissection — continue avec
-
Comparaison : converge généralement plus vite que la bissection vers la valeur exacte, mais l'intervalle ne se réduit pas de façon prévisible
-
Limitation : phénomène de la borne fixe dans certains cas