Équidistance

Le point équidistant de trois points coplanaires mais quelconques est le centre du cercle passant par ces trois points. Que peut-on dire quand il y a quatre points? Ou plus?

Réponses

  • Est-ce que le quatrième point est à la même distance du centre du cercle circonscrit au triangle formé par les trois premiers ? Parfois oui, parfois non. Autrement dit, est-ce que les quatre points sont sur un même cercle ? On peut le dire sans faire apparaître le centre du cercle avec une condition d'angle (orienté de droites) : $(CA,CB)=(DA,DB)$.
  • JLT
    JLT
    Modifié (June 2023)
    Pour toute partie compacte du plan, il existe un et un seul disque de rayon minimal la contenant. Il serait intéressant de trouver une construction géométrique du centre dans le cas où la partie compacte est un ensemble de quatre points.
  • En fait je  cherche une équation analytique des coordonnées du point pour lequel la différence entre deux distances parmi les quatre est minimale.
    Merci de votre aide
  • Bonjour,

    Soit $ABCD$ un quadrilatère plan (convexe, quitte à renommer les points).
    On a $\widehat{A}+\widehat{B}+\widehat{C}+\widehat{D}=2\pi$, donc soit $\widehat{A}+\widehat{C}\leq\pi$, soit $\widehat{B}+\widehat{D}\leq\pi$.
    Alors, il y a forcément un des quatre points qui est situé à l'intérieur du cercle passant par les trois autres.

    Cordialement,
    Rescassol
      
  • Vassillia
    Modifié (June 2023)
    Bonjour
    Si tu cherches à minimiser l'écart entre le cercle et l'ensemble des points, je te suggère de t'intéresser à la régression circulaire https://fr.wikipedia.org/wiki/R%C3%A9gression_circulaire
    J'aurais tendance à te conseiller la méthode linéaire de Kasa et Coope qui a le moins d'hypothèse sur la distribution des données, tu peux utiliser le logiciel R avec ce compilateur en ligne https://www.mycompiler.io/fr/new/r et le code suivant où tu devras bien sur remplacer les valeurs dans x et y par tes valeurs
    x=c(0.8, 3.3, 5.6, 7.5, 6.4, 4.4, 0.3, -1.1) #abscisses des points
    y=c(4.1, 4.7, 4.0, 1.3, -1.1, -3.0, -2.5, 1.3) #ordonnée des points
    plot(x, y, col='blue') #trace l'ensemble des points de coordonnées (x,y)
    donnees <- data.frame(x, y)
    cercle <- lm(I(x^2 + y^2) ~ x + y, donnees) #régression circulaire qui permet de trouver les coefficients e0,e1 et e2 tel que (x^2+y^2)=e0+e1*x+e2*y
    xc <- coef(cercle)[2]/2 #calcul de l'abscisse du centre
    yc <- coef(cercle)[3]/2 #calcul de l'ordonnée du centre
    r <- sqrt(coef(cercle)[1] + xc^2 + yc^2) #calcul du rayon
    print(xc) ; print(yc) ; print(r) #affiche les coordonnées du centre et du rayon

    theta <- seq(0, 2*pi, len = 40) #paramétrage pour des coordonnées polaires
    xmodcercle <- xc + r*cos(theta)
    ymodcercle <- yc + r*sin(theta)
    lines(xmodcercle, ymodcercle, col='red') #trace le cercle trouvé
    In mémoriam de tous les professeurs assassinés dans l'exercice de leurs fonctions en 2023, n'oublions jamais les noms de Agnes-Lassalle et Dominique-Bernard qui n'ont pas donné lieu aux mêmes réactions sur ce forum (et merci à GaBuZoMeu)
  • Rescassol
    Modifié (June 2023)
    Bonjour,

    Voilà un programme Python écrit il y a quelque temps.
    ###################################################################
    # Régression circulaire aux moindres carrés - Rescassol - Mars 2020
    ###################################################################
    # Importations
    ###################################################################
    
    import numpy as np
    import numpy.linalg as la
    
    import matplotlib.pyplot as plt
    
    ###################################################################
    # Fonctions
    ###################################################################
    
    def maxfig():
        mng = plt.get_current_fig_manager()
        mng.window.showMaximized()
    
    ###################################################################
    
    def init1(N):
        T=2*np.pi*np.random.rand(N)
        X=x0+R*np.cos(T)
        Y=y0+R*np.sin(T)
        perturbMax=0.2
        perturbX=perturbMax*(2*np.random.rand(N)-1)
        perturbY=perturbMax*(2*np.random.rand(N)-1)
        # X*=1+perturbX # variante proportionnelle
        # Y*=1+perturbY
        X+=perturbX # variante constante
        Y+=perturbY
    
        return X,Y
    
    def init2(N):
        X=np.random.rand(N)
        Y=np.random.rand(N)
    
        return X,Y
    
    def init3():
        Tab1=[1,0,-1,-2,-1,2,2,1,-1]
        Tab2=[-1,-1,-1,-1,2,5,3,-2,-10]
        Tab3=[-3,-2,6,6,1,9,-3,-7,-8]
        Tab4=[-8,10,6,8,-5,-12,7,-7,7]
        Tab5=[1,-3,10,1,-6,-2,-10,-3,2]
        Tab6=[9,-3,14,-8,0,-7,9,3,-4]
        Tab7=[-10,-7,12,7,2,-12,-4,-2,5]
        Tab8=[0,1,-7,7,-4,12,-6,3,-6]
    
        Tab = Tab1+Tab2+Tab3+Tab4+Tab5+Tab6+Tab7+Tab8
        Rac = np.roots(Tab)
        X, Y =np.real(Rac), np.imag(Rac)
    
        return X,Y,len(Tab)-1
    
    def RegressionCirculaire(X,Y):
        n=len(X)
        D11=n*sum(X*Y)-sum(X)*sum(Y)
        D20=n*sum(X**2)-sum(X)**2
        D02=n*sum(Y**2)-sum(Y)**2
        D30=n*sum(X**3)-sum(X**2)*sum(X)
        D03=n*sum(Y**3)-sum(Y**2)*sum(Y)
        D21=n*sum(X**2*Y)-sum(X**2)*sum(Y)
        D12=n*sum(X*Y**2)-sum(X)*sum(Y**2)
    
        M=np.array([(D20,D11),(D11,D02)])
        B=np.array([(D30+D12)/2,(D03+D21)/2])
        C=la.solve(M,B)
        c=(sum(X**2)+sum(Y**2)-2*C[0]*sum(X)-2*C[1]*sum(Y))/n
        R=np.sqrt(c+C[0]**2+C[1]**2)
    
        return C[0],C[1],R
    
    ###################################################################
    # Script principal de test
    ###################################################################
    
    x0, y0, R, n = 1.0, 1.0, 1.0, 1000
    X,Y=init1(n)
    
    plt.close('all')
    fig=plt.figure(linewidth=10,facecolor = 'gold',edgecolor='red')
    plt.axis('equal')
    plt.plot(X,Y,'ob',markersize=5)
    plt.title('Régression circulaire', fontsize=30, fontweight='bold', color='m')
    plt.xlabel('Nombre de points = '+str(n), fontsize=30, fontweight='bold', color='m')
    
    p=3
    a,b,r = RegressionCirculaire(X,Y)
    print('Cercle(['+str(round(a,p))+','+str(round(b,p))+'],'+str(round(r,p))+')')
    T=np.linspace(0.0,2*np.pi,n)
    X=a+r*np.cos(T)
    Y=b+r*np.sin(T)
    plt.plot(X,Y,'r',linewidth=3)
    
    maxfig()
    plt.show()
    Cordialement,
    Rescassol
  • Merci, je vais m'y atteler. Mais j'aurais mieux aimé une équadif. Amitiés à tous.
  • Bonjour à tous
    On pourrait s'intéresser aussi à l'ellipse de plus petite excentricité (la plus "proche" d'un cercle) passant par les quatre points
    Je me souviens que Poulbot avait donné une construction fort brillante de cette ellipse!
    Amicalement
    pappus
  • Vassillia
    Modifié (June 2023)
    Ceux qui s'y intéressent pourraient le faire sur la discussion initiale https://les-mathematiques.net/vanilla/index.php?p=discussion/comment/858579 que j'ai retrouvé pour l'occasion.
    In mémoriam de tous les professeurs assassinés dans l'exercice de leurs fonctions en 2023, n'oublions jamais les noms de Agnes-Lassalle et Dominique-Bernard qui n'ont pas donné lieu aux mêmes réactions sur ce forum (et merci à GaBuZoMeu)
  • Aire ou excentricité minimale ?
  • lourrran
    Modifié (June 2023)
    Tu dis que tu veux des equa-diff, mais peut-être qu'on peut les trouver ces équa-diff.

    Tu as 4 points $M_i(x_i,y_i)$. En fait, a priori on peut généraliser à $n$ points ($n \ge 4$), sans rien changer à la difficulté de l'exercice.  
    Tu cherches un point $C_0(x_0,y_0)$ qui sera le centre du cercle, et un rayon $r_0$ 

    On sait calculer la distance $d(M_i,C_0)=\sqrt{(x_i-x_0)^2+(y_i-y_0)^2}$
    Et on sait calculer l'écart entre cette distance et $r_0$ : $\varepsilon_i = |r_0-\sqrt{(x_i-x_0)^2+(y_i-y_0)^2}|$

    Là , il faut certainement faire des choix, et/ou des impasses. Si tu cherches $(x_0,y_0, r_0)$ pour minimiser $\Sigma_i { \varepsilon_i}$ ou pour minimiser $\Sigma_i { \varepsilon_i^2}$ , ou pour minimiser $\max_i { \varepsilon_i^2}$ ,
    il y a peut-être certains de ces problèmes qui correspondent un peu mieux à ton besoin mais qui mènent des calculs trop compliqués, contre d'autres formulations du problème très légèrement différentes, mais atteignables.
    Mais de toutes quand on cherche à minimiser un certain total, et que ce total est une fonction dérivable de $(x_0,y_0, r_0)$, ça revient (dans un premier temps) à chercher un triplet où les 3 dérivées partielles s'annulent. En principe, ce point (unique) correspond à un minimum, et pas un maximum, si le problème a bien été posé au départ.

    J'ai repris l'expression équa-diff, parce que tu l'employais, mais je pense qu'elle est inadaptée.  Cette méthode fait intervenir des dérivées, mais ce n'est pas du tout ce qu'on appelle des équa-diff. Et tu peux prendre le problème comme tu veux, tu n'arriveras pas à des équa-diff. C'est un tout autre domaine.
    Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. Benjamin Franklin
  • Vassillia
    Modifié (June 2023)
    @Math Coss Tu trouveras les deux dans le lien que j'ai mis car on y trouve la référence à un article http://archive.numdam.org/item/NAM_1845_1_4__480_0.pdf qui caractérise l'ellipse s'écartant le moins du cercle, problème résolu en 1845, vraisemblablement pas par Poulbot, mais je ne veux pas divulgâcher.
    Edit : En fait tu as raison, la discussion initiale était celle-là https://les-mathematiques.net/vanilla/index.php?p=discussion/comment/856295 puisqu'elle parle spécifiquement de l'excentricité et annonce la future discussion avec l'aire.
    In mémoriam de tous les professeurs assassinés dans l'exercice de leurs fonctions en 2023, n'oublions jamais les noms de Agnes-Lassalle et Dominique-Bernard qui n'ont pas donné lieu aux mêmes réactions sur ce forum (et merci à GaBuZoMeu)
Connectez-vous ou Inscrivez-vous pour répondre.