2024-05-04 — 2024-12-13

Découvrez les maths fascinantes qui décrivent comment une onde se propage sur une corde de guitare, de la dérivation de l'équation d'onde, influence de la tension et de la masse linéique, solutions, simulations et un aperçu de la physique des instruments à cordes.

L’équation d’onde

Attention : article assez dense en maths, sur un sujet que j’ai découvert en l’écrivant. Il pourrait donc y avoir des erreurs. N’hésitez pas à commenter si quelque chose vous semble bizarre !

L'

autre jour, je regardais ma guitare et je me suis rendu compte que je ne savais pas comment les ondes se comportent sur une corde, d’un point de vue mathématique. Comment se propagent-elles ? La corde est fixée entre deux points. On la pince en la déplaçant à un certain endroit, puis on la lâche. Que se passe-t-il alors ?

Dérivation

Imaginez une corde avec une tension TT et une masse linéique (ou densité linéaire de masse) μ\mu. On va s’intéresser uniquement aux déplacements verticaux de la corde, qu’on supposera petits (comme sur un instrument à cordes). On va modéliser notre corde par une fonction yy, qui donne le déplacement vertical en fonction de la coordonnée xx et du temps tt.

y:[0,L]×R+[ymax,ymax](x,t)y(x,t)\begin{align} y: [0,L] \times \mathbb R^+ &\longrightarrow [-y_\text{max}, y_\text{max}] \\ (x, t) &\longmapsto y(x,t) \end{align}

Oublions le temps un instant, et regardons une situation statique. Voici un petit bout de corde avec la tension qui s’exerce à ses deux extrémités.

Il ne se passe pas grand-chose ici : la corde est droite, les forces de tension s’équilibrent, tout reste en place. Mais regardons ce qui se passe quand il y a une courbure.

Ici, on imagine bien que la force nette va tirer le bout de corde vers le bas. On peut trouver facilement la masse de ce segment : mΔx=μΔxm_{\Delta x} = \mu \Delta x. Si on arrive à trouver la force nette qui s’applique dessus, on pourra utiliser la deuxième loi de Newton.

On a supposé que le mouvement de la corde se faisait uniquement selon l’axe yy. Ça veut dire qu’on peut se concentrer sur les forces verticales agissant sur notre segment, en x0x_0 et x0+Δxx_0 + \Delta x.

Sur ce schéma, on voit que la force verticale en x0x_0 est Fx0=Tsin(θ)F_{x_0} = -T \sin(\theta). Comme on a supposé les déplacements yy petits, on peut faire l’approximation des petits angles chère aux physiciens, et utiliser la pente plutôt que le sin\sin 0, ce qui donne :

Fx0=Tddxy(x0)F_{x_0}=-T \frac{d}{dx}y(x_0)

On peut trouver la force à l’autre extrémité de la même manière 1:

Fx0+Δx=Tddxy(x0+Δx)F_{x_0+\Delta x}=T \frac{d}{dx}y(x_0+\Delta x)

On peut les additionner pour obtenir la force nette agissant sur ce petit bout de corde.

Fnet=T(ddxy(x0+Δx)ddxy(x0))F_\text{net} = T\left( \frac{d}{dx}y(x_0+\Delta x) - \frac{d}{dx}y(x_0) \right)

Parfait ! On a tout ce qu’il faut pour appliquer la deuxième loi de Newton. Réintroduisons aussi le temps dans l’équation.

T(xy(x0+Δx,t)xy(x0,t))=Fx0,t=mΔxax0,t=μΔx2t2y(x0,t)T\left( \frac{\partial}{\partial x}y(x_0+\Delta x, t) - \frac{\partial}{\partial x}y(x_0, t) \right) = F_{x_0,t} = m_{\Delta x} a_{x_0,t} = \mu \Delta x \frac{\partial^2}{\partial t^2}y(x_0,t)

En réorganisant un peu :

Txy(x0+Δx,t)xy(x0,t)Δx=μ2t2y(x0,t)T\frac{ \frac{\partial}{\partial x}y(x_0+\Delta x, t) - \frac{\partial}{\partial x}y(x_0, t)} {\Delta x} = \mu \frac{\partial^2}{\partial t^2}y(x_0,t)

En supposant que notre fonction yy est suffisamment régulière (‘well-behaved’), on a :

xy(x0+Δx,t)xy(x0,t)ΔxΔx02x2y(x0,t)\frac{ \frac{\partial}{\partial x}y(x_0+\Delta x, t) - \frac{\partial}{\partial x}y(x_0, t)} {\Delta x} \xrightarrow[\Delta x \to 0]{} \frac{\partial^2}{\partial x^2}y(x_0, t)

Au final, en prenant un xx général au lieu de x0x_0, notre équation devient :

T2x2y(x,t)=μ2t2y(x,t)T \frac{\partial^2}{\partial x^2}y(x, t) = \mu \frac{\partial^2}{\partial t^2}y(x, t)

Ou, comme on la présente plus souvent :

2t2y(x,t)=Tμ2x2y(x,t)\frac{\partial^2}{\partial t^2}y(x, t) = \frac T \mu \frac{\partial^2}{\partial x^2}y(x, t)

Ça correspond bien à notre intuition de départ : plus la corde est courbée à un endroit, plus elle va bouger vite. Plus la tension est élevée, plus ça va vite ; plus la masse linéique est grande, plus c’est lent. Le ‘sanity check’ est passé.

À partir de là, maintenant qu’on a cette équation aux dérivées partielles, on peut faire deux choses : s’arrêter ici et aller simuler ça sur un ordinateur, ou essayer de trouver des solutions explicites.

Solutions

Bien sûr, cette équation est idéalisée, elle ne reflète pas toute la réalité. Par exemple, il n’y a pas d’amortissement, un mouvement continuerait indéfiniment. Mais elle est quand même utile pour comprendre comment les ondes se propagent dans ce milieu, surtout si on peut trouver la forme générale des solutions.

Séparation des variables

Essayons de simplifier le problème en ‘testant’ l’hypothèse que yy peut s’écrire comme le produit de deux fonctions plus simples, chacune dépendant d’un seul paramètre :

y(x,t)=X(x)T(t)y(x,t) = X(x) T(t)

Ça simplifie énormément le problème et limite les formes que yy peut prendre. Substituons yy par ce produit dans l’équation d’onde :

2t2y(x,t)=Tμ2x2y(x,t)2t2[X(x)T(t)]=Tμ2x2[X(x)T(t)]X(x)T(t)=TμX(x)T(t)\begin{align} \frac{\partial^2}{\partial t^2}y(x, t) &= \frac T \mu \frac{\partial^2}{\partial x^2}y(x, t) \\ \frac{\partial^2}{\partial t^2}[X(x)T(t)] &= \frac T \mu \frac{\partial^2}{\partial x^2}[X(x)T(t)] \\ X(x)T''(t) &= \frac T \mu X''(x)T(t) \end{align}

Quand X(x)0X(x) \neq 0 et T(t)0T(t) \neq 0, on peut réarranger un peu 2

T(t)T(t)=TμX(x)X(x)\frac{T''(t)}{T(t)} =\frac T \mu \frac {X''(x)}{X(x)}

Chaque côté ne dépend que d’une seule variable, ce qui signifie qu’ils sont tous les deux égaux à la même constante !

Résolution de chaque côté

Prenons d’abord le côté gauche

T(t)T(t)=α RT(t)=αT(t)\begin{align} \frac{T''(t)}{T(t)} &= \alpha\ \in \mathbb R \\ T''(t) &= \alpha T(t) \end{align}

Si on cherche une fonction dont la dérivée seconde est quasiment la même (à un facteur près), on pense à l’exponentielle. Posons T(t)=eatT(t) = e^{at}. On obtient :

a2eat=αeat    a2=αa^2 e^{at} = \alpha e^{at} \iff a^2 = \alpha

Si α>0\alpha > 0, on a T(t)=eαtT(t) = e^{\sqrt{\alpha} t}, mais on ne cherche probablement pas une fonction exponentielle, car elle ne satisfera pas nos conditions aux limites. Par contre, si α<0\alpha < 0, on a T(t)=e±itαT(t) = e^{\pm it\sqrt{-\alpha}}, ce qui ressemble beaucoup plus aux ondes dont on parle depuis le début.

C’est logique intuitivement : si T(t)/T(t)>0T''(t)/T(t) > 0, la fonction a une courbure positive quand elle est déjà positive, ce qui la fait croître encore plus. Dans l’autre cas, elle a une courbure négative, ce qui rappelle la force de rappel qu’on a trouvée dans la première partie.

Pour simplifier, posons α=k2\alpha = -k^2, de sorte qu’on ait :

T(t)=e±iktT(t) = e^{\pm ikt}

On peut suivre exactement la même procédure pour XX, qui obéit à la même équation avec une constante multiplicative en plus.

X(x)=k2μTX(x)X''(x) = -k^2 \frac \mu T X(x)

et essayer X(x)=ebxX(x) = e^{b x}

