Try   HackMD

CAMA : ma40 Méthode du gradient conjugué

Cours du 24 / 05

Méthode du gradient conjugue

Si on a calculé le

μ optimal alors la plus forte pente
J(xk+1)
sera orthogonale à la pente qui définie la droite sur laquelle on cherche
μ
. On a donc
J(xk+1)T.J(xk)=0

Le minimum suivant
xk+2
sera le minimum de l'espace généré par
J(xk+1)
et
J(xk)
.

On ne sait pas si

xk+3 sera calculé le long de la direction
J(xk)
.

Une recherche optimale du minimum d'une fonction convexe dans un espace

Rn ne devrait pas prendre plus de
n
itérations si on est capable de calculer le
μ
optimal dans la direction choisie.
On cherche le minimum dans les directions des vecteurs de la base de notre espace
Rn
afin de trouver le minimum global.

Générer une base de
Rn

Si on veut trouver notre minimum global en

n itérations au maximum, il faut que nos directions ne soient pas redondantes et que les
n
premières directions génèrent
Rn
ou en forment une base.
La nouvelle direction
dk
doit être orthogonale à toutes les directions précédentes et permet de trouver une base qui génère un espace de dimension
k+1
.

Le cas
Ax=b

La fonctionnelle à minimiser est :

J(x)=12xTAxb.x

  • Si A est symétrique, son gradient est
    J(x)=Axb

Si on calcule

xk comme avant on a l'orthogonnalité de 2 directions successives.

Que se passe-t-il si

xk+1 minimise
J
dans l'espace
Gk
généré par toutes les directions précédentes ?

J(xk+1)=minvGkJ(xk+v)

avec
Gk=span{d0,d1,,dk}={v=i=0kαidiαi}
.

Toutes les dérivées partielles par rapport aux vecteurs de

Gk sont nulles :
J(xk+1).w=0wGk

Cela se vérifie si

w est un des vecteurs de la base:
J(xk+1).ei=[J/x1J/x2J/xiJ/xn].[0010]=Jxi(xk+1)

La dérivée partielle de

J dans une direction
w
de
Gk
est nulle revient a dire
J(xk+1)
est orthogonal à
w
.

Générer les directions
di

La formule itérative devient :

xk+1=xkµkdk

  • Pour calculer les
    dk
    on utilise la formule des dérivées partielles de
    J
    par rapport à un vecteur
    wGk
    où elles sont nulles.
  • di
    génèrent l'espace
    Gk
    , il suffit que les dérivées partielles de
    J
    par rapport
    di
    soient nulles
    J(xk+1).di=0ik(1)

En déroulant les calculs on obtient :

J(xk).diµkAdk.di=0ik

  • Si
    i<k
    , le premier terme est nul :
    Adk.di=0i<k(2)
    • On a les conditions pour construire la nouvelle direction
      dk
      dk=J(xk)i=0k1AJ(xk).diAdi.didi
  • Si
    i=k
    , on obtient la valeur nécessaire
    µk
    pour garantir que
    J(xk+1).dk=0
    :
    µk=J(xk).dkAdk.dk=(Axkb).dkAdk.dk

Propriété

L'ensemble des gradients de

J aux points
xi
forment une base de l'espace
Gk
:
J(xk+1)J(xi)ik