Bonjour;
Dans ce code, je cherche à obtenir toutes les racines de la fonction f. En vérifiant quelques valeurs , je les ai trouvé assez bizarres.
Exemple: la dernière valeur: Roots(231)= 4.6663 et f(4.6663)=-0.2956 et pourtant eps=1e-9. Qu'est ce qui ne va pas dans ce code.
Code:f=@(x) tan(100*x)+2*x; a=-5.0; b=5.0; fplot(f,[a,b]),grid on; zero=fzero(@(x)f(x),a); oldzero=zero; zerotot=zero; eps=1e-9; nRoots=100;%21; for i=a:0.01:b zero=fzero(@(x)f(x),i); long=length(zerotot); if abs(zero - zerotot)> eps & (a<= zero) & (zero <= b) zerotot=[zerotot;zero]; long=long+1; end oldzero=zerotot(long); end index=find(zerotot<a); zerotot(index)=[]; index=find(zerotot>b); zerotot(index)=[]; froots=f(zerotot); % equal to 0? index=find(abs(froots)<=eps); Roots=sort(zerotot(index))
-----