from pylab import *
from solvers import *
from pendulum_visualizer import *
from numpy import sin
l = 2.0 # pendulum length
A = 0.8 # oscillation amplitude
w = 4.0 * pi # oscillation frequency
g = 9.81 # gravitational constant
# system of first-order differential equations
f = (
lambda t, y: y[1],
lambda t, y: ((-g + A * pow(w, 2.0) * sin(t * w)) * sin(y[0])) / l
)
f0 = (
0.5, # initial pendulum angle
0.0, # initial pendulum angular velocity
)
interval = (0.0, 32.0 * pi)
h = 0.033
t, y, err = solver(RK4_step, f, f0, interval, h)
z = A * sin(w * array(t))
PendulumVisualizer(t, z, y[0], l)
#plot(t, y[0])
#show()