Yk = [zeros(1,size(Xk,2)); Xk; zeros(1,size(Xk,2))];
scf(1); clf;
plot2d([0;t;1], Yk(:,$), style=-1);
On peut également afficher toutes les courbes correspondant aux points intermédiaires x(k)(avec
une couleur aléatoire)
for k = 1:size(Yk,2)
plot2d([0;t;1], Yk(:,k),style=ceil(15*rand()));
sleep(100)
end
3. Tester ce problème et afficher les solutions correspondantes. Expliquer le rôle de la ligne
Yk = [zeros(1,size(Xk,2)); Xk; zeros(1,size(Xk,2))];
Vérifier que l’on a bien convergence en au plus nitérations et changeant la valeur de n.
On va maintenant comparer les performances de l’algorithme du gradient conjugué avec
celles du gradient à pas optimal appliqué à la fonctionnelle quadratique
f(x) = 1
2hAx, xi−hb, xi.
4. Ecrire une fonction
function [Xk, FXk] = gradient_pas_optimal_h(A,b,x0,eps)
qui applique la descente de gradient à pas optimal à la foncionnelle quadratique définie
ci-dessus et qui limite le nombre d’itérations à kmax = 103(on pourra partir du code
vu en TP1, ou encore du code la fonction du gradient conjugué dont la première itération
correspond à celle du gradient à pas optimal).
5. Tester cette fonction sur le problème de Poisson pour n= 100.
6. Sur un même graphe en échelle semi-logarithmique afficher la suite d’erreurs (e(k))k=
(kx(k)−x?k)kpour le gradient conjugué et pour le gradient à pas optimal. Qu’observe-t-
on ? Quel algorithme est le plus performant ?
Exercice 2.
On a vu que l’algorithme du gradient conjugué permettait de résoudre de manière efficace
un système de la forme
Ax =b
dans le cas où Aest une matrice carrée définie positive.
Le but de l’exercice et de montrer que l’on peut également utiliser cet algorithme pour
résoudre le problème des moindres carrés. On considère donc Aune matrice rectangulaire de
Mm,n(R)et b∈Rm, et on définit f:Rn→Rpar
f(x) = 1
2kAx −bk2.
1. Montrer que la fonction fest quadratique et préciser le matrice A0, le vecteur b0et la
constante c0pour cette fonctionnelle.
2. Sous quelle condition sur Al’algorithme du gradient conjugué converge-t-il pour cette
fonctionnelle f?
2