Fzero all roots
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Fzero all roots



  1. #1
    turbulent

    Fzero all roots


    ------

    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))

    -----

  2. #2
    Paraboloide_Hyperbolique

    Re : Fzero all roots

    Bonjour,

    fzero peut parfois échouer à trouver une racine. Il faut voir si l'argument "exitflag" retourné par la fonction vaut bien 1 ou non.

    La doc: https://www.mathworks.com/help/matlab/ref/fzero.html

  3. #3
    umfred

    Re : Fzero all roots

    réponse: la valeur affichée est tronquée à 4 chiffres derrière la virgule.
    tu peux mettre la commande "format long" en début pour avoir un affichage long des valeurs décimales
    ou tu peux juste passer Roots(231) à ta fonction => f(Roots(231)) ==> 1.4051e-12

  4. #4
    turbulent

    Lightbulb Re : Fzero all roots

    Merci infiniment umfred. Grâce à toi, j'ai appris beaucoup de choses sur Matlab.
    Je remercie aussi les autres intervenants dans cette discussion,malgré leurs critiques sévères.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Fonction fzero matlab c'est urgeeeeent
    Par invite66a17380 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 08/05/2017, 22h33