%variables utilisateur
CI= input('conditions initiales : ');
P=10^-5; %precision du résultat voulue
lambda=input('facteur de relaxation : ') ; %facteur de relaxation
x1i=[CI];
x2i=[CI];
x3i=[CI];
%amorçage de l'algorithme
i=0; %initialisation du compteur
while true
i(end+1)=i(end)+1;
%bloc itératif
x1i(end+1)=1/25*( 12-3*x2i(end)*x2i(end)+2*x2i(end)*x3i(end) );
x2i(end+1)=1/9*( 4+2*x1i(end-1)*x1i(end-1)-x3i(end) );
x3i(end+1)=1/15*( -10+ x1i(end-1) + 3*x1i(end-1)*x2i(end-1) );
%conditions d'arrêt
if i(end)>=1000
sprintf(' t as failli faire une boucle infinie!!!!)
xi=[x1i ; x2i ; x3i]'
sprintf('on doit trouver : Xs=[0.4177 ; 0.54911 ; -
0.5929]')
break
end
if abs( x1i(end)-x1i(end-1) )<P && abs( x2i(end)-x2i(end-1) )<P
&& abs( x2i(end)-x2i(end-1) )<P
sprintf('l algorithme s est bien déroulé. \n nombre d
iteration : %d ',i(end))
xi=[x1i ; x2i ; x3i]'
sprintf('verification : ')
[-2*(x1i(end))^2+9*x2i(end)+x3i(end) ;
x1i(end)+3*x1i(end)*x2i(end)-15*x3i(end) ;
25*x1i(end)+3*(x2i(end))^2-2*x2i(end)*x3i(end) ]
break;
end
x1i(end)=x1i(end-1)+lambda*( x1i(end)-x1i(end-1) );
x2i(end)=x2i(end-1)+lambda*( x2i(end)-x2i(end-1) );
x3i(end)=x3i(end-1)+lambda*( x3i(end)-x3i(end-1) );
end