1 2 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