# -*- coding: utf-8 -*- """ Created on Tue Jan 20 15:55:08 2015 Listing 11.1 : pendule par l'algorithme d'Euler @author: grivet """ from pylab import * def smy(t,y,z): return z def smz(t,y,z): return -sin(y) def euler(h,ti,yi,zi): yf = yi + h*smy(ti,yi,zi); zf = zi + h*smz(ti,yi,zi) tf = ti + h return yf,zf,tf np = 1200 t = zeros((np,1)) y = zeros_like(t); z = zeros_like(t) y0 = float(input('position initiale (rd): ')) z0 = float(input('vitesse initiale (rd/s): ')) pas = float(input('longueur du pas (rd): ')) t[0] = 0; y[0] = y0; z[0] = z0 for i in range (1,np): y[i],z[i],t[i] = euler(pas,t[i-1],y[i-1],z[i-1]); plot(t,y) title("mouvement d'un pendule simple") xlabel('temps') ylabel('angle')