""" Resolution du pendule de Foucault par odeint"""

import matplotlib.pyplot as plt
import numpy as np
from scipy.integrate import odeint

t = np.arange(0,40,0.01)  # liste des instants

Omega_T = 0.1            # pulsation de la rotation terrestre (valeur exageree pour mieux voir l'effet)
omega_0 = 1.0             # pulsation propre du pendule
latitude = np.pi/3       # latitude en rad

CI = [0,1,0,0]            # CI sur [xpoint, x, ypoint, y]

def F(X,t):
    return [-(omega_0)**2*X[1] + 2*Omega_T*X[2]*np.sin(latitude), X[0] ,  -(omega_0)**2*X[3] -2*Omega_T*X[0]*np.sin(latitude) , X[2]]

solution = odeint(F, CI, t)

plt.axis('equal')
plt.xlim([-1.2,1.2])
plt.ylim([-1.2,1.2])
plt.xlabel(u'$x$',fontsize=22)
plt.ylabel(u'$y$',fontsize=22)
plt.plot(solution[:,1],solution[:,3],'k',linewidth=2)
plt.title(u'Trajectoire du pendule de Foucault\n lâché depuis $(1,0)$ sans vitesse initiale')
plt.show()
