programme TIPE

Modérateur : Michel Quercia

Répondre
tibo69
Messages : 1
Enregistré le : jeu. avr. 25, 2019 11:47 am
Classe : PT

programme TIPE

Message par tibo69 » jeu. avr. 25, 2019 12:01 pm

Bonjour
je suis en 2ème année de prépa. Nous travaillons sur les mouvements de foule pour notre tipe, nous avons récupéré un programme python mais nous ne comprenons pas à partir du " for it in np.arange(Nt): " Pourriez vous nous éclairer sur les différentes étapes qui composent le programme à partir de la boucle en question ?
Merci par avance.

Code : Tout sélectionner

import numpy as np
import matplotlib.pyplot as plt

plt.ion()

def vOd(u):
    dist = u+L*(u<0)
#    return U*(1-np.exp(-(dist-umin)/uc))*(dist>umin)
    return U*((1-np.exp(-(dist-umin)/uc))**2)*(dist>umin)

def per(x):
    return x-L*(x>L)
#

L = 40 # Longueur des abscisses
N = 20 # Nombre de points affichés
dt = 0.5; # Vitesse de simulation
Nt = 1000 #Temps total de la simu (*dt pour le temps réel)
aux =np.zeros(Nt)
U = 1 # Vitesse souhaitée des points 
umin= 0.6
uc  = 3
#tau0 = 3.2
tau0 = 6 #temps de réaction
tau = tau0
ue = L/N #Dij : distance entre chaque points
vOdpue = 2*U*np.exp(-(ue-umin)/uc)*(1-np.exp(-(ue-umin)/uc))/uc 
kstab = tau*vOdpue
print('test',kstab)


xx = np.linspace(0.0,L-L/N,N) #talbeau de N zéros
xx+= 0.2*ue*(np.random.uniform(size=N)) # position de départ de chaque points

zz = np.zeros(np.shape(xx))
ww = np.zeros(np.shape(xx))


for it in np.arange(Nt): #pour it de 0 à Nt par intervalle de 1

    Lxx = np.roll(xx,-1) #les points arrivés en fin de graphe reviennent au départ
    uu = Lxx-xx
    uu+= L*(uu<0)
    aux[it] = uu[0]
    ww = (ww+dt/tau*uu) / (1+dt/tau)
    vv  = vOd(ww)
    xx += dt*vv
    xx = per(xx)
    plt.clf()
    plt.plot(xx,zz,'.'); 
    #plt.plot(xx[N-1],zz[N-1],'o')
    plt.axis([0.,L,-5,5]) #Repère du graphe : x->0;L ; y-> -5;5
    plt.axes().set_aspect('equal')
    texte = 't ='+ str(int(0.1*it*dt)) +'s'+  ' k = ' + str(kstab) #on affiche la variation de temps et la valeur de kstab 
    plt.xlabel(texte)
    plt.draw()
    plt.show()
    plt.pause(0.01) # pause (in seconds) to see the plot
    plt.clf() # clear figure before next plot
    print ('t ='+ str(int(0.1*it*dt)) +'s', '   Distance minimale :', np.min(uu))






Avatar du membre
fakbill
Messages : 11245
Enregistré le : mer. juil. 30, 2008 4:59 pm
Classe : Dr.-Ing

Re: programme TIPE

Message par fakbill » jeu. avr. 25, 2019 3:20 pm

Non :).
On ne peut pas faire le travail de comprehension pour vous. On peut seulement aider.
Vous avez trouvez ce code sans aucune doc?? il sort d'où??
C'est pénible de comprendre ce que fait un code sans doc... Le mieux serait de trouver un de comprendre un **algo** PUIS de le coder en python.
bref, dites nous en plus et on aidera.
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 9 invités