Cercle le plus proche de n points
Bonjour,
J'ai un problème un peu particulier et je ne sais pas par quel bout l'attaquer.
Je cherche à déterminer le centre d'un cercle passant par n points mais avec un rayon donné. Je ne cherche pas le rayon passant au mieux, mais le centre [x,y] du rayon R passant au plus près de mes points. Avec 2 points c'est assez simple mais à partir de 3, je ne vois pas comment procéder. Si vous avez une piste à me proposer, je vous en remercie par avance.
Cordialement.
J'ai un problème un peu particulier et je ne sais pas par quel bout l'attaquer.
Je cherche à déterminer le centre d'un cercle passant par n points mais avec un rayon donné. Je ne cherche pas le rayon passant au mieux, mais le centre [x,y] du rayon R passant au plus près de mes points. Avec 2 points c'est assez simple mais à partir de 3, je ne vois pas comment procéder. Si vous avez une piste à me proposer, je vous en remercie par avance.
Cordialement.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Que signifie "au plus près". La somme des distances au cercle ? La somme des carrés des distances au cercle (cercle d'ajustement des moindres carrés) ? Autre chose ?
Et pourquoi "le centre" ? Il y a à priori plusieurs cercles, non ?
Nb : Tu devrais modifier ton titre, puisque ton cercle ne passe pas par les points.
Cordialement.
Si on veut vraiment simplifier les calculs, commencer par faire $R=0$ pour voir ce que cela donne avec une définition raisonnable de la proximité.
Amicalement
[small]p[/small]appus
Pourquoi le centre, car je connais déjà son rayon, c'est mon paramètre fixe.
Je demande cela, car dans le cadre de mon travail, nous usinons des pièces de forme cylindrique. La trajectoire de l’outil est codée en dur par des petits segments qui décrivent un cercle. Je ne peux donc pas modifier la valeur du rayon décrit. Je ne peux que déplacer le centre du rayon pour effectuer une correction. J’ai tenté une approche par justement la méthode des moindres carrés mais le résultat me donne qu’à moitié satisfaction. Je « trouve » effectivement les coordonnées du centre mais aussi le rayon théorique. De plus, je travaille sur des rayons assez grand (+600mm) mais avec une courte longueur d’arc (+/-50mm). Les valeurs de corrections que j’obtiens sont « aberrantes » d’un point de vue machine. Je voudrais donc coller à la réalité en fixant mon rayon et de le positionner « au mieux » pour coller à mes points de contrôle et en trouver son centre.
Cordialement.
[Jean Jacquelin vient sur le forum avec le pseudo 'JJ'. AD]
Cordialement.
Autre suggestion : considérer la grandeur \[\sum_{k=1}^r\bigl((x_k-b)^2+(y_k-c)^2-R^2\bigr)^2\] comme le potentiel d'un point $(b,c)=(b(t),c(t))$ et résoudre numériquement les équations de la mécanique : le point devrait s'approcher du ou d'un minimum (elle est convexe, cette fonction ?).
Cordialement.
Et pourquoi pas le barycentre du nuage de points ?
Je vais tenter une approche similaire a votre proposition JTL.
Je vais programmer des boucles qui balayent une zone en [x,y] avec un pas grossier et chercher celles qui minimise la somme des distances.
Ensuite rebalayer autour de ces coordonnées avec un pas de plus en plus fin jusqu’à la précision voulue.
Édite: Je retombe exactement sur votre formule Math Coss, merci encore!
Par hasard je suis tombé sur cette discussion. Avec mes excuses pour cette réponse tardive,
Voici une méthode pour calculer approximativement les coordonnées du centre du cercle. Si plus de précision était nécessaire, il faudrait mieux spécifier les critères d'optimisation et procéder par itération comme cela a été évoqué dans la discussion.
La méthode suivante (en page jointe) est une adaptation de la méthode de régression circulaire donnée pp.11-13 dans l'article :
https://fr.scribd.com/doc/14819165/Regressions-coniques-quadriques-circulaire-spherique :
On verra aisément en quoi consiste cette adaptation par rapport à la méthode originelle.
L'exemple numérique est volontairement limité à un faible nombre de points ne décrivant qu'une petite partie du cercle et avec une forte dispersion. Ceci afin d'illustrer la robustesse du procédé.
PS. : Bonjour et merci à gerard0. Son message (dans la discussion suivant la question) a attiré mon attention sur ce problème.