IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

comment fonctionne fzero


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Par défaut comment fonctionne fzero
    Savez vous pourquoi la fonction fzero peut bugguer dans le cas:

    rep=fzero(f,1)

    on peut avoir
    rep= Nan

    si l'argument (1 dans mon exemple) est trop eloigné de la réponse?

    Merci

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut !
    En fait, la fonction fzero cherche une valeur de x pour laquelle f(x) change de signe, et non celles pour lesquelles f(x) s'annule. Par exemple, la fonction f(x)=x^2 s'annule en x=0, mais ne change pas de signe; fzero ne trouvera donc pas cette solution. si tu nous indiques quelle est ta fonction et quelle valeur tu as pris pour x0, on pourra t'en dire plus.
    Jean-Marc Blanc

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Par défaut
    Ma fonction est :

    f=y*tanh(y)-C

    avec C une constante que je change grâce à "global C" avant chaque résolution.
    C[ 10^-4;10]

    Lorsque je prend fzero(f,1) je n'obtiens pas tous les y, alors que avec fzero(f,0.2) ça marche.

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2007
    Messages
    979
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 979
    Par défaut
    Salut,

    si tu fait :

    On te dit que fzero(f,x0) , se comporte différemment suivant x0 :

    x0 scalaire : elle cherche un zero de f autour de x0
    si x0 est un vecteur de deux élément : elle vérifie que f(x0(1))*f(x0(2))<=0, puis cherche entre les deux.

    Essayes ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    C = 5;
    fun=@(y)(y.*tanh(y)-C);
     
    xx = -10:10;
    plot(xx,fun(xx))
    hold on
    plot(xx,zeros(size(xx)))
     
    drawnow
     
    x0 = [0 1];
    count = 0;
    MaxCount = 100;
     
    while fun(x0(1))*fun(x0(2)) > 0 && count < MaxCount
        x0 = 2*x0;
    end
     
    s = fzero(fun,x0)
     
    % Verification 
    ZERO = fun(s)


    ++

Discussions similaires

  1. [JSF] comment fonctionne <h:message> ?
    Par anitshka dans le forum JSF
    Réponses: 5
    Dernier message: 29/06/2005, 17h36
  2. Comment fonctionne TXmlDocumment ????
    Par almisuifre dans le forum C++Builder
    Réponses: 8
    Dernier message: 18/02/2005, 12h54
  3. comment fonctionne une interface graphique???
    Par elekis dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 27/10/2004, 23h10
  4. Comment fonctionne le ClassExplorer ?
    Par borisd dans le forum C++Builder
    Réponses: 7
    Dernier message: 30/09/2004, 17h44
  5. Comment fonctionne le CVS ?
    Par mathieu dans le forum CVS
    Réponses: 6
    Dernier message: 23/03/2004, 11h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo