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ée
Hors 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ée
Hors 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