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

Mathématiques Discussion :

Définition du résidu


Sujet :

Mathématiques

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut Définition du résidu
    Bonjour tous,

    j'aimerai savoir comment vous définissez votre résidu à minimiser lorsque vous
    faites de l'optimisation avec fminsearch ou lsqnonlin sous MATLAB

    je vous demande ceci car j'ai une courbe qui comporte plusieurs niveau d'amplitude (cf. pièce jointe) et j'ai un petit soucis :

    - j'ai un modèle qui reproduit plutôt pas mal la courbe expérimental mais lorsque je lance l'optimisation pour affiner un peu ceci l'optimiseur fait de son mieux pour optimiser seulement la dernière boucle (car elle comporte plus de points que les autres).

    je voudrais donc définir un résidu qui soit indépendant du nombre de points car je veux autant optimiser la première boucle que la dernière (je préfère avoir une erreur moyenne un peu partout qu'avoir une grosse erreur sur le premier cycle et une toute petit sur le dernier cycle).

    auriez vous une idée ?

    je vous remercie !

    ps: moi actuellement je fais comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    residu=(Yexp-Ynum).^2;

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Je n'ai pas tout à fait tout compris..

    Mais de ce que je pense, tu as par exemple ici 4 courbes, c'est bien ça ? qui chacune correspond à une certaine valeur d'un paramètre ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    merci souviron d'avoir pris le temps de repondre

    Citation Envoyé par souviron34 Voir le message
    tu as par exemple ici 4 courbes, c'est bien ça ?
    non ceci représente une seule courbe (ma courbe expérimentale)

    Citation Envoyé par souviron34 Voir le message
    qui chacune correspond à une certaine valeur d'un paramètre ?
    en fait ici il s'agit d'une courbe expérimentale. J'ai un modèle mathématique qui me permet de générer un peu pret la même courbe avec trois paramètres.

    Mon soucis :
    ------------
    si je dis à un algorithme d'optimisation de minimiser la somme des erreurs au carré entre la courbe expérimentale et la courbe numérique il va privilégier la partie de la courbe qui a la plus forte amplitude car c'est celle qui comporte le plus de points.

    Exemple en PJ:
    --------------
    sur la pièce jointe je t'ai mis un exemple pour illustrer mes propos.
    Il y a une identification en vert qui est typiquement le type de resultat que j'obtiens avec un optimiseur.
    Il y a une identification en rouge qui est le genre de courbe que j'obtiens si "j'optimise à la main".

    comme sur ma courbe il y a plus de point sur la dernière boucle d'amplitude alors l'optimiseur va minimiser cette erreur en premier et le reste il ne le modifie par beaucoup alors que moi je préférerai qu'il fasse plutot une petit erreur sur chaque point plutot que pas d'erreur du tout sur certains points et une grosse erreur sur quelque points

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par membreComplexe12 Voir le message
    en fait ici il s'agit d'une courbe expérimentale. J'ai un modèle mathématique qui me permet de générer un peu pret la même courbe avec trois paramètres.
    J'ai toujours un peu de mal..

    Tu as

    f(param) = courbe1, courbe2, courbe3 pour 3 valeurs du paramètre

    ou bien

    f(param1,param2,param3) = les 3 courbes ???


    Citation Envoyé par membreComplexe12 Voir le message
    si je dis à un algorithme d'optimisation de minimiser la somme des erreurs au carré entre la courbe expérimentale et la courbe numérique il va privilégier la partie de la courbe qui a la plus forte amplitude car c'est celle qui comporte le plus de points.
    ??????

    La réponse à la question ci-dessus devrait donner la solution...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    J'ai toujours un peu de mal..
    pas de soucis

    Citation Envoyé par souviron34 Voir le message
    f(param) = courbe1, courbe2, courbe3 pour 3 valeurs du paramètre
    ou bien
    f(param1,param2,param3) = les 3 courbes ???
    aucun des deux
    j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f(param1,param2,param3) = 1 courbe en spirale
    Citation Envoyé par souviron34 Voir le message
    ??????
    La réponse à la question ci-dessus devrait donner la solution...
    oui tout à fait. Pour être plus clair je vais te faire un petit schéma.

    Dans ce message j'ai mis en pièce jointe un exemple (qui n'est pas le mien mais qui permet de bien comprendre)

    j'ai une courbe expérimentale qui ressemble à une spirale.
    (j'ai mis en rouge les points expérimentaux)

    On remarque qu'il y a sur ma courbe qu'il y a beaucoup plus de points expérimentaux sur la grande boucle en comparaison avec la petite boucle de la spirale (c'est normal car longueur plus grande).

    Si je défini mon résidu comme ceci (l'algo va minimiser la somme des ecarts) :
    l'algo pour converger rapidement, va bouger les parametres de ma fonction afin de faire coller en priorité les points de la boucle externe (car ils sont plus nombreux) que la boucle interne.

    Du coup, à la fin, je me trouve avec une erreur nulle sur les 30points de ma boucle externe mais avec une erreur enorme sur les 5premiers points.

    Or, moi je préfèrerai qu'il fasse une erreur de 10% partout plutot que de faire une erreur de 0% quelque part et 100% ailleur....

    conclusion :
    -------------
    du coup, ce que je cherche, c'est une autre definition du résidu qui me permettent non pas de minimiser le résidu que j'ai mis plus haut mais plutot une erreur relative sur chaque point.

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    je crois simplement que tu n'as pas pris la bonne expression de ta fonction..

    Certaines spirales s'expriment en fonction de l'angle, etc..

    Quelle est ton expression ??

    Parce que là je vois un sum(yi - Yiexp)

    Si c'est une exponentielle/puissance, alors il faut en prendre le log avant de faire les moindres carrés, et tu n'auras plus de problèmes.

    Je ne crois as que ça vient du nombre de points, ton problème, mais de la valeur des points..

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2 051
    Points : 877
    Points
    877
    Par défaut
    en fait mon cas est beaucoup plus compliqué qu'une spiriale et beaucoup plus de paramètres mais comme c'est très long à expliqué j'ai pris le cas d'une spirale.

    j'utilise un algorithme de levenberg marquart pour minimiser mon erreur.

    il me semble que j'ai trouvé la solution à mon problème. J'ai remplacé mon résidu : par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqrt(sum(yi-Yexp)^2/max(yi-Yexp^2)/N)
    ce qui me permet bien de minimiser une erreur relative

    merci quand même d'avoir pris le temps de repondre

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 21
    Dernier message: 09/08/2007, 12h46
  2. Réponses: 2
    Dernier message: 29/07/2003, 13h52
  3. [Sybase] Définition des symboles
    Par SoaB dans le forum Sybase
    Réponses: 5
    Dernier message: 20/03/2003, 00h06
  4. Définition de "Métalangage"
    Par No dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 19/07/2002, 15h05

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