Echanges autour d'EduPython.
Vous n'êtes pas identifié(e).
Bonjour,
Merci beaucoup.
Je préfèrerais ajouter deux valeurs fictives aux bords de Vd : Comment dois-je faire ?
Autre question : pourquoi je n'ai pas ce problème pour Va ?
Merci d'avance,
LM
Hors ligne
Le problème n'est pas à la création, mais pour le tracer, donc ligne 73 ça plante pour Vd, mais ne vous inquiétez pas, ça va aussi planter ligne 74 avec Va ![]()
Pour Vd (idem) pour Va, on peut remplacer les lignes
Vd = []
for n in range(1, len(C_peroxodisulfate)-1) :
Vd.append((C_peroxodisulfate[n+1]-C_peroxodisulfate[n-1])/(t[n+1]-t[n-1]))par :
Vd = [0] # Une première valeur
for n in range(1, len(C_peroxodisulfate)-1) :
Vd.append((C_peroxodisulfate[n+1]-C_peroxodisulfate[n-1])/(t[n+1]-t[n-1]))
Vd.append(0) # Une dernière valeur une fois la boucle terminéeHors ligne
J'ai modifié :
Va = []
for n in range(1, len(C_I2)-1) :
Va.append((C_I2[n+1]-C_I2[n-1])/(t[n+1]-t[n-1]))
Va.append(0) # Une dernière valeur une fois la boucle terminée
"""
Taper, DANS LA BOUCLE ci-dessous, le code python permettant
de calculer Vd (vitesse volumique de disparition de S2O82- au point numéro "n")
"""
Vd = []
for n in range(1, len(C_peroxodisulfate)-1) :
Vd.append((C_peroxodisulfate[n+1]-C_peroxodisulfate[n-1])/(t[n+1]-t[n-1]))
Vd.append(0) # Une dernière valeur une fois la boucle terminée
Il me signale encore une erreur : j'ai un problème pour la première et la dernière valeur de calcul de ces vitesses ?
"ValueError: x and y must have same first dimension, but have shapes (33,) and (62,)"
Hors ligne
Ne pas tenir compte du message précédent : je n'avais pas lu la première ligne ...
Par contre, j'ai toujours un problème : "ValueError: x and y must have same first dimension, but have shapes (33,) and (63,)"
Va = []
Va = [0] # Une première valeur
for n in range(1, len(C_I2)-1) :
Va.append((C_I2[n+1]-C_I2[n-1])/(t[n+1]-t[n-1]))
Va.append(0) # Une dernière valeur une fois la boucle terminée
"""
Taper, DANS LA BOUCLE ci-dessous, le code python permettant
de calculer Vd (vitesse volumique de disparition de S2O82- au point numéro "n")
"""
Vd = []
Vd = [0] # Une première valeur
for n in range(1, len(C_peroxodisulfate)-1) :
Vd.append((C_peroxodisulfate[n+1]-C_peroxodisulfate[n-1])/(t[n+1]-t[n-1]))
Vd.append(0) # Une dernière valeur une fois la boucle terminéeHors ligne
Vous faites le append(0) dans les boucle for, donc vous ajoutez un 0 après chaque valeur calculée, donc cette fois ci vous avez trop de valeurs ![]()
Rem 1 : les lignes Vd = [] ou Va = [] ne servent à rien, vu que vous réinitialisez à la ligne suivante.
Rem 2 : N'hésitez à utiliser la console une fois l'erreur survenue pour comprendre le problème, vous pouvez par exemple taper en direct :
>>> Vd
ou
>>> len(Vd)
Hors ligne
Je crois avoir fait les modifications :
Va = [0] # Une première valeur
for n in range(1, len(C_I2)-1) :
Va.append((C_I2[n+1]-C_I2[n-1])/(t[n+1]-t[n-1]))
Va.append(0) # Une dernière valeur une fois la boucle terminée
"""
Taper, DANS LA BOUCLE ci-dessous, le code python permettant
de calculer Vd (vitesse volumique de disparition de S2O82- au point numéro "n")
"""
Vd = [0] # Une première valeur
for n in range(1, len(C_peroxodisulfate)-1) :
Vd.append((C_peroxodisulfate[n+1]-C_peroxodisulfate[n-1])/(t[n+1]-t[n-1]))
Vd.append(0) # Une dernière valeur une fois la boucle terminée
Mais j'ai toujours un problème "expected x and y to have same length"
Et quand je vais sur la console pour taper :
1|>>> Vd
ou
1|>>> len(Vd)
Il me dit que Vd n'existe pas ?
Hors ligne
A présent l'erreur est passé à la ligne 93 (1ère ligne à lire lors un message d'erreur), on a gagné 20 lignes
Donc ligne 93, il tente de faire une droite de régression je pense en prenant les 31 valeurs centrales de C_peroxodisulfate en abscisse et les 33 valeurs de Vd en ordonnées, d'où l'erreur
P.S : Dans la console, il faut juste taper Vd ou len(Vd)
Hors ligne
Oui, merci beaucoup (c'est compliqué pour moi! et je ne sais pas ce que je ferais sans vous).
Je ne sais pas comment régler le problème car cette fois, il va chercher les valeurs par un autre moyen : "np."
Avec tous les problèmes que je rencontre, pourquoi il n'y a pas les mêmes problèmes sur le programme : cinetique_pyton_PROF ? https://drive.google.com/drive/folders/ … 7o1LLR72rL
PS : c'est ce que je fais : il y a déjà les 3 signes >>> et j'écris "Vd" simplement
Il me dit " Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
NameError: name 'Vd' is not defined"
Je suis désolée de comprendre si doucement ...
Hors ligne
Bonsoir,
Dans l'autre document la philosophie est plutôt de supprimer les valeurs de t aux bords.
Voici un code qui fait quelque chose, mes connaissances dans le domaine ne sont pas suffisantes ![]()
import matplotlib.pyplot as plt
""" TRAVAIL 1 :
"""
# Grandeurs de l'énoncé:
Vtot=0.035 # Volume total en L
n_0=2e-4 # quantité de matière initiale en mol
k=210.5 # constante Beer-Lambert en L/mol
# Valeurs expérimentales de A et t
t = [0,30,60,90,120,150,180,210,240,270,300,330,360,390,420,450,480,510,540,570,600,630,660,690,720,750,780,810,840,870,900,930,960]
A = [0.00311,0.0831,0.128,0.176,0.216,0.259,0.298,0.341,0.374,0.404,0.449,0.473,0.507,0.529,0.559,0.584,0.609,0.630,0.645,0.666,0.688,0.690,0.721,0.744,0.761,0.766,0.790,0.803,0.801,0.827,0.834,0.843,0.842]
# formules:
C_I2 = [] # calcul de [I2](t)
for n in range (0,len(A)) :
C_I2.append(A[n]/k) # A compléter
x = [] # calcul de l'avancement x(t)
for n in range (0,len(C_I2)) :
x.append(C_I2[n]/Vtot) # A compléter
C_peroxodisulfate=[] # calcul de [S2O8 2-](t)
for n in range (0,len(x)) :
C_peroxodisulfate.append((n_0-x[n])/Vtot) # A compléter
""" TRAVAIL 2: Tracer des graphiques
Taper, DANS LA BOUCLE ci-dessous, le code python permettant
de calculer Va (vitesse volumique d'apparition de I2 au point numéro "n")
"""
Va = []
for n in range(1, len(C_I2)-1) :
Va.append((C_I2[n+1]-C_I2[n-1])/(t[n+1]-t[n-1]))
"""
Taper, DANS LA BOUCLE ci-dessous, le code python permettant
de calculer Vd (vitesse volumique de disparition de S2O82- au point numéro "n")
"""
Vd = []
for n in range(1, len(C_peroxodisulfate)-1) :
Vd.append((C_peroxodisulfate[n+1]-C_peroxodisulfate[n-1])/(t[n+1]-t[n-1]))
"""
Tracer de graphique :
"""
# #####################################
# Tracés de [I2]=f(t)
# #####################################
plt.subplot(221) # 4 sous-figures (2 ligne,2colonnes, on se place sur la n°1)
plt.grid()
plt.plot(t,C_I2,"r+")
plt.title("COURBE 1: [I2] en fonction de t") # titre du graphique
plt.xlabel("t en s") # nom de la grandeur sur l'axe X
plt.ylabel("[I2] en mol/L") # nom de la grandeur sur l'axe Y
# #####################################
# Tracés de [S2O8 2-]=f(t)
# #####################################
plt.subplot(222) # 4 sous-figures (2 ligne,2colonnes, on se place sur la n°2)
plt.grid()
plt.plot(t,C_peroxodisulfate,"b+")
plt.title("COURBE 2: [S2O8 2-] en fonction de t") # titre du graphique
plt.xlabel("t en s") # nom de la grandeur sur l'axe X
plt.ylabel("[S2O8 2-] en mol/L") # nom de la grandeur sur l'axe Y
# #####################################
# Tracés de Vd=f(t) et Va=f(t)
# #####################################
plt.subplot(223) # 4 sous-figures (2 ligne,2colonnes, on se place sur la n°3)
plt.grid()
plt.plot(t[1:-1],Vd,"k+",label="V disparition peroxodisulfate")
plt.plot(t[1:-1],Va,"m+",label="V apparition I2")
plt.title("COURBE 3: Vitesses volumiques\n en fonction de t") # titre du graphique
plt.xlabel("t en s") # nom de la grandeur sur l'axe X
plt.ylabel("V en mol."+r"$L^{-1}.s^{-1}$") # exposant -1 en langage LateX: inutile pour les élèves
plt.legend()
# #####################################
# Tracés de V=f([S2O8 2-])
# #####################################
plt.subplot(224) # 4 sous-figures (2 ligne,2colonnes, on se place sur la n°4)
plt.grid()
plt.plot(C_peroxodisulfate[1:-1],Vd,"g+")
# Modélisation de la courbe VS([S2O82-]) par une fonction linéaire
import numpy as np
model = np.polyfit(C_peroxodisulfate[1:-1],Vd,1)
a, b = model
Vdmodel = []
for n in range (0, len(C_peroxodisulfate)) :
Vdmodel.append(a*C_peroxodisulfate[n]+b)
plt.plot(C_peroxodisulfate[1:-1],Vd,"ro", label = "Points expérimentaux")
plt.plot(C_peroxodisulfate, Vdmodel, "g--", label = "Modélisation")
plt.xlabel("[S2O82-] (mol.L-1)", fontsize = 12)
plt.ylabel("vitesse volumique de disparition du S2O82- (mol.L-1.s-1)", fontsize = 12)
plt.title("Vitesse volumique de disparition du S2O82- en fonction de la concentration en S2O82-", fontsize = 14)
plt.legend()
plt.show()
""" fin du travail """
plt.title("COURBE 4: Vitesse volumique de disparition\nde en fonction de [S2O8 2-]") # titre du graphique
plt.xlabel("[S2O8 2-] en mol/L") # nom de la grandeur sur l'axe X
plt.ylabel("V en mol."+r"$L^{-1}.s^{-1}$") # exposant -1 en langage LateX: inutile pour les élèves
plt.tight_layout() # permet une bonne gestion des marges par matplotlib
# on affiche la fenêtre
#plt.get_current_fig_manager().window.state('zoomed') # <-- Affiche la fenêtre maximisée sous windows uniquement
plt.show()Si vous débutez, je pense qu'il faut commencer par des petits programmes de 10 - 15 lignes maxi, sinon c'est très compliqué de s'y retrouver (pour les élèves aussi
!)
Bonne soirée,
Vincent
Hors ligne
Bonjour,
j'ai moi aussi l'activité du manuel page 240 sur les énergies mais je ne sais pas ce je dois écrire lorsqu'il demande "quel est le logiciel de pointage (sans l'extension .csv)", est ce le nom d'un logiciel qui permettent de pointer si oui lequel?
Cordialement
Hors ligne
De l'exemple en début de post, je lis "Quel est le nom du fichier de pointage" et non du logiciel. Il demande donc le nom du fichier qui contient les données.
VM
Hors ligne
D'accord mais je n'arrive pas à trouver quel est le nom du fichier de pointage, sauriez-vous le nom ?
Hors ligne
Je n'ai pas le livre, je laisse un collègue de Physique répondre, mais je pense que soit on peut télécharger ce fichier sur le site de l'éditeur, soit le générer soit même avec un logiciel de pointage genre AVI Meca
Vincent
Hors ligne
ok... merci
Hors ligne
Un lien avec google drive :
Programme : https://drive.google.com/drive/folders/ … 7XRwIbKlnh
Excel : https://drive.google.com/drive/folders/ … 7XRwIbKlnhCa marche ?
bonjour
pouvez vous m'envoyez ces deux fichiers.
merci
Hors ligne