Comment corriger ce code?
J'ai besoin de faire une fonction qui permet d'appliquer la méthode de dichotomie afin de rechercher
la racine approchée d'une fonction non linéaire.J'ai écrit le code suivant mais il y a des erreurs.Qu'est ce que
je dois rectifier?
Code:
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); |