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
| function [r, fr, compt]=Dichotomie(x, f, e, Nmax,a,b)
compt=1;
pas=0.01;
a(1)=a;
b(1)=b;
x0(1)=(a+b)/2;
dist=2*e;
while ((compt<Nmax) && ( dist>e ))
u=f((a(compt)-a)/pas+1);
v=f((x0(compt)-a)/pas+1);
if(u.*v<0)
b(compt+1)=x0(compt); a(compt+1)= a(compt);
end
if(u.*v>0)
a(compt+1)=x0(compt); b(compt+1)=b(compt);
end
if(u.*v==0)
dist=0;
end
compt=compt+1;
x0(compt)=(a(compt)+b(compt))/2;
dist=abs(x0(compt)-x0(compt-1));
end
r=x0(compt) ;
fr=dist;
fprintf('La racine de l''équation est: %f obtenue aprés %f itérations\n ',r,compt); |
Partager