1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| f=@(x) x+1;
k=1; a=-2;b=2;
ak=a;bk=b; kmax=100;
x(k)=(ak+bk)/2;
%res(k)=abs(f(x(k)));
res(k)=bk-ak;
% Itérations
while res(k) > eps && k<=kmax
test=f(ak)*f(x(k));
if test <=0
bk=x(k);
else
ak=x(k);
end
k=k+1;
%res(k)=abs(f(x(k)));
res(k)=bk-ak;
x(k)=(ak+bk)/2;
end
% Affichage du résultat final à l'écran
k=size(res,2);
if k<kmax
sprintf('Algorithme de la bissection convergé pour k=%d, res=%d, x=%d',k,res(k),x(k))
else
sprintf('Algorithme de la bissection pas convergé pour k=%d, res=%d, x=%d',k,res(k),x(k))
end |