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 :

Plan moindre carré, Gimbal lock !


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Plan moindre carré, Gimbal lock !
    Bonjour,
    Je possède les coordonnées 3D (Xi,Yi,Zi) de i=67 points à différents instants.
    J'ai suivis les méthodes suivantes pour faire passé un plan au moindre carré sur mes points:
    http://www.developpez.net/forums/d52...rbes-surfaces/
    et
    http://www.developpez.net/forums/d30...indres-carres/
    Le problème est que la courbe des erreurs résiduelles (Modèle-réelle) en fonction du temps, indiques des valeurs aberrantes à deux reprises (deux pics). En faisant une visualisation de la positions du plan (issu du modèle) par rapports au points réelles, à différents instants, j'ai remarqué qu’au cours de la variation de positions des 67 points le plan s'inverse à deux reprises.
    D'où est ce que ça pourrait venir ? s'agit til d'un Gimbal lock ?
    Comment résoudre ce problème?
    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    en gros, tu utilises une méthode identique à celle-ci (?):
    How can I determine the equation of the best-fit line, plane, or N-D surface using MATLAB?

    Si oui, il peut arriver que le résultat dépende de ta configuration de points car une référence parmi tes 3 coordonnées est utilisée. Pour corriger cela, tu peux calculer les coefficients de ton plan par rapport aux 3 coordonnées et ne conserver que la plan pour lequel ton erreur quadratique est minimale. Par exemple, dans le lien que j'ai donné, on ferait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    zz = XCoeff * xx + YCoeff * yy + CCoeff;
    xx = YCoeff * yy + ZCoeff * zz + CCoeff;
    yy = XCoeff * xx + ZCoeff * zz + CCoeff;
    Sinon, perso j'utilise une autre méthode : la recherche des composantes principales (sûrement plus longue en terme de temps de calcul, quoique je n'ai jamais fait le test) :
    Fitting an Orthogonal Regression Using Principal Components Analysis

    Si tu n'as pas la toolbox statistique, les vecteurs propres peuvent être obtenu avec la commande :
    le vecteur normal correspond alors au vecteur propre associé à la plus grande valeur propre.
    Pour le moment je n'ai pas eu de problème avec cette méthode, mais je ne pourrais pas dire si une des méthodes est plus efficace que l'autre...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    Merci pour ton aide. J'étais parti pour utiliser la fonction 'fmincon' que je n'ai pas su l'implémenté comme il faut . J'ai eu comme erreur : .... Input argument "x" is undefined.
    Par contre j'ai utilisé l'ACP. J'ai suivie ton lien:
    Mon problème est maintenant résolue.
    Toutefois, j'aimerai savoir si la fonction 'fmincon' permet de définir un plan au moindre carré sur un nuage de points 3D et comment?
    Merci encore une fois.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Il suffit d'écrire une fonction qui renvoie l'erreur entre le plan et les données et de minimiser cette fonction. Mais je ne pense pas que ce soit une méthode très efficace car trop dépendante de l'initialisation (et donc la convergence dépend de cette initialisation).

    Si tu veux tout de même la tester, montres nous ce que tu as fait.
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

Discussions similaires

  1. calculer le plan moindres carrés
    Par Mrmeynis dans le forum MATLAB
    Réponses: 2
    Dernier message: 21/07/2009, 08h49
  2. Détermination d'un plan des moindres carrés
    Par bernard6 dans le forum MATLAB
    Réponses: 8
    Dernier message: 05/04/2007, 16h23
  3. [Analyse numérique] Moindres carrés polynomiaux
    Par Razgriz dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 30/11/2006, 06h27
  4. Interpolation polynomiale, moindres carrés
    Par progfou dans le forum Mathématiques
    Réponses: 4
    Dernier message: 27/10/2006, 11h33
  5. [3D] Gimbal Lock
    Par Edouard Kaiser dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 09/05/2006, 09h55

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