Méthode de Quasi-Newton

Un article de Wikipédia, l'encyclopédie libre.

Une méthode de Quasi-Newton est une méthode numérique utilisée pour résoudre des systèmes d'équations non-linéaires. Typiquement, le problème que résout une méthode de Quasi-Newton est f(x) = 0 avec f:\mathbb{R}^n \rightarrow \mathbb{R}^n dont on connaît l'expression analytique

Pour de tels problèmes il est toujours possible d'utiliser la méthode de Newton-Raphson, dont les itérations sont xk + 1 = xkDf(xk) − 1.f(xk), mais celle-ci pose quelques problèmes pratiques:

  • Si le système est assez grand, l'obtention des termes de sa jacobienne est très longue
  • De même, l'inversion d'une matrice est une opération coûteuse en calculs

L'idée des méthodes Quasi-Newton est de remplacer Df(xk) − 1 par une matrice Bk qui doit vérifier certaines propriétés:

  1. Bk est définie positive
  2. elle est symétrique
  3. xk + 1xk = Bk(f(xk + 1) − f(xk)) (relation de Quasi-Newton)

Les itérations des méthodes de Quasi-Newton sont de la forme suivante:

xk + 1 = xk − ρk.Bk.f(xk)

Dans cette formule, ρk est un coefficient choisi pour optimiser la convergence, et Bk est mise à jour à chaque itération selon une formule particulière. Selon les méthodes de Quasi-Newton, la formule de mise à jour varie

[modifier] Méthode de Davidon-Fletcher-Powell

On initialise B0 = Id et x0 assez proche de la solution qu'on cherche. Les itérations sont les suivantes:

  • On calcule d'abord la direction de déplacement: dk = − Bk.f(xk)
  • le coefficient ρk s'en déduit, il est nécessairement strictement positif et choisi pour minimiser f(xk + ρkdk)
  • on trouve le k + 1e terme de la suite xk + 1 = xk + ρk.dk
  • Bk + 1 est calculé par la formule de Davidon-Fletcher-Powell

B_{k+1} = B_k + \frac{s_k .^t s_k}{^t s_k. y_k} - \frac{B_k.y_k.^t y_k.B_k}{^t y_k.B_k.y_k}

[modifier] Sources