Forum EduPython

Echanges autour d'EduPython.

Vous n'êtes pas identifié(e).

#26 2020-11-10 07:59:08

Louise M
Membre
Inscription : 2020-10-13
Messages : 15

Re : Activité python physique

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

#27 2020-11-10 08:15:19

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 308

Re : Activité python physique

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 smile

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

#28 2020-11-10 08:20:48

Louise M
Membre
Inscription : 2020-10-13
Messages : 15

Re : Activité python physique

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

#29 2020-11-10 08:24:19

Louise M
Membre
Inscription : 2020-10-13
Messages : 15

Re : Activité python physique

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

#30 2020-11-10 08:33:58

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 308

Re : Activité python physique

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 smile

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

#31 2020-11-10 08:44:25

Louise M
Membre
Inscription : 2020-10-13
Messages : 15

Re : Activité python physique

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

#32 2020-11-10 08:57:01

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 308

Re : Activité python physique

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

#33 2020-11-10 09:32:53

Louise M
Membre
Inscription : 2020-10-13
Messages : 15

Re : Activité python physique

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

#34 2020-11-10 17:00:01

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 308

Re : Activité python physique

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 smile

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 smile !)

Bonne soirée,

Vincent

Hors ligne

#35 2020-12-31 10:59:02

Indy_jones31
Membre
Inscription : 2020-12-31
Messages : 4

Re : Activité python physique

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

#36 2020-12-31 16:03:03

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 308

Re : Activité python physique

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

#37 2020-12-31 17:00:51

Indy_jones31
Membre
Inscription : 2020-12-31
Messages : 4

Re : Activité python physique

D'accord mais je n'arrive pas à trouver quel est le nom du fichier de pointage, sauriez-vous le nom ?

Hors ligne

#38 2021-01-01 14:43:33

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 308

Re : Activité python physique

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

#39 2021-01-01 16:59:59

Indy_jones31
Membre
Inscription : 2020-12-31
Messages : 4

Re : Activité python physique

ok... merci

Hors ligne

#40 2021-01-08 20:31:49

bouri_66
Membre
Inscription : 2021-01-08
Messages : 2

Re : Activité python physique

Louise M a écrit :

bonjour
pouvez vous m'envoyez ces deux fichiers.

merci

Hors ligne

Pied de page des forums