Hi
je souhaite en dim2 trouver le cercle qui fit au mieux un ensemble de points (environ une dizaine de points), avez vous une suggestion ?
-----
Hi
je souhaite en dim2 trouver le cercle qui fit au mieux un ensemble de points (environ une dizaine de points), avez vous une suggestion ?
Hello,
"Hi", "fit" t'es anglophone ?
je n'ai pas compris la question...
et je crois que d'autres, plus compétents que moi, sauront y répondre.
Shokin
Pardon, humilité, humour, hasard, tolérance, partage, curiosité et diversité => liberté et sérénité.
Salut,
j'essaye de reformuler:
j'ai une dizaine de points dans un plan qui sont à peu près positionnés sur un cercle.
Comment trouver le cercle (position du centre et rayon) qui minimise l'écart de distance entre le cercle recherché et points ?
Y a t'il quelqu'un qui puisse m'aider sur ce problème très concret ?
A++
Salut,
ton nuage de points s'étend effectivement autour d'un cercle complet ou seulement autour d'un demi-cercle?
Salut,
autour d'un cercle complet.
merci de ton aide.
A++
R²
Ben à priori, je dirais :
tes points sont situés dans un repère orthonormé (2D, 3D, ou plus si tu aimes)
soit X le centre du cercle que tu recherches
soient A1, A2, ..., An les n points dont X "doit être le plus rapproché possible".
Tu calcules la distance entre X et chacun des Ai, la norme de chaque vecteur.
Tu fais la somme des distances, ce qui donne une fonction en fonction de x1 et x2.
Puis tu cherches à minimiser cette fonction, par ses dérivées...
Shokin
Pardon, humilité, humour, hasard, tolérance, partage, curiosité et diversité => liberté et sérénité.
Suis-je bête !
pourquoi pas tout simplement le centre de gravité de ces points.
Les coordonnées du X recherché sont respectivement les moyennes arithmétiques des coordonnées des Ai, tout bête, non ?
Shokin
Pardon, humilité, humour, hasard, tolérance, partage, curiosité et diversité => liberté et sérénité.
je suis effectivement parti sur la minimisation de la somme des distances inter (centre du cercle) / (points) pour une démonstration mathematique rigoureuse.
Quant au barycentre, je me dis qu'il faut la condition d'avoir des points uniforméments répartis sur le cercle, ce qui n'est pas forcément mon cas.
Sinon, de façon plus pratique, je vais essayer la méthode suivante:
1. je prends toutes les combinaisons de 3 points (il n'y en a pas 1 million)
2. je trouve pour chaque combinaison le cercle (unique) id est, centre et rayon
3. je trouve le barycentre de ces centres de cercles, y doit pas être trop loin de la vérité.
Evidemment, ce n'est pas très mathématique, mais c'est tous ce que j'ai trouvé de plus rapide à présent.
A++
R²
Attention s'il y a un peu de "bruit" tu risque d'avoir des points presque alignes dont le centre peut etre n'importe ou, ce qui va fausser completement le barycentre. Mais peut-etre qu'en choisissant des triplets de points convenables la methode peut marcher. Par exemple : pour chaque point x, tu prend le point y le plus loin de x, et le point z le plus loin de la droite xy, et tu calcules le centre du cercle circonscrit a xyz. Ca devrait etre un peu plus rapide et donner des centres plus fiables.Envoyé par romromje suis effectivement parti sur la minimisation de la somme des distances inter (centre du cercle) / (points) pour une démonstration mathematique rigoureuse.
Quant au barycentre, je me dis qu'il faut la condition d'avoir des points uniforméments répartis sur le cercle, ce qui n'est pas forcément mon cas.
Sinon, de façon plus pratique, je vais essayer la méthode suivante:
1. je prends toutes les combinaisons de 3 points (il n'y en a pas 1 million)
2. je trouve pour chaque combinaison le cercle (unique) id est, centre et rayon
3. je trouve le barycentre de ces centres de cercles, y doit pas être trop loin de la vérité.
Evidemment, ce n'est pas très mathématique, mais c'est tous ce que j'ai trouvé de plus rapide à présent.
A++
R²
Salut,
pourquoi ne pas exprimer les points en coordonnées polaires et appliquer une régression linéaire de manière à avoir une droite de corrélation proche de r=1?
Salut,
la méthode de passer en polaire ne semble fonctionner que si le cercle est centré, ce qui n'est pas mon cas (qui est général)
Quoiqu'il en soit, je pense avoir trouvé grâce à vos conseils, j'ai minimisé la fonction définie par la somme sur k (k étant les points) de : ((x-xk)² + (y-yk)² -R²)² pour les 3
paramètres x,y et R avec Mathematica.
ça fonctionne plutôt bien.
Merci à tous pour votre aide
A++
R²
Mais quel centre choisir?Envoyé par martini_birdSalut,
pourquoi ne pas exprimer les points en coordonnées polaires et appliquer une régression linéaire de manière à avoir une droite de corrélation proche de r=1?
Autre idee : on pourrait faire une inversion par rapport a un des points et faire une regression lineaire sur les points inverses. En effet, l'inversion par rapport a un point p (i.e on envoie x sur x/||x||^2) transforme les cercles passant par p en des droites. Mais quelque chose me dit que la droite va etre tres bruitee vers l'infini, ce qui risque de peser lourd dans la regression, a moins de ponderer les points en fonction de leur distance au centre. Je serait curieux de voir ce que ca donne, mais je penche quand meme pour la methode des cercles circonscrits.
Salut,
désolé, je n'avais pas pensé qu'un cercle puisse avoir un centre autre que l'origine!