Estoy haciendo un movimiento de partículas sorteando números normales. Los números normales aleatorios sorteados son los ángulos de las direcciones en las que va la partícula. La velocidad de la partícula es constante. Mira cómo se hace esto:
//initializing values
initial_mean = 0 //initial direction
standard_deviation = pi
number_of_steps = 500
particle_speed = 50 // per second
positions_vector = new Positions_List
positions_vector.push([100, 100]) // push initial position
//starting the simulation
mean = initial_mean
foreach step in number_of_steps, do {
angle = get_random_normal_number(standard_deviation, mean)
angle = fix_angle(angle) // keep the angle between 0 and 2*pi
x = cos(angle)*particle_speed + positions_vector.last_position.x
y = sin(angle)*particle_speed + positions_vector.last_position.y
mean = angle //update the direction
positions_vector.push([x, y])
}
//plotting the result
plot(positions_vector)
Esta es una nueva situación Supongo que tengo que mejorar la resolución del movimiento. Para ello, necesito calcular más puntos, pero seguir haciendo que la partícula se mueva la misma distancia final. Así que he creado un factor de resolución por el que multiplico el número de pasos y divido la velocidad de la partícula por él también, así puedo tener más pasos y mover la misma distancia final. Mira:
mean = initial_mean
resolution_factor = 4 // If I want the motion 4 times more "precise"
foreach step in (number_of_steps * resolution_factor), do {
angle = get_random_normal_number(standard_deviation, mean)
angle = fix_angle(angle)
x = cos(angle)*(particle_speed/resolution_factor) + positions_vector.last_position.x
y = sin(angle)*(particle_speed/resolution_factor) + positions_vector.last_position.y
mean = angle
positions_vector.push([x, y])
}
Ahora, en este caso, voy a tener 2000 pasos, en lugar de 500. Pero la velocidad, ahora, es 1/4 menor para compensar el aumento de pasos.
Este es el problema Cuando aumento este factor de resolución, la "curvatura" del movimiento es "mayor". Mira estos gráficos para mostrar que sucede:
PREGUNTA : ¿Hay alguna forma de mantener la "característica" de movimiento igual independientemente del factor de resolución? Quizás tenga que escalar la distribución reduciendo la desviación estándar para obtener ángulos más pequeños en función del valor del factor de resolución, pero ¿cuál sería la relación entre la desviación estándar y el factor de resolución y por qué? ¡No sólo las respuestas, sino también las pistas serán de gran ayuda!
Aquí hay algunas parcelas después de la respuesta. ¡Funcionó bien!
Factor de resolución = 5, 20 y 100