b2ebx=k2μTebx    b2=k2μTb^2 e^{b x} = -k^2 \frac \mu T e^{b x} \iff b^2 = -k^2 \frac \mu T

Donc b=±ikμTb = \pm ik \sqrt{\frac \mu T} . Définissons λ=kμT\lambda = k \sqrt \frac \mu T pour simplifier.

Nos deux solutions ‘élémentaires’ résultantes (en fait quatre, si on compte les signes) sont :

T(t)=e±iktX(x)=e±iλx\begin{align} T(t) &= e^{\pm ikt} \\ X(x) &= e^{\pm i \lambda x} \end{align}

Mais l’équation est linéaire, ce qui signifie que n’importe quelle combinaison linéaire de ces solutions est aussi une solution. La forme générale est donc :

y(x,t)=X(x)T(t)=(A1eiλx+B1eiλx)(A2eikt+B2eikt)y(x,t) = X(x)T(t) = (A_1 e^{i \lambda x} + B_1e^{-i \lambda x}) (A_2 e^{ikt} + B_2e^{-ikt})

A1,A2,B1,B2CA_1, A_2, B_1, B_2 \in \mathbb C

Application des conditions aux limites

Spatiales

On est prêt à appliquer quelques conditions aux limites. D’abord, la corde est fixe en x=0x=0 et x=Lx=L, ce qui signifie que t\forall t on a y(0,t)=y(L,t)=0y(0,t) = y(L,t) = 0. La première condition se traduit par :

y(0,t)=X(0)T(t)=(A1+B1)(A2eikt+B2eikt)=0y(0,t) = X(0)T(t) = (A_1+B_1)(A_2 e^{ikt} + B_2 e^{-ikt}) = 0

Donc au moins un des membres est nul. Si le terme de droite était nul, ça signifierait A2=B2=0A_2 = B_2 = 0, ce qui mène à une corde immobile. Sinon, on doit avoir B1=A1B_1 = -A_1, et

X(x)=A1(eiλxeiλx)=2iA1sin(λx)=Csin(λx)\begin{align} X(x) &= A_1 (e^{i \lambda x} -e^{-i\lambda x}) = 2i A_1 \sin(\lambda x) \\ &= C \sin(\lambda x) \end{align}

En appliquant la condition à l’autre bout de la corde, on obtient :

X(L)=Csin(λL)=0    λL=nπ    λ=nπLX(L) = C \sin(\lambda L) = 0 \iff \lambda L=n\pi \iff \lambda=\frac{n\pi}{L}

Ce qui est valide pour tout nNn \in \mathbb N^*, signifiant que XX peut être une superposition de ces solutions :

X(x)=nNCnsinnπLxX(x) = \sum_{n\in\mathbb N^*} C_n \sin\frac{n\pi}{L} x

Temporelles

Si on pense au mouvement d’une corde de guitare, au moment où on la pince initialement, sa vitesse est nulle partout (avant que le musicien ne la lâche). Ce qui signifie que T(0)=0T'(0) = 0 :

T(t)=ikA2eiktikB2eiktT(0)=ikA2ikB2=0    A2=B2\begin{align} T'(t) &= ikA_2 e^{ikt} - ikB_2 e^{-ikt} \\ T'(0) &= ikA_2 - ikB_2 = 0 \iff A_2 =B_2 \end{align}

On peut maintenant simplifier l’écriture de TT :

T(t)=A2(eikt+eikt)=2A2cos(kt)=Dcos(kt)\begin{align} T(t) &= A_2(e^{ikt}+e^{-ikt}) = 2A_2 \cos(kt) \\ &=D \cos(kt) \end{align}

On sait aussi que k=λTμ=nπLTμk=\lambda \sqrt \frac T \mu = \frac{n\pi} L \sqrt \frac T \mu, ce qui veut dire qu’on a aussi une superposition ici :

T(t)=nNDncos(TμnπLt)T(t) = \sum_{n \in \mathbb N^*} D_n \cos\left(\sqrt \frac T \mu \frac{n\pi} L t\right)

Solution finale

En combinant ces termes, avec de nouvelles constantes ana_n, on a 4

y(x,t)=nNansin(nπxL)cos(TμnπtL)y(x,t) = \sum_{n\in\mathbb N^*} a_n \sin \left( \frac{n\pi x} L \right) \cos \left( \sqrt \frac T \mu \frac{n\pi t} L\right)

Et en utilisant la formule sin(a)cos(b)=12(sin(a+b)+sin(ab))\sin(a)\cos(b) = \frac 1 2 (\sin(a+b) + \sin(a-b)) on obtient

