# -*- coding: iso-8859-15 -*- # Programa que ilustra a construção de uma onda estacionária # a partir de duas componentes progressivas from matplotlib.pylab import * # pylab é a maneira fácil de fazer gráficos import time # vamos animar os gráficos em tempo real ion() #Ativa o moto interativo (para a animação do gráfico) # Definições L_corda=5.0 # comprimento da corda Lambda=2.5 # comprimento de onda freq=0.1 # frequência k=2.0*pi/Lambda # número de onda w=2.0*pi*freq # frequência angular x = arange(0,L_corda,0.01) # cria o limite do eixo de x ao comprimento da corda estacionaria, = plot(x,x) # Apenas cria o gráfico inicial progressiva1, = plot(x,x) progressiva2, = plot(x,x) estacionaria.axes.set_ylim(-3,3) # define os limites do gráfico starttime = time.time() # O tempo inicial t = 0 # Quanto tempo passou while(t < 500.0): # while(True): para rodar para sempre # Calcula por quanto tempo o programa está rondando t = time.time() - starttime # Resultado analítico da onda estacionária # y = 2.*sin(k*x)*cos(w*t) prog1 = sin(k*x-w*t) prog2 = sin(k*x+w*t) # Atualiza o gráfico (com a soma das ondas estacionaria.set_ydata(prog1+prog2) # Cada componente individual progressiva1.set_ydata(prog1) progressiva2.set_ydata(prog2) draw() # Redesenha o gráfico time.sleep(0.02)