I'm simulating a particle movement following a normal distribution. How this is done:
My particle has a constant speed v
and every step the particle move, I calculate an angle teta
for then, calculates the next position using Pythagoras making v
the hypotenuse. That means that each step size is v
.
teta
is calculated using a normal random numbers generator. For a fixed standard deviation std
and an initial mean
, I calculate an angle and for each step, I set the mean as the angle calculated.
The red lines length is always v
which is the same of the distance between position_n and position_n+1.
A code to help explain better:
mean = get_mean_value()
std = get_std_value()
v = get_speed_value()
for each step, do:
teta = random_normal_number(mean, std)
actual_pos = particle.get_position()
particle.move(teta, actual_pos)
mean = teta
QUESTION:
Every step lasts 1 second, in other words, going from position_n to position_n+1 lasts 1 second. When the world, where the particle is, is very small, 1 step/second is very big. So a created a divider
variable that halves that 1 step/second:
divider = 1 yields 1 step/second
divider = 2 yields 2 step/second
divider = 3 yields 3 step/second
...
The problem is when I increase this divider, the curvature
of this movement reduces. Look the image of the particle track for two different experiments:
I'd like to keep the curvature always the same being possible to variate the divider
. I know that I have to start wrapping the divider
with the standard deviation of the gaussian, because when It's small, the width of the normal curve is smaller and then the particle movement is less curved because I randomly choose a angle closer of the mean.
I'd like to know if you guys have some ideas or hints for how can I wrap divider
and std
to keep the curvature of the movement even changing the divider for different experiments.
(I don't know if it's a Physics or Math question.)