From e650ed1e1e908e51c78c1b047bec0da7c4fea366 Mon Sep 17 00:00:00 2001 From: sotech117 Date: Sat, 27 Apr 2024 04:25:23 -0400 Subject: testing --- hw5/fpu.jl | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 hw5/fpu.jl (limited to 'hw5/fpu.jl') diff --git a/hw5/fpu.jl b/hw5/fpu.jl new file mode 100644 index 0000000..327cf3a --- /dev/null +++ b/hw5/fpu.jl @@ -0,0 +1,35 @@ +N = 32 # number of masses +beta =.3 # cubic string spring +A = 10 # amplitude +modes = 3 # number of modes to plot + + +function calculate_x_i(mass_num, node_num, num_masses, amplitutude) + return A * + sqrt(2 / (num_masses + 1)) * + sin((mass_num * node_num * π) / (num_masses + 1)) +end + +function calculate_x_s_for_mode(mass_num, node_num, num_masses, amplitutude) + x = 0 + for i in 1:num_masses + x += calculate_x_i(mass_num, node_num, num_masses, amplitutude) + end + return x +end + +# calculate the x_s for the first three modes + +x_s = zeros(modes, N+2) # add two for zeros on ends +# add the first and last 0s +for i in 1:modes + for j in 1:N + x_s[i, j+1] = calculate_x_s_for_mode(j, i, N, A) + end +end + +# plot the first three modes +using Plots +plot(x_s[1, :], label="Mode 1", marker=:circle, xlabel="Mass Number", ylabel="Displacement", title="First Three Modes") +plot!(x_s[2, :], label="Mode 2", marker=:circle) +plot!(x_s[3, :], label="Mode 3", marker=:circle) \ No newline at end of file -- cgit v1.2.3-70-g09d2