Physique-chimie · 1re spécialité · Ondes mécaniques

Pourquoi les vagues des bateaux rongent-elles les berges ?

Au Québec, des chercheurs ont mis en évidence l'effet du wakeboard et du wakesurf sur l'érosion des berges des lacs Memphrémagog et Lovering. On modélise les vagues créées par un bateau par une onde mécanique périodique. Complète le programme Python, puis utilise le simulateur pour comprendre comment la période, l'amplitude et la distance à la berge influencent le phénomène.

z(t) à la source — aperçut = 0,0 s

Problématique : comment les caractéristiques des ondes provoquées par les bateaux participent-elles à l'érosion des berges des lacs ?

On note A l'amplitude des vagues suivant l'axe z des altitudes, et on étudie l'altitude z à la date t d'un point M de la surface de l'eau, repéré par son abscisse x. L'origine z = 0 correspond à l'altitude de l'eau au repos.

00

Hypothèses et vocabulaire

Hypothèses (rappel du document)

On modélise par des ondes mécaniques périodiques les vagues créées par les bateaux. A est l'amplitude de ces ondes suivant l'axe z des altitudes. L'origine z = 0 correspond à l'altitude de l'eau dans le lac lorsqu'aucune onde ne se propage ; les points de la surface étudiés sont repérés par leur abscisse x.

Temps Élongation Période T Distance Élongation Longueur d'onde λ
Illustration — période T (représentation temporelle) et longueur d'onde λ (représentation spatiale)

1. Comment appelle-t-on la période spatiale d'une onde périodique ?

2. Dans quelle unité s'exprime la célérité v d'une onde ?

3. Quelle relation relie correctement la célérité v, la longueur d'onde λ et la période T ?

Vocabulaire — « en phase »

Deux points d'un milieu sont dits en phase s'ils vibrent exactement de la même façon au même instant : par exemple, s'ils se trouvent tous les deux au sommet d'une vague en même temps.

01

Compléter le programme Python

Consigne
  • Le programme trace z(t) à la source (x = 0) puis à l'abscisse xM, avec une célérité v = 10 m/s et une distance bateau‑berge L = 0,040 km.
  • Choisis une période T = 3 s, une amplitude A = 5 dm et une abscisse xM = 10 m — attention, xM doit être saisi en km dans le programme.
onde_bateau.py
from pylab import *

# Données modifiables
A =  # amplitude suivant z, en dm (entre 0 et Amax)
T =  # période de l'onde en s (entre 2 et 10)
xM =  # abscisse de M en km (entre 0 et L)

# Données non modifiables
v = 10       # célérité en m/s
L = 0.040    # distance bateau-berge suivant x, en km
tmax = 30    # date de fin en s
Amax = 10    # amplitude maximale en dm

t = linspace(0, tmax, 500)
def z(t):
    return 0.56*A*(sin(2*pi*t/T) - sin(4*pi*t/T))

fig = figure()
gcf().subplots_adjust(hspace = 0.7)

fig.add_subplot(2, 1, 1)
plot(t, z(t))
title("z(t) à la source"); xlabel("t (en s)"); ylabel("z (en dm)")
grid(True); ylim(-Amax, Amax); xlim(0, tmax)

fig.add_subplot(2, 1, 2)
plot(t, z(t - 1000*xM/v))
title("z(t) à xM = " + str(xM) + " km de la source")
xlabel("t (en s)"); ylabel("z (en dm)")
grid(True); ylim(-Amax, Amax); xlim(0, tmax)

show()
Indice

xM doit être exprimé dans la même unité que L (le km) pour que la comparaison 0 ≤ xM ≤ L ait un sens : 10 m = 0,010 km.

Résultat attendu

Deux courbes sinusoïdales de même forme, la seconde étant identique à la première mais décalée dans le temps (retardée) : c'est le retard mis par l'onde pour parcourir la distance xM à la célérité v.

Comprendre le code, ligne par ligne

Le programme utilise plusieurs briques de base du langage Python. Teste ta compréhension avant d'exécuter le code.

a. Dans def z(t): puis return 0.56*A*(...), pourquoi la deuxième ligne est-elle décalée vers la droite (indentée) ?

b. Que crée l'instruction fig = figure() ?

c. À quoi sert gcf().subplots_adjust(hspace = 0.7) ?

d. Que définissent ylim(-Amax, Amax) et xlim(0, tmax) ?

e. Dans title("z(t) à xM = " + str(xM) + " km de la source"), à quoi sert str(xM) ?

f. Que fait l'instruction show(), à la toute fin du programme ?

02

Simulateur interactif

Consigne
  • Fais varier T et A : que remarques-tu sur l'allure des courbes ?
  • Reviens à A = 5 dm, T = 3 s, puis fais varier xM : que se passe-t-il sur le graphique du bas ?
t (s)z (dm) t (s)z (dm)
Retard Δt = xM/v1,0 s
Période spatiale λ = v·T30 m
Vagues / minute = 60/T20
Signaux en phase ?non

4. Avec T = 3 s, A = 5 dm et v = 10 m/s (0 ≤ xM ≤ L = 40 m), pour quelle valeur de xM les deux signaux sont-ils en phase (hors xM = 0) ?

5. Quelle est la période spatiale λ de l'onde étudiée (T = 3 s, v = 10 m/s) ?

6. Dans les conditions de la question précédente (T = 3 s), combien de vagues touchent la rive en 1 minute ?

Indice

λ = v × T. Pour le nombre de vagues par minute, divise la durée (60 s) par la période T d'une vague.

+

Conclusion

À retenir
  • La vague créée par le bateau est une onde mécanique progressive périodique : elle transporte de l'énergie, sans transport de matière, de proche en proche à la célérité v.
  • Le signal reçu en xM a la même forme que celui de la source, mais retardé du temps xM/v mis par l'onde pour parcourir la distance source–berge.
  • Plus la période T est petite, plus le nombre de vagues frappant la rive par minute est grand : une activité nautique intense (wakeboard, wakesurf) augmente donc la fréquence des impacts sur la berge, ce qui favorise l'érosion.

Pense-bête — ondes mécaniques progressives périodiques

v = λ/Tcélérité, longueur d'onde, période
Δt = xM/vretard entre la source et un point M
λ = v·Tpériode spatiale
n = 60/Tnombre de vagues touchant la rive en 1 min

Pas de Thonny sous la main ? Utilise Basthon

Ouvrir dans un nouvel onglet ↗
Copie le programme complété ci-dessous (avec ses valeurs numériques), colle-le dans la console Basthon puis appuie sur Entrée.
onde_bateau_complet.py
from pylab import *

A = 5      # amplitude en dm
T = 3      # période en s
xM = 0.010 # abscisse de M en km (10 m)

v = 10
L = 0.040
tmax = 30
Amax = 10

t = linspace(0, tmax, 500)
def z(t):
    return 0.56*A*(sin(2*pi*t/T) - sin(4*pi*t/T))

fig = figure()
gcf().subplots_adjust(hspace = 0.7)

fig.add_subplot(2, 1, 1)
plot(t, z(t))
title("z(t) à la source"); xlabel("t (en s)"); ylabel("z (en dm)")
grid(True); ylim(-Amax, Amax); xlim(0, tmax)

fig.add_subplot(2, 1, 2)
plot(t, z(t - 1000*xM/v))
title("z(t) à xM = " + str(xM) + " km de la source")
xlabel("t (en s)"); ylabel("z (en dm)")
grid(True); ylim(-Amax, Amax); xlim(0, tmax)

show()
La console Basthon n'a pas pu se charger ici. Ouvre-la dans un nouvel onglet.