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
# Solving the mass spring problem using Euler integration

from pylab import *

k = 10.0   # spring constant
m = 1.0
dt = 0.01
t = 0
x = 2.0
v = 0.0

ta = [t]   # list for time, add start time
xa = [x]   # list for displacement, x = 2 at t= 0
va = [v]   # list for velocity, v=0 at t=0

while t < 5:
f = -k * x
v =  v + (f/m) * dt    # a = F/m;  a = dv/dt
x =  x + v * dt        # v = dx/dt
t = t + dt
ta.append(t)
xa.append(v)
va.append(x)

plot(ta, xa)
plot(ta, va)
show()