Chapitre 11

Activités Python

Diffraction et interférences

Activité

Simuler des interférences

Consigne

Ouvrez la page des scripts du chapitre pour consulter le code et télécharger les fichiers .py.

Le script Ch11_interferences.py (dossier scripts/) additionne deux signaux sinusoïdaux de même période s1(t)s_1(t) et s2(t)s_2(t) et trace leur somme S(t)=s1(t)+s2(t)S(t) = s_1(t) + s_2(t), pour un déphasage φ\varphi que l’on fait varier — exactement la situation d’un point de l’écran où arrivent les deux ondes des fentes d’Young. Il s’exécute tel quel (EduPython), à deux lignes près (# À COMPLÉTER).

Questions :

  1. Compléter la ligne de la somme, puis celle de l’amplitude de SS.
  2. Exécuter pour φ=0\varphi = 0 : que vaut l’amplitude de la somme ? À quel type de point de l’écran cela correspond-il (brillant ou sombre) ?
  3. Recommencer pour φ=π\varphi = \pi. Conclure sur le lien entre déphasage et figure d’interférences.
  4. Le déphasage est lié à la différence de marche par φ=2πδ/λ\varphi = 2\pi\,\delta/\lambda. Quelle valeur de δ\delta (en fonction de λ\lambda) donne φ=π\varphi = \pi ? Retrouve-t-on la condition de frange sombre du cours ?

Fiche O5 — Python. Boucle while, listes et append, math.sin, max/min, tracé de plusieurs courbes : tout y est rappelé.

Script élève

# -*- coding: utf-8 -*-
# Ch11 - Interférences : addition de deux sinusoïdes de même période.
# Modélise deux ondes arrivant en un point de l'écran (fentes d'Young).
# À COMPLÉTER : 2 lignes (repérées par # À COMPLÉTER).
import math
import matplotlib.pyplot as plt

A = 1.0            # amplitude commune
T = 1.0            # période commune
phi = math.pi      # déphasage de s2 (rad) : essayer 0, math.pi/2, math.pi

temps = []
s1 = []
s2 = []
S = []

t = 0.0
while t <= 3.0:
    y1 = A * math.sin(2 * math.pi * t / T)
    y2 = A * math.sin(2 * math.pi * t / T + phi)
    y = 0                       # somme des deux signaux  # À COMPLÉTER
    temps.append(t)
    s1.append(y1)
    s2.append(y2)
    S.append(y)
    t = t + 0.02

S_min = S[0]
S_max = S[0]
for valeur in S:
    if valeur < S_min:
        S_min = valeur
    if valeur > S_max:
        S_max = valeur
amplitude_S = 0                 # (S_max - S_min) / 2   # À COMPLÉTER

print("phi =", phi, "rad  ->  amplitude de la somme =", amplitude_S)

plt.plot(temps, s1, linestyle="--", label="s1")
plt.plot(temps, s2, linestyle=":", label="s2")
plt.plot(temps, S, linewidth=2, label="S = s1 + s2")
plt.xlabel("t")
plt.ylabel("signal")
plt.legend()
plt.grid(True)
plt.show()

← Retour au portail du chapitre