y(x,t)=12nNan(sinnπL(x+tTμ)+sinnπL(xtTμ))y(x,t) = \frac 1 2 \sum_{n \in \mathbb N^*} a_n \left( \sin \frac{n\pi}{L}\left(x+ t\sqrt \frac T \mu \right) + \sin \frac{n\pi}{L}\left(x- t\sqrt \frac T \mu \right) \right)

C’est une forme plus facile à interpréter : pour chaque fréquence (mode nn), il y a une onde qui va vers la droite et une autre vers la gauche. Sous cette forme, on voit aussi que c=Tμc = \sqrt \frac T \mu est la vitesse à laquelle l’onde se propage. Réécrivons-le avec cette simplification :

y(x,t)=12nNan(sinnπL(x+ct)+sinnπL(xct))y(x,t) = \frac 1 2 \sum_{n \in \mathbb N^*} a_n \left( \sin \frac{n\pi}{L}\left(x+ ct \right) + \sin \frac{n\pi}{L}\left(x- ct \right) \right)

En fait, il nous reste une inconnue, ou plutôt une infinité : tous les coefficients ana_n. Mais on peut les déterminer à partir de l’état initial de la corde y(x,0)y(x, 0). Si on injecte t=0t=0, on obtient :

y(x,0)=nNansin(nπxL)y(x, 0) = \sum_{n\in\mathbb N^*} a_n \sin \left( \frac{n\pi x} L \right)

Ce qui n’est autre que la décomposition en série de Fourier de l’état initial.

(TODO ajouter une explication sur les séries de Fourier)

an=2L0Ly(x,0)sinnπxLdxa_n = \frac 2 L \int_0^L y(x,0) \sin \frac {n\pi x} L dx

Pour en savoir plus

Simulation

Allez, un peu de fun. En discrétisant le domaine (spatial et temporel), on peut modéliser la corde au temps tt par un tableau y~tRn\tilde{y}_t \in \mathbb R^n, où n=L/Δxn = L / \Delta x et Δx\Delta x est le pas spatial. On peut suivre la vitesse verticale de la corde en chaque point avec un autre tableau v~tRn\tilde{v}_t \in \mathbb R^n.

De cette façon, on connaît l’état du système au temps tt, et on peut le mettre à jour en se basant sur l’équation d’onde. On fait ça en utilisant une approximation par différences finies de la dérivée seconde spatiale (qui est juste l’approximation qu’on obtient en considérant la définition de la dérivée) :

2x2y(x,t)y(xΔx,t)2y(x,t)+y(x+Δx,t)Δx2\frac {\partial^2}{\partial x^2} y(x,t) \approx \frac {y(x-\Delta x, t) - 2y(x, t) + y(x+ \Delta x, t)} {\Delta x^2}

À partir de ça, en utilisant l’équation d’onde, on obtient une approximation a~(x,t)\tilde{a}(x,t) de l’accélération. Intégrer une fois est facile à approximer :

tt+Δta~(x,t)dta~(x,t)Δt=:Δv~t\int_t^{t+\Delta t} \tilde{a}(x, t) dt \approx \tilde{a}(x, t) \Delta t =: \Delta \tilde{v}_t

Ceci nous donne la variation de vitesse, avec laquelle on peut mettre à jour notre v~t+Δtv~t+Δv~\tilde{v}_{t+\Delta t} \leftarrow \tilde{v}_t + \Delta \tilde{v} et en ‘intégrant’ à nouveau…

tt+Δtv~(x,t)dtv~tΔt=:Δy~t\int_t^{t+\Delta t} \tilde{v}(x, t) dt \approx \tilde{v}_t \Delta t =: \Delta \tilde{y}_t

…on obtient la mise à jour de notre yy en faisant y~t+1y~t+Δy~t\tilde{y}_{t+1} \leftarrow \tilde{y}_t + \Delta \tilde{y}_t et le cycle recommence, approximant la nouvelle position et la nouvelle vitesse à chaque pas de temps. Bien sûr, tout ça ne sert à rien si on ne peut pas le voir en action !

100
4
1

Comparaison avec une vraie corde


  1. En effet ddxy(x)=tanθ=sinθcosθsinθ\frac d {dx} y(x) = \tan \theta = \frac {\sin\theta}{\cos\theta} \approx \sin\theta car cosθ1\cos \theta \approx 1 quand θ\theta est proche de 00.
  2. La différence de signe vient des deux directions opposées de la tension.
  3. Sinon, les deux côtés de l’équation sont de toute façon égaux à zéro.
  4. Il n’y a qu’une seule somme car kk et λ\lambda dépendent linéairement l’un de l’autre (via nn).