[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 76

 
Mathemat:

Si può sempre disegnare una sola perpendicolare a una linea. Questo indicherà la distanza dal punto alla linea.

Ci sono quasi sempre due "distanze" di un cerchio da un dato punto:


Dal punto A al cerchio in questo caso sono AB e AC. E quale scegliere come quello "corretto" non è ovvio.

Se state risolvendo un problema di minimizzazione, potete scegliere il minimo dei due. Sembra che io sia saltato alle conclusioni un po' troppo in fretta. Ora riformulo il problema e scrivo un algoritmo di soluzione, circa 5-10 minuti.
 
alsu:
le soluzioni possono nascere da più di una, se non da un numero infinito. È necessario un chiarimento delle condizioni.
Trova le coordinate del centro del cerchio dove la distanza di tre punti dal cerchio è MINORE. La parola SAMOYE significa che non c'è altra opzione, dove questa distanza è "ancora più minima". Questa è l'unica soluzione.
 
alsu: Se state risolvendo un problema di minimizzazione, potete scegliere il minimo dei due.
Minimizzazione di quale somma - la somma delle distanze o la somma dei quadrati? Non ho ancora avuto notizie dall'autore.
 
atztek:
MT4 può facilmente darvi Ask=1.456121212 invece di 1.4561, ma esso (gioca solo un ruolo quando si lavora con gli ordini) non può "capire" ciò che ha fatto.
Per risolverlo, usiamo la funzione (esempio per Ask):

NormalizeDouble(Ask, Digits)

Quindi, tutti i valori che sono sostituiti nelle funzioni di ordine dovrebbero essere normalizzati prima di inviarli al server.

Non tutti i valori, ma i valori di prezzo - prezzo di impostazione dell'ordine pendente, prezzo di apertura della posizione di mercato, StopLoss e TakeProfit.

Altrimenti potremmo capirlo in modo troppo diretto e normalizzarlo... Commento per esempio :)

 
Mathemat:
Minimizzare quale somma - la somma delle distanze o la somma dei quadrati? Non ho ancora avuto notizie dall'autore.

 
Mathemat:

Si può sempre disegnare una sola perpendicolare a una linea. Questo indicherà la distanza dal punto alla linea.

Ci sono quasi sempre due "distanze" di un cerchio da un dato punto:


Dal punto A al cerchio in questo caso sono AB e AC. E quale scegliere come quello "corretto" non è ovvio.


Naturalmente AB.
 

Elena, se la somma delle distanze, non funzionerà senza metodi numerici. Non esiste una soluzione analitica nella maggior parte dei casi (senza contare il caso quasi impossibile in cui un cerchio di un dato raggio può essere disegnato esattamente attraverso tre punti).

Elenn: Naturalmente AB.

Naturalmente, AB, chi può discutere - con il disegno disegnato.

Immaginate cosa succederà quando proverete a risolvere il problema con piccoli movimenti circolari tra questi tre punti. Questo stesso "naturalmente AB" continuerà a saltare da un "ramo" all'altro. Ok, vediamo come se la cava Alexey .

 

Quindi, la condizione in forma digeribile:

Dati N punti divergenti a coppie nel piano. Il problema è trovare per qualsiasi tre punti dell'insieme un cerchio la cui somma dei quadrati delle distanze dai tre punti dati sarebbe minima. Poi scegliete tra tutti i cerchi C(N,3) quello(i) per il quale la somma dei quadrati delle distanze dai punti "amici" è minore degli altri.

Soluzione.

La minima delle distanze da un dato punto a un cerchio può essere calcolata molto semplicemente. Se nel disegno di Alexis le coordinate del punto A sono (xA,yA) e le coordinate del centro del cerchio sono (x0,y0) allora

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

dove r è il raggio del cerchio, e questa espressione è corretta sia per i punti A che si trovano all'esterno che all'interno del cerchio. Per tre punti abbiamo tre equazioni di questo tipo, ciascuna con tre parametri incogniti (xA, yA, r). Differenziando la somma di tre d per ciascuno di essi, otteniamo tre equazioni, risolvendo le quali troviamo i parametri richiesti.

L'ultimo passo è quello di calcolare la somma corrispondente per ogni tripletta e scegliere quella minima.

A proposito, a causa della non linearità delle equazioni consiglio di risolvere il problema numericamente, non c'è niente da fare con l'analitica.

 

La complessità del problema aumenta rapidamente all'aumentare di N, perché richiede il calcolo e l'enumerazione di N*(N-1)*(N-2)/6 cerchi (56 nel caso di N=8)

 
alsu: La complessità del problema aumenta rapidamente all'aumentare di N, perché è necessario calcolare ed enumerare N*(N-1)*(N-2)/6 cerchi (56 nel caso di N=8)
Oh, dove hai preso quel N! / ((N-3)*3! ) proveniva da?