# -*- coding: utf-8 -*-
# @author : mhebding

""" Simulation d'ondes stationnaires """

import numpy as np # ne pas s'en soucier pour le moment
import matplotlib.pyplot as plt

# définition des paramètres du problème
A = 1 # amplitude
omega = 1 # pulsation
k = 1 # vecteur d'onde
phi1 = 0 # phase à l'origine pour s1
phi2 = 3.14 # phase à l'origine pour s2
#création de la liste des x
x0 = 0
xf = 20
N = 200
x = np.linspace(x0,xf,N)
#paramètres d'enregistrement des images au cours du temps
t0 = 0
tf = 5 # durée de l'animation
dt = 0.1

for t in np.arange(t0,tf,dt): # on anime le graphe au cours du temps
    plt.clf() # on efface à chaque fois pour modifier l'affichage
    s1 = A*np.cos(omega*t-k*x+phi1) # OPPH vers les x croissants
    s2 = A*np.cos(omega*t+k*x+phi2) # OPPH vers les x décroissants
    S = s1 + s2 # superposition de s1 et s2
    plt.plot(x,s1,'-',label='s1') #s1(x)
    plt.plot(x,s2,'-',label='s2') #s2(x)
    plt.plot(x,S,'-o',label='S') #S(x)
    plt.xlabel("position x")
    plt.ylabel("vibration")
    plt.legend(loc='upper right')
    plt.xlim(0,12) # limites en x
    plt.ylim(-3,3) # limites en y
    plt.pause(0.001)
plt.show() # affichage
