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 :

[lsqcurvefit] TolX TolFun


Sujet :

MATLAB

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [lsqcurvefit] TolX TolFun
    Bonjour tout le monde,

    J'utilise actuellement une routine de Matlab permettant de faire de l'ajustement de paramètre : LSQCRUVEFIT.
    Cependant je n'arrive pas à faire converger l'optimisateur vers le bon minimum.
    Cela vient très certainement du fait que je n'arrive pas à saisir les subtilités des phrases concises de description de 2 paramètres de contrôle de la routine : TolX et Tolfun.
    Quelqu'un sait il à quoi corresponde EXACTEMENT ces deux tolérances ?
    La première joue sur les paramètres de sortie et la deuxième sur la fonction à fitter; mais est ce dans les deux cas une tolérance relative ? absolue ?
    De plus il y a d'autres paramètres de contrôle qui me semble important mais dont je n'arrive à saisir la substance : DiffMinChange et DiffMaxChange (joue sur le gradient mais comment ?).
    Je vous remercie d'avance pour tout aide apporter (:

    Ps : Quelqu'un a t il déjà utiliser cette routine pour des problèmes très fins ?

  2. #2
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    salut

    Citation Envoyé par DouéDoué Voir le message
    Cependant je n'arrive pas à faire converger l'optimisateur vers le bon minimum.
    peut tu préciser un peu ceci ?
    en effet lsqcurvefit trouve une solution "locale", c'est à dire "la plus proche" de la solution initiale x0 que tu lui passe
    le problème réside souvent dans ce x0, qui est très important pour trouver la bonne solution
    tolX et tolfun sont plus là pour régler le niveau de performance (et de temps de calcul)

    Nom : tolfuntolx.png
Affichages : 279
Taille : 9,3 Ko
    ils jouent sur la tolérance sur X (la solution) et fun (la sortie de la fonction que tu minimises, ici la fonction à fitter)
    c'est à dire que au fur et à mesure que l'algorithme converge, si à chaque d'une itération sur l'autre X bouge moins que tolX ou la fsortie de la fonction bouge moins que tolfun, alors il considère qu'il est suffisamment proche de la solution et il arrête d'iterer


    http://fr.mathworks.com/help/optim/u...-criteria.html

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse.

    Alors j'ai fait une petite étude en lui donnant d'abords pour Condition Initiales la solution vraie. (les paramètres x0 sont la solution vraie). C'est le cas totologique.
    Arriver à un certain niveau de précision trop élevé sur TolX et Tolfun il trouve un écart à la solution ... J'imagine que c'est due à un bruit numérique ?

    Autre étude : je perturbe très légèrement ma solution vraie et il ne retrouve pas le minimum correspondant à la solution vraie.
    Comment puis je affiner la recherche ?
    Je tiens à préciser que je ne lui ai pas donné de Upper bound et lower bound.

    Pour ton explication sur TolX et TolFun : je comprends bien que cela "joue" de cette façon.
    Mais est ce un critère relatif ou absolu ?
    C'est à dire : si j'ai ma fonction qui doit avoir pour résultat des données de l'ordre de 10(^-2), et des paramètres qui sont de l'ordre de 10(^-3), quelle valeurs donnerais tu à TolX et TolF ?

    Sachant que c'est le gradient qui importe sur le critère d'arrêt, faut il fixer aussi DiffMinChange et DiffMaxChange pour le guider dans la recherche ?

    http://fr.mathworks.com/help/optim/u...y-measure.html

    D'avance encore, merci.

  4. #4
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 882
    Points : 3 432
    Points
    3 432
    Par défaut
    tolfun et tolX sont des critères absolus en général, mais parfois relatifs selon l'algorithme utilisé, comme c'est écrit dans le liens que je t'ai passé plus haut
    je n'ai pas trouvé dans la doc d'information supplémentaire quant à l'utilisation faite de ces 2 paramètres par les deux algorithmes disponibles pour la fonction lsqcurvefit

    je te conseille de regarder la sortie de la fonction d'optimisation :
    si elle vaut 2 ou 3 c'est que tu as taper une de ces deux tolérances

Discussions similaires

  1. fsolve stalled TolFun TolX
    Par Jerems_aachen dans le forum MATLAB
    Réponses: 0
    Dernier message: 08/06/2011, 15h49
  2. [lsqcurvefit] Comment calculer les bonnes valeurs ?
    Par DOC doc doc dans le forum MATLAB
    Réponses: 0
    Dernier message: 13/05/2008, 10h59
  3. Réponses: 4
    Dernier message: 12/12/2007, 17h13
  4. Utilisation de la fonction lsqcurvefit
    Par altera14 dans le forum MATLAB
    Réponses: 2
    Dernier message: 05/12/2007, 09h40
  5. Réponses: 2
    Dernier message: 30/05/2007, 13h11

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