Bonjour,
j'ai un exercice à faire sur la propagation d'une onde périodique
1) dire quelle fonction mathématique du temps de l'espace est utilisé pour représenter l'onde
2) parmi les paramètres présentés dans cette fonction lesquels peut-on modifier dans le programme proposé ,
le programme proposé est : ci-dessous
la prof nous conseille de le faire avec Thonny et charger les bibliothèques nécessaires
voilà ce que j'ai fait mais apparemment il y a un problème sur la ligne return courbe et je ne sais comment visualiser le graphique
Merci de votre aide car c'est la première fois que je vais sur ce programme (thonny)
Bonjour
Le programme tourne sans problème chez moi...
Erreur détectée dans ta saisie à la ligne "mescourbes=..." la fonction d'onde sin(2*pi....) doit être écrite entre crochets et non entre parenthèses...
Autre remarque : si tu saisis l'ensemble du code sous Thonny pour l'exécuter ensuite (touche F5), tu dois aussi supprimer la virgule à la fin de la ligne :
return courbe
je viens de changer (faire ce que tu me dis ) et faire F5 et rien il est noté : en bas :
Traceback (most recent call last):
File "C:\Users\Utilisateur\texte.py", line 2, in <module>
from matplotlib import pyplot, animation
File "C:\Users\Utilisateur\AppData\Local\Programs\Thonny\lib\site-packages\thonny\backend.py", line 305, in _custom_import
module = self._original_import(*args, **kw)
ModuleNotFoundError: No module named 'matplotlib'
voici mon programme sous thonny :
from math import sin, pi
from matplotlib import pyplot, animation
Xmax=10.0
Tmax=10.0
fig = pyplot.figure()
ax = pyplot.axes(xlim=(0, Xmax), ylim=(-2, 2))
NbEchantillons=100
positionsx=[i*Xmax/NbEchantillons for i in range(NbEchantillons)]
temps=[i*Tmax/NbEchantillons for i in range(NbEchantillons)]
T=2.0
v=1.0
mescourbes=[(sin[2*pi/T*(t-x/v)] for x in positionsx) for t in temps]
courbe, =ax.plot(positionsx, mescourbes[0])
def incrementemps(i) :
courbe.set_ydata(mescourbes[i])
return courbe
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_title('propagation')
line_ani = animation.FuncAnimation(fig, incrementemps, 100, interval=50, blit=False)
pyplot.show()
MERCI de ta réponse
La bibliothèque matplotlib n'a manifestement pas été installée.
Cela se fait facilement si tu utilises comme système d'exploitation linux. Si tu utilises Windows, c'est un peu plus compliqué mais j'imagine que ton professeur a indiqué la procédure...
Bonjour,
non il nous a dit ça et puis c'est tout....
Ce travail n'est pas obligatoire mais je voulais voir quand même
MERCI
Re,
en cherchant sur l'ordi j'ai trouvé et mis la bibliothèque matplotlib sur thonny mais voilà maintenant ce que j'ai :
Traceback (most recent call last):
File "C:\Users\Utilisateur\texte.py", line 13, in <module>
courbe, =ax.plot(positionsx, mescourbes[0])
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\axes\_axes.py", line 1646, in plot
lines = [*self._get_lines(*args, data=data, **kwargs)]
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\axes\_base.py", line 216, in __call__
yield from self._plot_args(this, kwargs)
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\axes\_base.py", line 339, in _plot_args
self.axes.yaxis.update_units(y)
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\axis.py", line 1510, in update_units
converter = munits.registry.get_converter(data)
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\units.py", line 222, in get_converter
return self.get_converter(first)
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\units.py", line 215, in get_converter
first = cbook.safe_first_element(x)
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\cbook\__init__.py", line 1650, in safe_first_element
raise RuntimeError("matplotlib does not support generators "
RuntimeError: matplotlib does not support generators as input
c'est ce qui est noté en bas
je n'y comprend plus rien
MERCI
matplotlib ne semble pas correctement installée et intégrée à Python. Comment as-tu installée cette bibliothèque ?
Il y a un outils pour cela sous Thonny.
Il faut ouvrir le menu "outils", sous-menu "Gérer les paquets"
Vérifie alors si matplotlib figure bien dans la liste. Si non : cliquer sur "rechercher un paquet sur PyPi" et suivre les instructions. Si oui : le désinstaller et le réinstaller à partir de PyPi...
Si les instructions de mon messages de 10h53 ne fonctionnent pas, tu as la solution extrême : désinstaller ta version peut-être ancienne de Thonny.
Télécharger puis installer la version actuelle (n°3.2.7) à partir du site thonny.org.
Installer matplotlib comme indiqué dans mon message précédent.
Je ne travaille pas habituellement sous Windows mais je viens de faire cette installation sur un ordinateur d'appoint tournant sous Windows 10 : ton programme fonctionne parfaitement !
Re,
j'avais la version 3.1.2 donc je l'ai desinstallé et mis la version 3.2.7 (y il a bien dans la bibliothèque matplotlib mais je n'arrive toujours pas à avoir le schéma voici ce que j'ai
d'abord mon programme:
from math import sin, pi
from matplotlib import pyplot, animation
Xmax=10.0
Tmax=10.0
fig = pyplot.figure()
ax = pyplot.axes(xlim=(0, Xmax), ylim=(-2, 2))
NbEchantillons=100
positionsx=[i*Xmax/NbEchantillons for i in range(NbEchantillons)]
temps=[i*Tmax/NbEchantillons for i in range(NbEchantillons)]
T=2.0
v=1.0
mescourbes=[(sin[2*pi/T*(t-x/v)] for x in positionsx) for t in temps]
courbe, =ax.plot(positionsx, mescourbes[0])
def incrementemps(i) :
courbe.set_ydata(mescourbes[i])
return courbe
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_title('propagation')
line_ani = animation.FuncAnimation(fig, incrementemps, 100, interval=50, blit=False)
pyplot.show()
et en bas :
Traceback (most recent call last):
File "C:\Users\Utilisateur\onde test thonny.py", line 2, in <module>
from matplotlib import pyplot, animation
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\__init__.py", line 139, in <module>
from . import cbook, rcsetup
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\cbook\__init__.py", line 34, in <module>
class CallbackRegistry:
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\cbook\__init__.py", line 127, in CallbackRegistry
def _remove_proxy(self, proxy, *, _is_finalizing=sys.is_finalizing):
NameError: name 'sys' is not defined
MERCI de me dire quoi
Ton problème de librairie matplotlib semble résolu maias tu n'as pas corrigé correctement la ligne "mescourbes=...". Voici un "copier-coller" du programme auquel j'ai rajouter une grille pour plus de clarté.
from math import sin, pi
from matplotlib import pyplot, animation
Xmax=10.0
Tmax=10.0
fig=pyplot.figure()
ax=pyplot.axes(xlim=(0,Xmax),ylim=(-2,2))
NbEchantillons=200
positionsx=[i*Xmax/NbEchantillons for i in range(NbEchantillons)]
temps=[i*Tmax/NbEchantillons for i in range(NbEchantillons)]
T=4.0
v=1.0
mescourbes=[[sin(2*pi/T*(t-x/v)) for x in positionsx] for t in temps]
courbe, =pyplot.plot(positionsx, mescourbes[0])
def incrementemps(i) :
courbe.set_ydata(mescourbes[i])
return courbe
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_title("Propagation d'une onde progressive sinusoïdale")
ax.grid()
line_ani=animation.FuncAnimation(fig,incrementemps,100,interval=50,blit=False)
pyplot.show()
Re,
je viens de faire un copier coller de ce que tu m'as mis et ça ne va toujours pas
en bas j'ai :
Traceback (most recent call last):
File "C:\Users\Utilisateur\onde thonny nouveau.py", line 2, in <module>
from matplotlib import pyplot, animation
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\__init__.py", line 139, in <module>
from . import cbook, rcsetup
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\cbook\__init__.py", line 34, in <module>
class CallbackRegistry:
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\cbook\__init__.py", line 127, in CallbackRegistry
def _remove_proxy(self, proxy, *, _is_finalizing=sys.is_finalizing):
NameError: name 'sys' is not defined
MERCI
Je veux parler de la ligne :
ax.grid()
qui ajoute un quadrillage : plus facile ainsi de bien observer comment évolue la courbe.
Problème d'installation mais à distance, difficile...
Peut-être ajouter en tout début de programme la ligne :
import sys
Re,
voilà ce que j'ai fait :
import sys
from math import sin, pi
from matplotlib import pyplot, animation
Xmax=10.0
Tmax=10.0
fig=pyplot.figure()
ax=pyplot.axes(xlim=(0,Xmax),ylim=(-2,2))
NbEchantillons=200
positionsx=[i*Xmax/NbEchantillons for i in range(NbEchantillons)]
temps=[i*Tmax/NbEchantillons for i in range(NbEchantillons)]
T=4.0
v=1.0
mescourbes=[[sin(2*pi/T*(t-x/v)) for x in positionsx] for t in temps]
courbe, =pyplot.plot(positionsx, mescourbes[0])
def incrementemps(i) :
courbe.set_ydata(mescourbes[i])
return courbe
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_title("Propagation d'une onde progressive sinusoïdale")
ax.grid()
line_ani=animation.FuncAnimation(fig,incrementemps,100,interval=50,blit=False)
pyplot.show()
et en bas
j'ai :
Traceback (most recent call last):
File "C:\Users\Utilisateur\onde b.py", line 3, in <module>
from matplotlib import pyplot, animation
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\__init__.py", line 139, in <module>
from . import cbook, rcsetup
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\cbook\__init__.py", line 34, in <module>
class CallbackRegistry:
File "C:\Users\Utilisateur\AppData\Roaming\Python\Python37\site-packages\matplotlib\cbook\__init__.py", line 127, in CallbackRegistry
def _remove_proxy(self, proxy, *, _is_finalizing=sys.is_finalizing):
NameError: name 'sys' is not defined
MERCI
Une rapide recherche sur le web montre que tu n'es pas le seul a avoir ce problème sous Windows... Peut-être ajouter aussi au début :
import os
Sinon, de chez moi, je ne vois pas trop ce que je peux faire de plus pour t'aider dans la mesure où j'ai testé le programme à la fois sous linux et sous Windows 10 et que tout fonctionne. Le programme n'est donc pas en cause mais l'installation de Python sur ton ordinateur...
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :