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 :

Trouver equation à partir d'une liste de points


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 42
    Points
    42
    Par défaut [Resolu] Trouver equation à partir d'une liste de points
    Salut,

    Voila je vais essayer de m'expliquer correctement.

    J'ai une series de points dans le plan du type {x,y}. Tres classique. Je dois trouver la fonction representant au mieux cette serie (à la precision definit par l'utilisateur). La fonction est en 4 terme : y = A + Bx + Cx² + D/x²

    Il faut donc trouver A,B,C et D. Evidement il est tout à fait possible (probable meme) que il n'y est aucune fonction unique realisant la serie. Il faut alors prendre un ensemble de points plus petit jusqu'à trouver une formule verifiant cet ensemble. De plus, la jonction de 2 fonctions doit etre le plus invisible possible donc l'angle doit etre plat ou la pente nulle.

    Au final on a une serie de points representés par une ou plusieurs fonctions en 4 terme deefinit plus haut. L'affichage de l'ensemble des courbe montre une courbe unique. Un dessin parle peut etre plus !



    Voila une representation ultra basique à la main sous paint L'objectif est donc de representer une serie de points avec le moins de fonction en 4 termes possibles.

    Question :
    Je voulais savoir si vous connaissez des algo preexistants (eventuellement leurs noms "savants") car je pense que c'est un probleme ultra classique. Ayant à disposition un vieux code source faisant partiellement le probleme, j'ai pour objectif de l'ameliorer ou le modifier. N'ayant aucune commentaire, j'essaye de recuperer le max d'infos pour le comprendre (voir si il s'inspire d'un algo connu). Merci pour votre aide.

    p.s : Pour le moment je cherche du coté de la régression multiple...

    Bonne journée !

  2. #2
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    si tu veux trouver l'equation quii approche le mieux tes points, avec un type de courbe connu, utilise la regression lineaire, en adaptant un peu pour gerer les x*x etles 1/x. C'est une histoire de minimisation des moindres carres, essaie de voir si t'as pas une fonction qui fait ca sous la main.

    pour l'interpolation par morceaux, un grand classique est l'interpolation pas splines, ou courbes de Bezier. en cherchant de ce cote tu trouveras peut-etre ton bonheur.

    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    tu peux aussi essayer l'interpolation de Lagrange, soit d'un seul coup sue tte ta seriede points, soit en les divisant en 4 intervalles

    Matlab te fera ca en un rien de tps

    Enjoy, c fun les polynomes

  4. #4
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Ca doit être faisable assez facilement avec une heuristique.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    Oki merci ! Je vais me debrouiller avec cela !

  6. #6
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    Plutôt que d'utiliser des interpolations (utilies pour des fonctions très complexes), transformes ton problème en systèmes linéaires à résoudre:
    tu vas avoir à résoudre n équations A+xiB+xi^2C+(1/xi)D=yi, où (xi,yi) sont les coord. de tes points et où A,B,C,D sont les inconnues.

    Et tu solutionnes par paquets de 4: Eq1+2+3+4, pus Eq5+6+7+8, etc...

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

Discussions similaires

  1. Définir des contours à partir d'une liste de points
    Par Masmeta dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 03/04/2014, 09h24
  2. Réponses: 0
    Dernier message: 14/03/2014, 23h20
  3. Trouver une equation à partir d'une courbe
    Par vinzzzz dans le forum Mathématiques
    Réponses: 10
    Dernier message: 17/05/2010, 09h52
  4. Réponses: 3
    Dernier message: 25/04/2005, 15h26
  5. trouver le minimum d'une liste
    Par speed034 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/12/2004, 12h29

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