| 12
 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
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 
 | import numpy as np
 
delta = input("Entrer la valeur de delta : ")
beta  = input("Entrer la valeur de beta  : ")
alpha = input("Entrer la valeur de alpha : ")
gamma = input("Entrer la valeur de gamma : ")
omega = input("Entrer la valeur de omega : ")
 
print "Echelles de temps : "
if ( delta > 0 ) :    #le coefficient devant dx/dt doit etre positif
    print "      amortissement = ",1./delta  #coefficient devant dx/dt = amortissement
 
print "      harmonique = ",2*np.pi/np.sqrt(beta) #je pense qu 'on peut aussi dire if beta>0 pour la racine et coeff devant le x=harmonique ou pulsation propre
if ( gamma > 0 ) :    #le coefficient devant le forcage doit etre positif
    print "      forcage = ",2*np.pi/omega    #coefficient dans le cos=forcage
 
x0 = input("Entrer la valeur initiale de la position : ")
v0 = input("Entrer la valeur initiale de la vitesse  : ")
 
T = input("Entrer le temps de simulation : ")
h = input("Entrer le pas de simulation   : ")
 
N = (int)(T/h)+1
 
t = np.zeros(N)
x = np.zeros(N)
v = np.zeros(N)
 
t[0] = 0
x[0] = x0
v[0] = v0
for i in range(0,N-1) :
    # explicite sur la vitesse
    v[i+1] = v[i] + h*(-delta*v[i]-beta*x[i]-alpha*x[i]**3+gamma*np.cos(omega*t[i]))
    # implicite sur la position
    x[i+1] = x[i] + h*v[i+1]
 
    # actualisation du temps
    t[i+1] = t[i] + h | 
Partager