[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 76

 
Mathemat:

Siempre se puede dibujar una sola perpendicular a una línea. Esto indicará la distancia del punto a la línea.

Casi siempre hay dos "distancias" a un círculo desde un punto determinado:


Desde el punto A al círculo en este caso son AB y AC. Y cuál elegir como la "correcta" no es evidente.

Si estás resolviendo un problema de minimización, puedes elegir el mínimo de los dos. Parece que he sacado conclusiones demasiado rápido. Ahora reformularé el problema y escribiré un algoritmo de solución, unos 5-10 minutos.
 
alsu:
las soluciones pueden surgir de más de una, si no de un número infinito. Es necesario aclarar las condiciones.
Encuentra las coordenadas del centro del círculo, donde la distancia de tres puntos al círculo es la más pequeña. La palabra SAMOYE significa que no hay otra opción, donde esta distancia es "aún más mínima". Esta es la única solución.
 
alsu: Si estás resolviendo un problema de minimización, puedes elegir el mínimo de los dos.
¿Qué suma se minimiza, la de las distancias o la de los cuadrados? Todavía no he recibido respuesta del autor.
 
atztek:
MT4 puede dar fácilmente Ask=1.456121212 en lugar de 1.4561, pero (sólo juega un papel cuando se trabaja con órdenes) no puede "entender" lo que ha hecho.
Para solucionarlo, utilizamos la función (ejemplo para Ask):

NormalizeDouble(Ask, Digits)

Así, todos los valores que se sustituyen en las funciones de pedido deben ser normalizados antes de enviarlos al servidor.

No todos los valores, sino los valores del precio - precio de ajuste de la orden pendiente, precio de apertura de la posición de mercado, StopLoss y TakeProfit.

De lo contrario, podríamos entenderlo de forma demasiado directa y normalizarlo... Comenta por ejemplo :)

 
Mathemat:
¿Qué suma se minimiza, la de las distancias o la de los cuadrados? Todavía no he recibido respuesta del autor.

 
Mathemat:

Siempre se puede dibujar una sola perpendicular a una línea. Esto indicará la distancia del punto a la línea.

Casi siempre hay dos "distancias" a un círculo desde un punto determinado:


Desde el punto A al círculo en este caso son AB y AC. Y cuál elegir como la "correcta" no es evidente.


Por supuesto, AB.
 

Elena, si la suma de distancias, no funcionará sin métodos numéricos. No hay solución analítica en la mayoría de los casos (sin contar el caso casi imposible de que un círculo de un radio determinado pueda ser trazado exactamente a través de tres puntos).

Elenn: Por supuesto, AB.

Por supuesto, AB, que puede discutir - con el dibujo dibujado.

Imagina lo que ocurrirá al intentar resolver el problema mediante pequeños movimientos circulares entre estos tres puntos. Este mismo "por supuesto AB" seguirá saltando de una "rama" a otra. Bien, veamos cómo lo maneja Alexey .

 

Por lo tanto, la condición en forma digerible:

Dados N puntos divergentes por pares en el plano. El problema consiste en encontrar para tres puntos cualesquiera del conjunto una circunferencia cuya suma de cuadrados de las distancias a los tres puntos dados sea mínima. A continuación, elija entre todas las circunferencias C(N,3) aquella(s) para la(s) cual(es) la suma de los cuadrados de las distancias a los puntos "amigos" es menor que las demás.

Solución.

El mínimo de las distancias de un punto dado a una circunferencia puede calcularse de forma muy sencilla. Si en el dibujo de Alexis las coordenadas del punto A son (xA,yA) y las coordenadas del centro del círculo son (x0,y0) entonces

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

donde r es el radio del círculo, y esta expresión es correcta tanto para los puntos A que están fuera como dentro del círculo. Para tres puntos tenemos tres ecuaciones de este tipo, cada una con tres parámetros desconocidos (xA, yA, r). Diferenciando la suma de tres d por cada una de ellas, obtenemos tres ecuaciones, resolviendo las cuales encontramos los parámetros requeridos.

El último paso consiste en calcular la suma correspondiente a cada tripleta y elegir la mínima.

Por cierto, debido a la no linealidad de las ecuaciones aconsejo resolver el problema numéricamente, no hay nada que hacer con la analítica.

 

La complejidad del problema aumenta rápidamente a medida que aumenta N, ya que requiere calcular y enumerar N*(N-1)*(N-2)/6 círculos (56 en el caso de N=8)

 
alsu: La complejidad del problema aumenta rápidamente a medida que se incrementa N, ya que se requiere calcular y enumerar N*(N-1)*(N-2)/6 círculos (56 en el caso de N=8)
¡Oh, de dónde sacaste esa N! / ((N-3)*3! )?