Bonjour, je n'ai pas un gros niveau en python mais dans le cadre d'un projet j'ai une simulation informatique à faire. Je vous montre tout d'abord le programme en question :
def evol_force_3(N1,N2,N3,R1,R2,R3,u1,u2,u3,L,T,eps):
xs,ys,z = dissociation(placement_bis(N1,N2,N3,R1,R2,R3,L))
d = [u1/meau]*N1 + [u2/meau]*N2 + [u3/meau]*N3
K = 9*vis/(2*d[0]*(R1)**2)
K2 = 9*vis/(2*d[N1]*(R2)**2)
K3= 9*vis/(2*d[N1 + N2]*(R3)**2)
K = [K] * N1 + [K2] * N2 + [K3] * N3
R = [R1] * N1 + [R2] * N2 + [R3] * N3
n = N1 + N2 +N3
t= 0
zbis = np.array(z)
result = [z]
while t < T:
t+= eps
for i in range(n):
if zbis[i] > R[i] :
zbis[i] = z[i] + (1/K[i])*(1/d[i] - 1)*g*(t+ (1/K[i])*math.exp(-K[i]*t) - 1/K[i])
else :
zbis[i] = 0
print(zbis)
result.append(zbis)
return xs, ys, result
Le problème se situe au niveau de result, car il n'ajoute pas du tout zbis au moment de la boucle while, mais uniquement celui de la dernière boucle a chaque fois. Je ne sais pas si j'ai été clair, mais en gros j'ai utilisé print() pour vérifier que le problème ne venait pas de mon code et de l'équation, ce n'est pas le cas, zbis évolue bien à chaque itération de la boucle while mais result lui ajout à chaque itération l'élément de la dernière itération de la boucle while.
Je remercie d'avance ceux qui vont prendre la peine de lire et essayer de m'aider.
# Comme en politique: j'ai rien compris, mais j'ai quelques chose à dire!
Posté par nlgranger . Évalué à 3.
J'ai rien compris à tes explications, ni sur ce que tu cherches à faire, ni sur le problème.
Cependant, je me permets de te rappeler que python remplit les listes avec des références des objets qu'on lui donne. Du coup je trouve bizarre d'ajouter zbis à la liste, de le modifier et de le rajouter à nouveau à chaque itération. Tous les éléments de result pointent vers le même objet. Tu devrais pas créer un nouvel np.array à chaque fois?
[^] # Re: Comme en politique: j'ai rien compris, mais j'ai quelques chose à dire!
Posté par heez . Évalué à -2.
Finalement j'ai réussi à résoudre mon problème à l'aide d'un ami, et le problème venait bien du fait que python remplisse les listes avec des références mais je ne vais pas m'attarder sur les explications sachant que vous n'avez rien comprit, excusez moi pour la perte de temps occasionnée.
[^] # Re: Comme en politique: j'ai rien compris, mais j'ai quelques chose à dire!
Posté par Anonyme . Évalué à 3.
Ned Batchelder - Facts and Myths about Python names and values - PyCon 2015
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.