1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
using Plots
using Distributions
num_velocities = 1000
println("Starting Random Speed Simualtions...\n")
function make_random_velocity()
# pull 3 nums randomly from normal distribution
N = Normal(0, 1)
return (rand(N), rand(N), rand(N))
end
function plot_frequencies(x)
# make a map each positions to it's Frequency
freqs = Dict()
for xi in x
if haskey(freqs, xi)
freqs[xi] += 1
else
freqs[xi] = 1
end
end
num_points = length(x)
plt = scatter(
collect(keys(freqs)), collect(values(freqs)),
label="Frequency", xlabel="Position", ylabel="Frequency",
title="Freq of Positions ($num_points points)",
msw=0, color=:green, legend=false)
return plt
end
# make velocities
velocities = [make_random_velocity() for _ in 1:num_velocities]
# plot these velocities on 1d plots
px = histogram([v[1] for v in velocities], bins=30, title="X Velocity")
py = histogram([v[2] for v in velocities], bins=30, title="Y Velocity")
pz = histogram([v[3] for v in velocities], bins=30, title="Z Velocity")
# print the mean and standard deviation of each velocity distribution
println("X->\tμ:$(mean([v[1] for v in velocities])), σ:$(std([v[1] for v in velocities])), n:$(length([v[1] for v in velocities]))")
println("Y->\tμ:$(mean([v[2] for v in velocities])), σ:$(std([v[2] for v in velocities])), n:$(length([v[2] for v in velocities]))")
println("Z->\tμ:$(mean([v[3] for v in velocities])), σ:$(std([v[3] for v in velocities])), n:$(length([v[3] for v in velocities]))")
p = plot(px, py, pz, layout=(3, 1), size=(800, 800))
savefig(p, "figs/rs-1dvels.png")
# plot these velocities in 3d space
p = Plots.scatter(
[v[1] for v in velocities],
[v[2] for v in velocities],
[v[3] for v in velocities],
title="Velocities")
savefig(p, "figs/rs-3dvels.png")
# plot their speeds
speeds = [sqrt(v[1]^2 + v[2]^2 + v[3]^2) for v in velocities]
p = histogram(
speeds, title="Randomly Generated Speeds (n=$num_velocities)",
legend=false, xlabel="Speed", ylabel="Frequency")
savefig(p, "figs/rs-speeds.png")
# print the mean and standard deviation of the speed distribution
println("\nSpeed->\tμ:$(mean(speeds)), σ:$(std(speeds)), n:$(length(speeds))")
println("\nRandom Speed Simualtions Complete!")
|