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

Algorithmes et structures de données Discussion :

fitting une courbe (régression multiple) par des coordonées en 3d


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut fitting une courbe (régression multiple) par des coordonées en 3d
    Bonjour,

    En effet, j'ai obtenu des coordonnées réelles 3d dans un tableau à 3 colonnes et n lignes ci-dessous :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    33.3846 33 12
    32.6 37.05 13
    31.875 36.5833 14
    30.9231 35.5769 15
    29.72 37.24 16
    29.1304 34.9565 17
    28.1667 35.5556 18
    26.8824 34.4706 19
    25.9231 34.2308 20
    25.2857 35.4286 21
    23.9286 37.9286 22
    23.0909 37.1818 23
    22.5385 33.9231 24
    21.1538 36.8462 25
    20.3571 38.1429 26
    19.8824 34.1765 27
    18.8571 35.3571 28
    18.3571 35.2857 29
    17.3077 33.6154 30
    16.4167 35.25 31
    15.6667 31.1667 32
    14.8182 32.7273 33
    14.6 25.4 34
    13.8571 24.2857 35
    14 9.71429 36
    13.2 9.4 37
    12.7143 9 38
    11.8 8.4 39
    11 7.71429 40
    10.2 7.4 41
    9.71429 7 42
    8.8 6.4 43
    8 5.71429 44
    7.2 5.4 45
    et j'aimerais obtenir la droite qui passe au plus près de tous les points et le polynôme qui la représente.

    Je ne sais quoi faire (:
    En 2d ça me semble faisable au sens des moindres carrés mais avec 3d je ne sais pas comment devrais-je procéder.

    Merci beaucoup,
    Cordialement,
    Maroua

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par marouame Voir le message
    et j'aimerais obtenir la droite qui passe au plus près de tous les points et le polynôme qui la représente.
    Le "polynome" qui représente une droite dans l'espace ?

    A part une équation paramétrique, je ne vois pas trop.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Mais je ne vois pas où devrais je placer x, y et z, étant donnée que je suis en 3D?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par marouame Voir le message
    Mais je ne vois pas où devrais je placer x, y et z, étant donnée que je suis en 3D?
    Une droite dans l'espace ne peut pas se représenter sous la forme d'un polynome P(x,y,z)=0. Ca c'est l'équation d'un plan.

    Pour faire une régression dans l'espace, on peut passer par l'équation paramétrique de la droite D(x,y,z) = P + t*V, ou P est un point de passage et V un vecteur directeur. Avec quelques contraintes sur P et V, cette équation peut être unique, et donc on peut l'utiliser pour trouver les paramètres.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    ce n'est pas alors juste de chercher une équation tel z = f(x,y) en utilisant une régression non linéaire multiple pour trouver la droite qui passe au plus près de tous les points 3D?
    J'ai penché pour cette solution après avoir fait des recherche sur le net et étant donnée que mes points forme une droite.
    C'est un problème de curve fitting.
    ce n'est pas juste de faire comme ça?

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par marouame Voir le message
    ce n'est pas alors juste de chercher une équation tel z = f(x,y) en utilisant une régression non linéaire multiple pour trouver la droite qui passe au plus près de tous les points 3D?
    z=f(x,y) ne donne pas une droite.

    Pour preuve, cette fonction te donnera une valeur de "z" pour TOUS les points (x,y) possibles... Or une seule droite ne passe manifestement pas par TOUS ces points.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    oui vous avez tout à fait raison
    mais, j'ai trouvé dans un document qui cherche à ajuster une parabole à partir de points 3D
    Fitting a Paraboloid to 3D Points of the Form (x, y, f(x, y))
    Given a set of samples {(xi, yi, zi)} and assuming that the true values lie on a paraboloid
    z = f(x, y) = p1x2 + p2xy + p3y2 + p4x + p5y + p6 = ~P · ~Q(x, y)
    where ~P = (p1, p2, p3, p4, p5, p6) and ~Q(x, y) = (x2, xy, y2, x, y, 1), select ~P to minimize the sum of squared
    errors
    E( ~P) =Somme Samples( ~P · ~Qi − zi)2

  8. #8
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par marouame Voir le message
    Fitting a Paraboloid to 3D Points of the Form (x, y, f(x, y))
    M'est d'avis qu'il s'agit d'un paraboloïde (surface 3D) et pas d'une parabole (2D).

    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Vraiment je suis désorientée et je ne vois pas clairement la solution
    Moi tout ce que j'ai besoin est l'équation de la courbe qui passe au près par le max des points afin de déterminer après de nouveaux points à partir de l'équation.
    J'ai penché pour régression non linéaire parce que à priori je sais que c'est une courbe (arc d'une ellipse ) et pas une droite affine
    et aussi multiple par ce que j'ai x, y et z?
    Pouvez vous s'il vous plaî m'éclarcir les idées.
    En tout je veux une fonction ou un algorithme implanté en C ou C++ semmblable à la fonction polyfit de matalab qui marche pour 2D.
    Merci

  10. #10
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par marouame Voir le message
    Vraiment je suis désorientée et je ne vois pas clairement la solution
    Moi tout ce que j'ai besoin est l'équation de la courbe qui passe au près par le max des points afin de déterminer après de nouveaux points à partir de l'équation.
    J'ai penché pour régression non linéaire parce que à priori je sais que c'est une courbe (arc d'une ellipse ) et pas une droite affine
    et aussi multiple par ce que j'ai x, y et z?
    Pouvez vous s'il vous plaî m'éclarcir les idées.
    En tout je veux une fonction ou un algorithme implanté en C ou C++ semmblable à la fonction polyfit de matalab qui marche pour 2D.
    Merci
    Si vous êtes certain que tous vos points sont sur un même plan, commencez par chercher l'équation du plan avec une regression lineaire (ax+by+cz=0).

    Ensuite projetez les points sur le plan, et vous vous retrouvez dans le cas 2D.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    excusez moi ce n'est pas clair

  12. #12
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par marouame Voir le message
    excusez moi ce n'est pas clair
    Vous dites que votre courbe est un "arc d'une ellipse", donc une courbe plane. Je propose donc de se ramener à un problème en 2D en projetant les points sur la plan qui supporte la courbe.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  13. #13
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    je ne pense pas qu'elle soit une bonne solution parce si je fais la projection je perds une dimension et après lorsque j'ai besoin d'u nouveau point comment devrais je procéder.
    A priori ma courbe n'est pas affine.
    Merci,
    si je fais une régression linéaire multiple que devrais je avoir comme résultat?

  14. #14
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par marouame Voir le message
    je ne pense pas qu'elle soit une bonne solution parce si je fais la projection je perds une dimension et après lorsque j'ai besoin d'u nouveau point comment devrais je procéder.
    A priori ma courbe n'est pas affine.
    Affine ou pas, ce n'est pas grave. Le problème c'etait de savoir si la courbe est plane pour se ramener au cas 2D par projection.

    si je fais une régression linéaire multiple que devrais je avoir comme résultat?
    Aucune idée. Ca dépend du modèle.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  15. #15
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Bonjour,
    je ne comprends pas pourquoi la solution des moindres carrés a été éliminée.

    Nous avons une droite , avec unitaire.

    L'erreur pour le point est la distance de ce point à la droite (d). Ainsi, le carré de l'erreur est

    De là, bien que ce soit long est un peu loud, on peut en déduire et ainsi les et avec .
    -- Yankel Scialom

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/08/2008, 10h47
  2. Réponses: 6
    Dernier message: 21/07/2008, 11h21
  3. Réponses: 7
    Dernier message: 01/04/2007, 12h30

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