[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 76

 
Mathemat:

On peut toujours tracer une seule perpendiculaire à une ligne. Cela indiquera la distance entre le point et la ligne.

Il y a presque toujours deux "distances" à un cercle à partir d'un point donné :


Du point A au cercle, dans ce cas, ce sont AB et AC. Et lequel choisir comme le "bon" n'est pas évident.

Si vous résolvez un problème de minimisation, vous pouvez choisir le minimum des deux. Je semble avoir tiré des conclusions un peu trop rapidement. Je vais maintenant reformuler le problème et écrire un algorithme de solution, environ 5-10 minutes.
 
alsu:
Les solutions peuvent provenir de plus d'une, voire d'un nombre infini. Une clarification des conditions est nécessaire.
Trouvez les coordonnées du centre du cercle, où la distance de trois points au cercle est la PLUS PETITE. Le mot SAMOYE signifie qu'il n'y a pas d'autre option, où cette distance est "encore plus minime". C'est la seule solution.
 
alsu: Si vous résolvez un problème de minimisation, vous pouvez choisir le minimum des deux.
Minimisation de quelle somme - la somme des distances ou la somme des carrés? Je n'ai toujours pas eu de réponse de l'auteur.
 
atztek:
MT4 peut facilement vous donner Ask=1.456121212 au lieu de 1.4561, mais il (il ne joue un rôle que lorsqu'il travaille avec des ordres) ne peut pas "comprendre" ce qu'il a fait.
Pour y remédier, nous utilisons la fonction (exemple pour Ask) :

NormalizeDouble(Ask, Digits)

Ainsi, toutes les valeurs qui sont substituées dans les fonctions de commande doivent être normalisées avant d'être envoyées au serveur.

Pas toutes les valeurs, mais les valeurs de prix - prix de fixation de l'ordre en suspens, prix d'ouverture de la position sur le marché, StopLoss et TakeProfit.

Sinon, nous risquons de le comprendre de manière trop directe et de le normaliser ... Commentaire par exemple :)

 
Mathemat:
Minimiser quelle somme - la somme des distances ou la somme des carrés? Je n'ai toujours pas eu de réponse de l'auteur.

 
Mathemat:

On peut toujours tracer une seule perpendiculaire à une ligne. Cela indiquera la distance entre le point et la ligne.

Il y a presque toujours deux "distances" à un cercle à partir d'un point donné :


Du point A au cercle, dans ce cas, ce sont AB et AC. Et lequel choisir comme le "bon" n'est pas évident.


Bien sûr AB.
 

Elena, si la somme des distances, cela ne fonctionnera pas sans méthodes numériques. Il n'existe pas de solution analytique dans la plupart des cas (sans compter le cas presque impossible où un cercle d'un rayon donné peut être dessiné exactement par trois points).

Elenn: Bien sûr AB.

Bien sûr, AB, qui peut discuter - avec le dessin dessiné.

Imaginez ce qui se passera si vous essayez de résoudre le problème par de petits mouvements circulaires entre ces trois points. Ce même "bien sûr AB" va continuer à sauter d'une "branche" à l'autre. OK, voyons comment Alexey s'en sort.

 

Donc, la condition sous une forme digeste :

Étant donné N points divergents par paire dans le plan. Le problème est de trouver, pour trois points quelconques de l'ensemble, un cercle dont la somme des carrés des distances aux trois points donnés serait minimale. Choisissez ensuite parmi tous les cercles C(N,3) celui ou ceux pour lesquels la somme des carrés des distances aux points "amis" est plus petite que les autres.

Solution.

Les distances minimales d'un point donné à un cercle peuvent être calculées assez simplement. Si dans le dessin d'Alexis les coordonnées du point A sont (xA,yA) et les coordonnées du centre du cercle sont (x0,y0) alors

d = |r - sqrt((xA-x0)^2 + (yA-y0)^2)|,

où r est le rayon du cercle, et cette expression est correcte à la fois pour les points A situés à l'extérieur et à l'intérieur du cercle. Pour trois points, nous avons trois équations de ce type, chacune ayant trois paramètres inconnus (xA, yA, r). En différentiant la somme de trois d par chacune d'elles, on obtient trois équations, dont la résolution permet de trouver les paramètres requis.

La dernière étape consiste à calculer la somme correspondante pour chaque triplet et à choisir le minimum.

D'ailleurs, en raison de la non-linéarité des équations, je conseille de résoudre le problème numériquement, il n'y a rien à faire avec l'analytique.

 

La complexité du problème augmente rapidement au fur et à mesure que N augmente, car il faut calculer et énumérer N*(N-1)*(N-2)/6 cercles (56 dans le cas de N=8)

 
alsu: La complexité du problème augmente rapidement lorsque N augmente, car il faut calculer et énumérer N*(N-1)*(N-2)/6 cercles (56 dans le cas de N=8).
Oh, où avez-vous eu ce N ! / ((N-3)*3 !) ) provenaient ?