[Archivo] Matemáticas puras, física, química, etc.: problemas de entrenamiento cerebral no relacionados con el comercio de ninguna manera - página 555

 
Svinotavr:

¿Este vídeo también es una estafa? PD: No sólo es interesante la opinión de Alexey , sino también la de otros miembros del foro.


"La única persona que conozco que consiguió construir un generador de Searle que se llamaba así fue el propio Searle":)
 
Svinotavr:
Los que se apoderaron de media Europa tampoco son muchos. Dimitri, ¿crees que esta frase "desautoriza" al resto de la película? Entonces, ¿qué piensas, divorcio o no?


La película parece propaganda sectaria. Es un sinsentido tomárselo mínimamente en serio... Durante 60 años ha estado dando... ¿y qué dio?

 
MetaDriver:

// Perdonen inmediatamente el off-topic, ya que el caso particular de la aplicación de soluciones (si es que se encuentran soluciones) sigue estando relacionado con el comercio.

// (: pero por otro lado, esto es un incentivo, ¿no? :)

// Si realmente me ayudas, te diré por qué lo necesito... ;) Te aseguro que puede ser útil...

Tarea:

Dado: un conjunto de M vectores ortogonales en un espacio de N dimensiones (M<N) // en el caso límite M==1

Se requiere: construir un generador de vectores (!) ortogonales a un conjunto dado. Necesito una idea de cómo generar rápidamente vectores aleatorios que satisfagan la condición (! ) .

Explicación-recuerdo: Para un espacio de dimensión N, la dimensión del espacio de solución es igual a (N-M), es decir, con un conjunto inicial en número (M=N-1) de vectores tenemos una única solución (por cierto, ¿cómo conseguirla en una sola jugada? Hay un artículo en la wiki, pero aún no lo he resuelto. Quien pueda explicar el algoritmo con los dedos - le daré un caramelo(de nuevo - para qué lo necesito todo)). Con un conjunto inicial más pequeño - hay un número infinito de tales vectores, es decir, "hay variantes". Estas son las variantes que hay que generar.

La frase "el conjunto de vectores ortogonales A es ortogonal al conjunto B" es algo ambigua (en el sentido de qué es exactamente ortogonal a qué)... ¿Puede especificar la condición exacta, preferiblemente mediante una fórmula?
 
alsu:
La frase "el conjunto de vectores ortogonales A es ortogonal al conjunto B" es algo ambigua (en el sentido de qué es exactamente ortogonal a qué)... ¿Podemos especificar la condición exacta, preferiblemente mediante una fórmula?

Puedes ser más específico. Las palabras son más fáciles para mí. Todos los vectores son ortogonales entre sí. :) No necesito el conjunto B. Es decir, lo necesito, pero no inmediatamente, sino gradualmente. :))

Debes hacer una función en mql(5) que tome un conjunto inicial de vectores (A) como un array y devuelva un vector ortogonal a todos los vectores de entrada.

Así:

bool GetOrtoVector(int Dimention, int InputCount, double &Input[], double &Out[]); 
  { 
    .....  
    return succes; 
  }

El vector de salida es aleatorio, pero se garantiza que es de un espacio complementario. (En caso de que InputCount == Dimention-1, se devuelve el único vector posible de un solo valor)

Condición importante: la función debe ser [lo más rápida posible]. Puedo hacerlo yo mismo. :)

 
alsu:
La frase "el conjunto de vectores ortogonales A es ortogonal al conjunto B" es algo ambigua (en el sentido de qué es exactamente ortogonal a qué)... ¿Puede especificar la condición exacta, preferiblemente mediante una fórmula?

Sobre la fórmula : productos escalares mutuos por pares de todos los vectores entrantes y salientes == 0

Esta condición nos permite resolver de forma única el sistema de ecuaciones y obtener el último vector (cuando M==N-1).

En el caso (M<N-1) el sistema ya tiene un espacio de soluciones.

De este espacio de soluciones necesito extraer vectores aleatorios. Preferiblemente, muy rápido.

 
MetaDriver:

Esta condición nos permite resolver de forma única el sistema de ecuaciones y obtener el último vector (en M==N-1).

Sólo si el conjunto está normalizado. Si no, también obtendremos infinitas soluciones.

Ejemplo: Para un conjunto {(1,0,0), (0,2,0)} cualquier vector de la forma (0,0,z) será ortogonal

 
alsu:

Sólo si el conjunto está normalizado. Si no es así, también obtendremos un conjunto infinito de soluciones.

Ejemplo: Para un conjunto {(1,0,0), (0,2,0)} cualquier vector de la forma (0,0,z) será ortogonal

Sí, por supuesto. Todos los vectores están normalizados. Tanto de entrada como de salida.
 
MetaDriver:
Sí, por supuesto. Todos los vectores están normalizados. Tanto de entrada como de salida.
Hay una solución sencilla... en la lengua como se dice))) Ahora mismo
 
alsu:
Hay una solución sencilla... en la lengua como se dice))) ahora

Para un solo vector (x0) en la entrada, hace mucho tiempo y de forma sencilla llegué a una solución (para un espacio de dimensionalidad arbitraria):

. . 1. Генерируем случайный вектор (x1r)

. . 2. Нормируем его -> (x1rn)

. . 3. Находим сумму и разность вродного (х0) и полученного (x1rn) -> (sX, dX)

. . 4. Складываем sX+dX и нормируем сумму.

. . 5. Готово. Возвращаем из функции и берём с полки пирожок.

--

Pero para más de un vector de entrada este algoritmo no es bueno. O no he sido capaz de adaptarlo correctamente.

Si tienes una idea de cómo adaptarlo para que las iteraciones no se multipliquen como una bola de nieve, sería útil.

 

Mierda, mientras lo explicaba, creo que lo entendí. :)

Si hacemos el procedimiento anterior para cada vector de entrada, entonces todos los vectores obtenidos por la suma con la posterior normalización de la misma darán el vector pseudoaleatorio deseado.

alsu, corrígeme si estoy siendo obtuso.

--

//sí, casi lo tengo. Un poco más complicado, no funciona tan fácil. Después de obtener el vector xi en cada paso, se debe "sumar-subir-normalizar" con el siguiente vector de entrada y así sucesivamente, hasta que se agoten los vectores de entrada. Algo así.

Razón de la queja: