ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr
ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr
ENSAE Ecole Nationale de la Statistique et de l ... - xavierdupre.fr
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
2. Séances dirigées 44#############################################################################<strong>de</strong>f pendule_lineaire (tt, vt, at, gR, dt) : 15"""calcule t (t+1), v(t+1), a(t+1)t’’ + gR t = 0"""at = - gR * ttvt += at * dttt += vt * dt 20r<strong>et</strong>urn tt,vt,at<strong>de</strong>f pendule_non_lineaire (tt, vt, at, gR, dt) :"""calcule t (t+1), v(t+1), a(t+1)t’’ + gR t = 0""" 25at = - gR * math.sin (tt)vt += at * dttt += vt * dtr<strong>et</strong>urn tt,vt,at<strong>de</strong>f perio<strong>de</strong> (courbe,dt) :"""estime <strong>la</strong> pÃľrio<strong>de</strong> d’une courbe dont on sait qu’elle est cyclique"""lp = []p = 0for i in range (1, len (courbe)-1) : 35if courbe [i-1] = courbe [i+1] :# maximumlp.append (i)# moyenne entre les durees entre <strong>de</strong>ux maximass = 0 40for l in range (1,len (lp)) :s += lp [l] - lp [l-1]r<strong>et</strong>urn float (s) / (len (lp)-1) * dt30# initialisation : un angle t0 != 0, pas <strong>de</strong> vitesse, pas d’accÃľlÃľrationt0 = 1tt,vt,at = t0,0,0stt,svt,sat = t0,0,0dt = 0.01 50gR = 0.5t = 0T = []th = [] 55sth = []cth = []# boucleprint "simultation" 60for i in range (0,4000) :T.append (t)th.append (tt)sth.append (stt)ctt = t0 * math.cos (math.sqrt (gR) * t) 65cth.append (ctt)t= t + dttt,vt,at = pendule_lineaire (tt, vt, at, gR, dt)stt,svt,sat = pendule_non_lineaire (stt, svt, sat, gR, dt)print "perio<strong>de</strong> theorique : ", math.pi * 2 / math.sqrt (gR)print "perio<strong>de</strong> courbe theorique ", perio<strong>de</strong> (cth, dt)print "perio<strong>de</strong> courbe lineaire ", perio<strong>de</strong> (th, dt)print "perio<strong>de</strong> courbe non lineaire ", perio<strong>de</strong> (sth, dt)# pour calculer l’angle a partir duquel <strong>la</strong> solution lineaire# n’est plus viable, il faut calculer <strong>la</strong> difference entre les perio<strong>de</strong>s457075