Méthode de la sécante
Un article de Wikipédia, l'encyclopédie libre.
Cet article est une ébauche concernant les mathématiques.
Vous pouvez partager vos connaissances en l’améliorant. (Comment ?).
|
En analyse numérique, la méthode de la sécante est un algorithme de recherche de racines d'une fonction f.
Sommaire |
[modifier] La méthode
La méthode de la sécante est une méthode dérivée de celle de Newton où l'on remplace par On obtient la relation de récurrence
L'initialisation nécessite 2 points x0 et x1, proches, si possible, de la solution recherchée.
[modifier] Démonstration
Étant donné a et b, on construit le segment reliant (a, f(a)) et (b, f(b)). La droite peut être définie ainsi :
On choisit c de telle sorte que c soit la racine de cette droite (c'est-à-dire, f(c)=0).
Si on extrait c de cette équation, on retrouve la relation de récurrence citée plus haut.
[modifier] Convergence
Si les valeurs initiales de x0 et de x1 sont suffisamment proches de la solution, la méthode aura un ordre de convergence de
- qui est le nombre d'or.
Toutefois, la fonction f doit être 2 fois continuement différentiable et ce doit être une racine simple.
[modifier] Exemple d'implémentation
Ce programme en C résout le problème f(x) = cos(x) - x3 = 0. Les tests d'arrêts sont les suivants :
- | xn + 1 − xn | < e
- n > m
m et e étant donnés.
#include <stdio.h> #include <math.h> double f(double x) { return cos(x) - x*x*x; } double SecantMethod(double xn_1, double xn, double e, int m) { int n; double d; for (n = 1; n <= m; n++) { d = (xn - xn_1) / (f(xn) - f(xn_1)) * f(xn); if (fabs(d) < e) return xn; xn_1 = xn; xn = xn - d; } return xn; } int main(void) { printf("%0.15f\n", SecantMethod(0, 1, 5E-11, 100)); return 0; }
On obtient les résultats suivants :