physique chimie college lycee
PYTHON 3/3 : Onde progressive. 1e  

 

PYTHON 3/3

Simuler la propagation d’une onde périodique :
y(x,t) = a.sin(ω(t-x/v)+φ)

 

 

Programme de physique-chimie de 1e : Simuler à l’aide d’un langage de programmation, la propagation d’une onde périodique.  eduPython

 

from lycee import *
import matplotlib.pyplot as plt
import matplotlib.animation as mvt
a=6 #Modifiable
T=0.5 #Modifiable
ω=2*pi/T
φ=pi/2 #Modifiable
v=24.0 #célérité. Modifiable. (Dès lors, comme λ = v.T, l'aspect de la corde sera modifié) Amusez-vous à rendre cette valeur négative
xmax=20.0 #si l'onde se déplace le long d'une corde, ce serait la longueur de la partie visible de la corde
tmax=5
fig = plt.figure()
repere = plt.axes(xlim=(0, xmax), ylim=(-15, 15))
repere.set_xlabel('x')
repere.set_ylabel('y')
repere.set_title('Onde progressive périodique')
nx=800
nt=1000
x=[i*xmax/nx for i in range(nx+1)]
t=[j*tmax/nt for j in range(nt+1)]
y=[[a*sin(ω*(t-x/v)+φ) for x in x] for t in t] #Amusez-vous à remplacer le signe '-' par le signe '+'
corde, =repere.plot(x,y[0])
def dt(k):
	corde.set_ydata(y[k])
	return corde,
final = mvt.FuncAnimation(fig, dt, 100, interval=42, blit=False) #l'intervalle entre 2 affichages est choisi ici à 42 ms, soit 1/24e s environ, durée de la persistance rétinienne
plt.show()

sélectionner, puis copier-coller le code dans PyScripter

 

 

 

© PCCL