Universit´e de Poitiers Ann´ee 2009-2010
Master de Math´ematiques et Applications
MATH 2M15 Optimisation
Corrig´e TP 1 : Algorithme de gradient
Solution du dernier exercice : comparaison de la vitesse de l’algorithme de gradient `a
pas fixe, `a pas optimal et `a pas optimal “randomis´e” pour la r´esolution de
Ax =bmin
xRN
1
2hAx, xi − hb, xi.
On a choisi
A=diag([1 : 1 : 100]), xsol =ones(N, 1) et x0 = rand(N, 1).
//Gradient a pas optimal random pour probleme quadratique
clear
clf
N=100;
//A=2*diag(ones(N,1),0)-diag(ones(N-1,1),-1)-diag(ones(N-1,1),1);
A=diag([1:1:N]);
xsol=ones(N,1);
b=A*xsol;
x0=rand(N,1);
itermax=100;
//1.gradient pas fixe
x=x0;
Tfixe=[norm(x-xsol,’inf’)];
mu=0.01;
for k=1:itermax
d=A*x-b;
x=x-mu*d;
err=norm(x-xsol,’inf’);
Tfixe=[Tfixe err];
end
//2.gradient pas optimal
x=x0;
Topt=[norm(x-xsol,’inf’)];
for k=1:itermax
d=A*x-b;
mu=d’*d/(d’*A*d);
x=x-mu*d;
err=norm(x-xsol,’inf’);
Topt=[Topt err];
end
1
//gradient a pas optimal randomis
x=x0;
Trand=[norm(x-xsol,’inf’)];
for k=1:itermax
d=A*x-b;
mu=d’*d/(d’*A*d);
th=2*rand(1,1);
x=x-th*mu*d;
err=norm(x-xsol,’inf’);
Trand=[Trand err];
end
plot2d([0:1:itermax]’,[Tfixe’ Topt’ Trand’],logflag=’nl’,style=[1 2 3]);
xtitle(’’,’k’,’||xk-x||’)
legends([’pas fixe’;’pas optimal’;’randomis’],[1 2 3],opt=’ll’)
0 10 20 30 40 50 60 70 80 90 100
−4
10
−3
10
−2
10
−1
10
0
10
k
||xk−x||
pas fixe
pas optimal
randomisé
Figure 1: Vitesse de convergence des algorithmes de gradient
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !