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 :

Ellipse autour de points


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 344
    Par défaut Ellipse autour de points
    Bonjour,
    j'ai un ensemble de points (xi,yi) et je souhaiterais tracer l'ellipse la plus petite qui englobe un certain pourcentage P de points SVP Cette ellipse peut être oblique. Et je suis dans un plan cartésien.
    Merci
    Bien cordialement

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 202
    Par défaut
    Dans l'échelle des difficultés, entre le précédent exercice et celui-ci, on fait un bond énorme !

    Je te propose un exercice intermédiaire (un que je sais à peu près faire) très proche de ton précédent exercice :

    On a n points dans le plan.
    On veut garder un maximum de points, sachant qu'on s'interdit d'avoir 2 points à une distance inférieure à D fixé (donc le même exercice qu'hier, mais dans le plan et non sur une droite).
    Je pense que les mécanismes de raisonnement nécessaires seront assez proches de ceux nécessaires pour ce nouvel exercice, mais en beaucoup plus simples.

    Cet exercice avec une ellipse et en plus avec des axes qui peuvent-être inclinés, il est franchement difficile.

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 283
    Par défaut
    Bonjour

    L'énoncé n'a démontré ni l'existence, ni l'unicité de la dite ellipse.

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 344
    Par défaut
    j'ai trouvé ça :
    https://stackoverflow.com/questions/...-around-points
    ça ne fait pas avancer la discussion ?
    ça trace une ellipse autour de 100% des points
    appelons cet algo X

    un algo brute force qui répond à la question pourrait être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    min_aire=+Infini
    Ellipse bonne_ellipse
    pour chaque combinaison V de points correspondant à P% du total :
       tracer l''ellipse E englobant V grâce à X
       calculer l''aire A de l''ellipse E
       si A < min_aire alors
          min_aire=A
          bonne_ellipse=E
       finsi
    finpour
    la question est maintenant comment trouver chaque combinaison V de points correspondant à P% du total

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 202
    Par défaut
    Comment trouver chaque combinaison correspondant à P% des points, je dirais que c'est facile.
    Dans certains langages (Python), il y a des commandes toutes faites. cf : itertools.combinations

  6. #6
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 344
    Par défaut
    ok merci dans :
    "Return r length subsequences of elements from the input iterable."
    length correspond à n*P/100 ?

  7. #7
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Ellipse autour de points
    Bonjour,

    Citation Envoyé par Sylvain255 Voir le message
    ... j'ai un ensemble de points (xi,yi) et je souhaiterais tracer l'ellipse la plus petite qui englobe un certain pourcentage P de points SVP Cette ellipse peut être oblique. Et je suis dans un plan cartésien ...
    Il s'agit d'un problème apparenté à celui de la détermination de la droite moyenne; mais il n'a de sens que si le nuage de points présente effectivement une forme allongée, dépourvue de courbure. Dans le cas d'une forme coudée (en "V" ou en "Z") ou - pire encore - ramifiée ou lacunaire, l'ellipse obtenue ne représenterait plus rien.

    On est conduit dans le cas favorable à une famille d'ellipses centrées sur l'isobarycentre du nuage, et admettant pour grand axe une droite des moindres carrés; la taille de ces courbes fermées ne dépendant que d'un paramètre sans dimension (λ), il suffit d'ajuster ce dernier à la valeur correspondant à l'enlacement du nombre de points recherché.

    Le résultat ne correspond pas, en toute rigueur, à l'ellipse de dimensions minimales ... mais on n'en est pas loin. Et rien n'interdit, pour une proportion (p) donnée, de ne retenir que les points les plus proches du barycentre.

    Je partage la réserve de Flodelarab, qui met en doute l'existence et l'unicité systématiques d'une telle ellipse.
    Exemple parmi d'autres: l'ensemble des (N) points de coordonnées
    x = a*Cos(2kπ/N) , y = b*Sin(2kπ/N) avec 0 ≤ k < N
    pour lequel la proportion de points enlacés ne pourra prendre que les valeurs 0 ou 100% ... à moins de tabler sur les petits écarts contestables liés à la discrétisation de l'espace ... ou encore celui des (2N) points:
    x2 = a2 , y = kb/N avec 0 ≤ k < N ,
    pour lequel on trouve (entre autres) deux ellipses d'aire nulle pour p = 50% .

  8. #8
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 591
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 591
    Par défaut
    Bonjour wiwaxia,

    Citation Envoyé par wiwaxia Voir le message
    Exemple parmi d'autres: l'ensemble de points de coordonnées
    x = a*Cos(2kπ/N) , y = b*Sin(2kπ/N) avec 0 ≤ k < N
    pour lequel la proportion de points ne pourra prendre que les valeurs 0 ou 100% ... à moins de tabler sur les petits écarts contestables liés à la discrétisation de l'espace ...
    Je pense que tu voulais mettre 2.k.n.Pi/N sinon cela ne parcourt qu'environ un tiers d'ellipse.

    Avec les approches proposées, c'est inévitable car elles travaillent sur l'ensemble alors que le but est éventuellement d'entourer qu'une partie des points. Illustration :

    Nom : Ellipse et points.png
Affichages : 401
Taille : 22,9 Ko

    Je ne suis pas sûr qu'il y ait toujours une solution même si j'aurais tendance à le croire.

    En effet s'il existe une droite qui passe entre les points sans en toucher plus d'un et sépare le plan en 2 dont une partie présente le nombre de points recherché, il est possible de tracer une ellipse, fut elle très allongée, les entourant de grand axe // à cette droite. Or la discrétisation de la surface par les points laissera toujours un espace pour une droite. Même les alignements ne l'empêchent pas. Enfin, je n'ai pas trouvé de contre exemple

    Salut

  9. #9
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 202
    Par défaut
    @Guesset : on veut l'ellipse la plus petite possible (= de surface minimale). Donc une ellipse qui contiendrait tous les points ne sera a priori pas optimale, si on vise 60% ou 80%.

    Trouver une droite qui passe par un seul point : oui, c'est toujours possible. Passant par un point, la liste des directions interdites est un nombre fini, et on a une infinité de directions possibles, et donc, c'est une certitude, on peut toujours construire une droite passant par un point et un seul.

  10. #10
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 591
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 591
    Par défaut
    Bonjour,

    Je n'ai pas dit que l'ellipse passe par un seul point, j'ai juste montré qu'il était possible de partager le plan avec une droite qui, au plus a un point de l'ensemble. Le nombre de points entourés est le nombre de points dans l'un des demi-plan (+1 s'il y a un point sur la droite de clivage).

    L'objectif n'était pas de trouver la plus petite ellipse mais de répondre à la question qui restait en suspend : y a-t il une ellipse qui entoure un nombre donné de points ? Cela semblait un préalable avant de chercher la plus petite.

    J'étais toujours sur un nombre n donné. Si c'est n et plus, la contrainte est moins forte et il y a évidemment une solution voire plusieurs.

    L'isobarycentre est tentant mais se fait assez rapidement piégé par une distribution en haltère, de même la densité n'est pas sans risque. Illustration rapide et très perfectible :

    Nom : Ellipse et points 2.png
Affichages : 390
Taille : 27,0 Ko

    Salutations

  11. #11
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Ellipse autour de points
    Bonjour Guesset,

    Citation Envoyé par Guesset Voir le message
    ... Je pense que tu voulais mettre 2.k.n.Pi/N sinon cela ne parcourt qu'environ un tiers d'ellipse ...
    C'était bien la bonne expression 2.k.Pi/N
    Nom : Texte PI.png
Affichages : 397
Taille : 52,8 Ko
    mais la graphie du caractère grec n'est vraiment pas réussie, et prête à confusion.

    La solution graphique que tu proposes, bien que conforme à la lettre de l'énoncé, me paraît aberrante: une parenté de forme entre le nuage de points et la frontière cherchée me semble aller de soi, on peut sinon obtenir n'importe quoi. Mais c'est peut-être là un point de vue trop restreint.

  12. #12
    Membre Expert

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 591
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 591
    Par défaut
    Bonjour wiwaxia,

    Citation Envoyé par wiwaxia Voir le message
    C'était bien la bonne expression 2.k.Pi/N
    Même en gros, j'ai du mal à reconnaître PI mais j'aurais du y penser car, à défaut, il y aurait eu deux variables k et n. Mea culpa .

    Citation Envoyé par wiwaxia Voir le message
    ...La solution graphique que tu proposes, bien que conforme à la lettre de l'énoncé, me paraît aberrante: une parenté de forme entre le nuage de points et la frontière cherchée me semble aller de soi, on peut sinon obtenir n'importe quoi...
    Si je comprends bien, tu partirais de l'ellipse minimale des 100% que tu réduirais progressivement sans la déplacer ni la tourner (sinon tu pourrais retomber sur le genre de solution du dessin).

    Cela montre que le problème mériterait d'être précisé. Si chacun cherche une solution à des problèmes voisins mais subtilement différents, on peut discuter et s'amuser longtemps en vain

    Salut

  13. #13
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Ellipse autour de points
    Citation Envoyé par Guesset Voir le message
    ... Si je comprends bien, tu partirais de l'ellipse minimale des 100% que tu réduirais progressivement sans la déplacer ni la tourner (sinon tu pourrais retomber sur le genre de solution du dessin) ...
    C'est effectivement cela. Et dans le cas d'un nuage "normal" en forme de cigare, dépourvu de lacunes, le procédé a l'avantage de conduire rapidement à une solution.
    Et rien n'empêche de se limiter d'emblée aux (N') points les plus proches du barycentre, pour un meilleur ajustement.

    J'ai peut-être tort d'envisager le problème sous le biais de la statistique; cependant envisager les configurations les plus inattendues conduit inéluctablement à un balayage multiple, une ellipse quelconque étant caractérisée par les coordonnées de son centre, l'inclinaison de son grand axe et son excentricité - soit en tout 4 variables.

    Intervient de plus la question du critère de comparaison: comment distinguer la plus petite de deux ellipses ?
    Par son périmètre (à rejeter d'emblée !), son aire ? Ou par la somme des distances aux foyers (MF1 + MF2) ?
    L'énoncé aurait pu effectivement donner plus de précisions ...

  14. #14
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 344
    Par défaut
    j'ai trouvé cet article : http://ada-posturologie.fr/EllipseConfiance.htm

    mon article fait-il avancer la discussion ?

  15. #15
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 202
    Par défaut
    Non, même si tes données vérifient des conditions dont tu n'as pas parlé.

    Si je ne m'abuse, cet article traite des données où il y a corrélation linéaire entre les 2 axes (par exemple des individus, pour lesquels on aurait mesuré la taille et le poids, ou des appartements, avec le prix et la surface).
    Les points sont donc plus ou moins sur un nuage de forme d'ellipse.
    Si tes points sont totalement quelconques (par exemple 2 paquets assez espacés, ou en forme en V, ou en T ...), ça ne marche pas du tout.

    De plus, c'est une approche probabiliste. C'est à dire qu'on part de 2 ou 3 indicateurs synthétiques (la moyenne, la variance, la covariance) et on en déduit l'ellipse.
    L'ellipse obtenue peut contenir moins de 90% des points, et elle peut aussi être un peu plus grande que l'ellipse minimale.
    Il faudrait vraiment un coup de chance énorme (=impossible) pour que l'ellipse obtenue contienne 90% des données, et soit l'ellipse minimale.

  16. #16
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 344
    Par défaut
    donc la bonne réponse est celle de :
    11/11/2022, 16h07
    wiwaxia

    ?

    mais je ne comprends pas du tout son algo, ça me dépasse !
    moi ce que je veux c'est un algo qui prend en entrée une suite de points (x,y) et le pourcentage de points attendu à l'intérieur de l'ellipse et qui nous donne en sortie les paramètres d'une ellipse
    je pense qu'on peut dire que le minimum de points à fournir est trois points

    je viens de trouver cet article aussi :
    https://www.ngs.noaa.gov/PUBS_LIB/Al...OS107_CGS3.pdf

  17. #17
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Ellipse autour de points
    Soit un nuage de (N) points, de coordonnées barycentriques
    xG = Σj=0N-1xj , yG = Σj=0N-1yj ,
    à partir desquelles on peut calculer les sommes:
    Sx2 = Σj=0N-1(xj - xG)2 , Sy2 = Σj=0N-1(yj - yG)2 , Sxy = Σj=0N-1(xj - xG)(yj - yG) .

    L'étalement du nuage de points selon une direction donnée de vecteur unitaire u = (Cos(θ), Sin(θ)) est mesuré par la somme des carrés des produits scalaires:
    S(θ) = Σj=0N-1(u.GMj)2 = Σj=0N-1(Cos(θ)*(xj - xG) + Sin(θ)*(yj - yG))2
    = Cos(θ)2Sx2 + Sin(θ)2Sy2 + 2Sin(θ)Cos(θ)Sxy .

    Cette somme, qui dépend de (θ), admet pour dérivée:
    S'(θ) = 2Sin(θ)Cos(θ)(Sy2 - Sx2) + 2(Cos(θ)2 - Sin(θ)2)Sxy = Sin(2θ)(Sy2 - Sx2) + 2Cos(2θ)Sxy ,
    et ses extremums sont caractérisés par l'annulation de cette dernière fonction, l'égalité S'(θ) = 0 impliquant:
    Tan(2θ) = 2Sxy/(Sx2 - Sy2) = T (par convention),
    soit encore
    2θ = Arctan(T) + kπ (avec k = 0 ou 1) ,
    ce qui conduit à deux directions orthogonales:
    θ1 = (1/2)Arctan(T) et θ2 = (1/2)Arctan(T) + π/2 .
    L'égalité Sy2 = Sx2 , peu probable quoique non exclue, correspondrait à un nuage de forme circulaire, dépourvu de tout allongement.

    Dans le repère (XGY) utilisant les deux axes ainsi définis, on peut associer au nuage de points l'ellipse d'équation
    X2/Sx2 + Y2/Sy2 = 1 :
    le retour aux anciennes coordonnées s'effectue par l'intermédiaire des équations:
    x = xG + X.Cos(θ) - Y.Sin(θ) , y = yG + X.Sin(θ) + Y.Cos(θ) (avec θ = θ1) ,
    d'où l'expression des nouvelles:
    X = (x - xG)Cos(θ) + (y - yG).Sin(θ) , Y = -(x - xG).Sin(θ) + (y - yG).Cos(θ) .

    Ainsi toute famille d'ellipses coaxiales à la précédente et de même forme admettra pour équation générale
    X2/Sx2 + Y2/Sy2 = λ2 ;
    leurs demi-diamètres restant toujours dans le même rapport:
    B'/A' = λB/λA = B/A = (Sy2/Sx2)1/2 .
    Citation Envoyé par Flodelarab
    Une chose est certaine, il y a 2 phases indépendantes :
    Fixer la frontière, c'est-à-dire le nombre de points (qu'il soit "strictement égal" ou "au moins égal"). Cette phase est purement arithmétique. Et "facile".
    Déterminer l'ellipse et les points intérieurs. Moins facile.
    Il suffira de consigner toutes les valeurs de (λ) ou (λ2) dans un tableau, et de trier celui-ci selon l'ordre croissant: la réponse sera immédiate.

    Calculs à vérifier.

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

Discussions similaires

  1. Supprimer espaces autour du point médian
    Par doublegadobax dans le forum Mise en forme
    Réponses: 3
    Dernier message: 28/10/2016, 11h02
  2. Approximation d'Ellipse par des points
    Par Arkhemval dans le forum Langage
    Réponses: 3
    Dernier message: 17/05/2016, 20h38
  3. Déterminer automatiquement zone de buffer autour de points
    Par LEK dans le forum SIG : Système d'information Géographique
    Réponses: 1
    Dernier message: 22/11/2014, 21h12
  4. Calcul rayon d'une ellipse (distance centre-point sur cercle)
    Par aristeas dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 19/01/2007, 11h37
  5. Rotation autour d'un point
    Par Webhellfire dans le forum OpenGL
    Réponses: 1
    Dernier message: 10/01/2006, 18h21

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