Le Calcul Variationnel en Mécanique Classique et l’Équation d’Euler-Lagrange
Résumé :Dans cette leçon, nous examinerons l’obtention de l’équation d’Euler-Lagrange de la Mécanique Analytique en utilisant les techniques du calcul variationnel et, à partir de cela, nous montrerons en détail son application à la résolution du problème de la brachistochrone.
Objectifs d’Apprentissage :
À la fin de cette leçon, l’étudiant sera capable de :
- Comprendre le principe de Hamilton de la moindre action
- Démontrer l’équation d’Euler-Lagrange
- Résoudre le problème de la brachistochrone en utilisant l’équation d’Euler-Lagrange.
TABLE DES MATIÈRES :
POURQUOI LE CALCUL VARIATIONNEL EN MÉCANIQUE CLASSIQUE
FORMULATION DU PROBLÈME VARIATIONNEL
L’ÉQUATION D’EULER-LAGRANGE
LE PROBLÈME DE LA BRACHISTOCHRONE
RÉPERTOIRE GITHUB AVEC L’ALGORITHME DE WOLFRAM
Pourquoi le calcul variationnel en mécanique classique
La physique newtonienne présente de nombreux problèmes qui peuvent être abordés de manière plus efficace en utilisant le calcul variationnel. Cette approche est fondamentale dans les équations de Lagrange et dans le principe de moindre action de Hamilton. Essentiellement, cette méthode consiste à trouver les trajectoires qui maximisent ou minimisent une certaine quantité. Par exemple, on peut rechercher la trajectoire entre deux points qui minimise la distance parcourue ou le temps de parcours. Un exemple de cette approche est le principe de Fermat, qui stipule que la lumière suit toujours la trajectoire qui minimise le temps de parcours, ce qui conduit à la loi de Snell de la réfraction de la lumière.
Le calcul variationnel offre de multiples avantages en mécanique classique. Par exemple, il permet d’obtenir des solutions analytiques exactes pour des systèmes avec symétrie, et des solutions approximatives à travers la théorie des perturbations variationnelles pour des systèmes plus complexes. De plus, dans des situations où il est difficile d’exprimer les forces en termes d’équations différentielles, le principe de moindre action fournit une méthode plus efficace pour résoudre les problèmes en mécanique classique. En résumé, le calcul variationnel est un outil fondamental qui offre une formulation alternative des lois de Newton, une unification des lois de la physique, une plus grande efficacité dans la résolution des problèmes et une plus grande précision dans la prédiction des résultats expérimentaux.
Formulation du problème variationnel
Le calcul variationnel vise à trouver la fonction y(x) qui extrémise la valeur du fonctionnel :
J(x,y(x))=\displaystyle \int_{x_1}^{x_2} f\left(x,y(x),\frac{dy(x)}{dx}\right)dx,
afin de trouver sa valeur maximale ou minimale. Dans cette équation, le fonctionnel J dépend de la fonction y(x) et de sa dérivée dy(x)/dx, tandis que les limites d’intégration restent fixes. Pour extrémiser l’intégrale, on applique des variations sur la fonction y(x), cherchant à obtenir la fonction qui rend la valeur du fonctionnel extrême. Par exemple, si on parvient à ce que l’intégrale atteigne sa valeur minimale, toute fonction dans son voisinage, peu importe à quelle distance elle est de y(x), augmentera la valeur du fonctionnel.
Pour établir le concept de fonction voisine, nous pouvons attribuer une représentation paramétrique y=(\alpha,x) à toutes les fonctions possibles y, de sorte que si \alpha=0, alors y(0,x)=y(x) est la fonction qui extrémise J. Ceci peut être exprimé de la manière suivante :
y(\alpha, x) = y(x) + \alpha \eta(x),
où \eta(x) est une fonction de classe \mathcal{C}^1 qui s’annule en x_1 et x_2, de sorte que la fonction y(\alpha,x) qui inclut cette variation est identique à y(x) aux points initiaux et finaux de la trajectoire d’intégration.
En substituant la fonction y(\alpha,x) qui inclut la variation \eta(x) à la place de y(x) dans l’intégrale qui définit le fonctionnel J, on obtient un nouveau fonctionnel qui dépend du paramètre \alpha :
J(x,y(\alpha, x)) = \displaystyle \int_{x_1}^{x_2} f\left(x,y(\alpha,x), \dfrac{d}{dx}y(\alpha,x)\right)dx
Pour qu’il existe des extrêmes locaux, il est nécessaire que la condition suivante soit remplie :
\left.\dfrac{\partial J(x,y(\alpha,x))}{\partial \alpha}\right|_{\alpha=0} = 0
pour toute fonction \eta(x).
L’Équation d’Euler-Lagrange
En analysant la dérivée \partial J(x,y(\alpha,x))/\partial \alpha, on obtient :
\begin{array}{rll} {}\dfrac{\partial J(x,y(\alpha,x))}{\partial \alpha} &=&\dfrac{\partial}{\partial \alpha} \displaystyle \int_{x_1}^{x_2} f\left(x,y(\alpha,x),\dfrac{dy(\alpha, x)}{dx}\right)dx \\ \\ &=&\displaystyle \int_{x_1}^{x_2} \left(\dfrac{\partial f}{\partial x}\dfrac{\partial x}{\partial \alpha} + \dfrac{\partial f}{\partial y(\alpha, x)}\dfrac{\partial y(\alpha, x)}{\partial \alpha} + \dfrac{\partial f }{ \partial \frac{dy(\alpha,x)}{dx}} \dfrac{\partial \frac{dy(\alpha,x)}{dx}}{\partial \alpha}\right)dx \\ \end{array}
À partir de ce point, il est important de noter que :
\begin{array}{rll} \dfrac{\partial x}{\partial \alpha} &=& 0 \\ \\ \dfrac{\partial y(\alpha,x)}{\partial \alpha} &=& \dfrac{\partial}{\partial \alpha} \left(y(x) + \alpha \eta(x) \right) = \eta(x) \\ \\ \dfrac{\partial}{\partial \alpha}\left( \dfrac{dy(\alpha, x)}{dx} \right)&=& \dfrac{\partial}{\partial \alpha} \left(\dfrac{dy(x)}{dx} + \alpha\dfrac{d\eta(x)}{dx} \right) = \dfrac{d\eta}{dx} \end{array}
De sorte que l’expression se réduit comme suit :
\begin{array} {} \dfrac{\partial J(x,y(\alpha,x))}{\partial \alpha} &=& \displaystyle \int_{x_1}^{x_2} \left(\dfrac{\partial f}{\partial y(\alpha,x)}\eta(x) + \dfrac{\partial f}{\partial \frac{dy(\alpha,x)}{dx}} \dfrac{d\eta(x)}{dx} \right)dx \\ \\ &=&\displaystyle \int_{x_1}^{x_2} \dfrac{\partial f}{\partial y(\alpha,x)}\eta(x) dx + \int_{x_1}^{x_2} \dfrac{\partial f}{\partial \frac{dy(\alpha,x)}{dx}} \dfrac{d\eta(x)}{dx} dx \end{array}
Ensuite, si nous observons la seconde intégrale, nous verrons qu’elle peut être simplifiée en utilisant l’intégration par parties :
\begin{array}{rll} \displaystyle \int_{x_1}^{x_2} \dfrac{\partial f}{\partial \frac{dy(\alpha,x)}{dx}} \dfrac{d\eta}{dx} dx &=& \left. \dfrac{\partial f}{\partial \frac{dy(\alpha,x)}{dx}} \eta(x)\right|_{x_1}^{x_2} - \displaystyle \int_{x_1}^{x_2}\eta(x) \dfrac{d}{dx}\left( \dfrac{\partial f}{\partial \frac{dy(\alpha, x)}{dx}} \right) dx\\ \\ &=& - \displaystyle \int_{x_1}^{x_2}\eta(x) \dfrac{d}{dx}\left( \dfrac{\partial f}{\partial \frac{dy(\alpha, x)}{dx}} \right)dx \end{array}
Et par conséquent :
\begin{array}{rll} {} \dfrac{\partial J(x,y(\alpha,x))}{\partial \alpha} &=& \displaystyle \int_{x_1}^{x_2} \left[ \eta(x) \dfrac{\partial f}{\partial y(\alpha, x)} - \eta(x) \dfrac{d}{dx}\left( \dfrac{\partial f}{\partial \frac{dy(\alpha,x)}{dx}} \right) \right]dx \\ \\ &=& \displaystyle \int_{x_1}^{x_2} \left[ \dfrac{\partial f}{\partial y(\alpha, x)} - \dfrac{d}{dx}\left( \dfrac{\partial f}{\partial \frac{dy(\alpha,x)}{dx}} \right) \right] \eta(x) dx \end{array}
Ainsi, par la condition que \left.\dfrac{\partial J (x,y(\alpha, x))}{\partial \alpha}\right|_{\alpha=0} = 0, et comme \eta(x) est une fonction quelconque soumise à la seule condition de s’annuler en x_1 et x_2, nous avons :
\dfrac{\partial f}{\partial y(0, x)} - \dfrac{d}{dx}\left( \dfrac{\partial f}{\partial \frac{dy(0,x)}{dx}}\right) = \dfrac{\partial f}{\partial y(x)} - \dfrac{d}{dx}\left( \dfrac{\partial f}{\partial \frac{dy(x)}{dx}}\right) = 0.
Enfin, en « simplifiant la notation » dans cette dernière expression, nous arrivons à ce qui est connu sous le nom d’Équation d’Euler-Lagrange :
\boxed{\dfrac{\partial f}{\partial y}= \dfrac{d}{dx}\left( \dfrac{\partial f}{\partial y^\prime} \right)},
et cela représente de manière beaucoup plus simple la condition nécessaire pour que le fonctionnel J atteigne une valeur extrême.
Le Problème de la Brachistochrone
Formulation du Problème
Le problème de la brachistochrone est un classique de la physique mécanique qui se résout par le calcul variationnel. La situation posée est la suivante : Supposons que nous avons un objet matériel qui se déplace sous l’effet d’un champ de forces constant, se déplaçant d’un point initial (x_1,y_1) à un point final (x_2,y_2), où le point initial est à une hauteur plus élevée que le point final. La question posée est : Quelle est la trajectoire que la particule doit suivre pour atteindre le point final dans le temps le plus court possible ?
Formulation de la Solution
Pour résoudre le problème de la brachistochrone, il est utile de considérer la situation de manière simple. On peut donc fixer le point de départ (x_1, y_1) à l’origine des coordonnées, tandis que le point d’arrivée (x_2,y_2) se trouve à droite de l’origine et en dessous de l’axe \hat{x}.

Dans cette situation, on peut considérer un champ de force agissant vers le bas (dans la direction -\hat{y}) généré par la gravité, et supposer que le mouvement se fait sans friction. Dans ce contexte, la particule est restreinte à suivre différentes trajectoires reliant les points de départ et d’arrivée dans le but de trouver celle qui minimise le temps de trajet.
Examen de l’Énergie
Pour résoudre ce problème, nous pouvons exploiter la conservation de l’énergie du système gravitationnel. L’énergie totale du système restera constante, en tenant compte à la fois de l’énergie cinétique E_{cin}=\frac{1}{2}mv^2 et de l’énergie potentielle gravitationnelle E_{pot,g}, où m est la masse de la particule et v sa vitesse. Pour l’énergie potentielle, on a pris l’origine comme référence, de sorte que E_{pot,g}(y=0)=0, tandis que pour toute autre hauteur y, on a E_{pot,g}(y)=mgy.
Comme la particule part de l’origine avec une vitesse nulle, son énergie totale est égale à zéro. Donc, on a :
E_{cin} + E_{pot,g}=0
Comme la particule tombe en dessous du point de référence, son énergie potentielle sera négative et son énergie cinétique sera positive. De cette manière, nous pouvons isoler la vitesse v à partir de l’équation de conservation de l’énergie et obtenir :
\begin{array}{rl} {} &\dfrac{1}{2}mv^2 + (-mgy) = 0 \\ \\ \vdash &\dfrac{1}{2}mv^2 = mgy \\ \\ \vdash &v^2 = 2gy \\ \\ \vdash &v = \sqrt{2gy} \end{array}
De cette façon, nous pouvons calculer la vitesse de la particule en tout point de sa trajectoire en fonction de la hauteur y à laquelle elle se trouve.
Examen du Temps de Trajet
Une fois que nous avons obtenu la vitesse de mouvement, nous pouvons construire l’élément de temps de trajet en utilisant l’élément de déplacement ds=\sqrt{dx^2 + dy^2} de la manière suivante :
\begin{array}{rl} {} dt &= \dfrac{ds}{v} = \dfrac{\sqrt{dx^2 + dy^2}}{\sqrt{2gy}}\\ \\ &= \sqrt{\dfrac{dx^2 + dy^2}{2gy} } \end{array}
De sorte que le temps de déplacement entre les points (x_1,y_1) et (x_2,y_2) peut être obtenu en intégrant
\begin{array}{rl} {} t &= \displaystyle \int_{(x_1,y_1)}^{(x_2,y_2)} dt \\ \\ &= \displaystyle \int_{(x_1,y_1)}^{(x_2,y_2)} \sqrt{\dfrac{dx^2 + dy^2}{2gy}} \\ \\ &= \displaystyle \dfrac{1}{\sqrt{2g}}\int_{y_1}^{y_2} \sqrt{\dfrac{1+ \left(\dfrac{dx}{dy}\right)^2 }{y}}dy \\ \\ \end{array}
Formulation du Problème Variationnel
Avec cette dernière expression, nous avons réussi à exprimer le temps comme un fonctionnel de la forme
{}t = J(y,x(y)) = \displaystyle \int_{y_1}^{y_2} f\left(y,x(y),\dfrac{dx(y)}{dy} \right) dy
où
f\left(y,x(y), \dfrac{dx(y)}{dx}\right) = \sqrt{\dfrac{1+ \left(\dfrac{dx(y)}{dy} \right)^2}{y}}
À ce stade, nous pouvons ignorer le facteur \sqrt{2g}, car optimiser J est exactement la même chose qu’optimiser \sqrt{2g}J.
Avec ce qui précède, nous pouvons maintenant construire l’équation d’Euler-Lagrange en suivant la même procédure utilisée précédemment, aboutissant finalement à :
\dfrac{\partial f}{\partial x} = \dfrac{d}{dy} \dfrac{\partial f}{\partial x^\prime}
Cependant, ici, nous pouvons voir que \dfrac{\partial f}{\partial x} = 0, donc
\dfrac{d}{dy}\dfrac{\partial f}{\partial x^\prime} = 0,
ou en d’autres termes
\dfrac{\partial f}{\partial x^\prime} = \dfrac{1}{\sqrt{2a}},
où a est une constante arbitraire écrite de cette manière car elle est « pratique » pour les développements ultérieurs.
Résolution du Problème Variationnel
En substituant la fonction f dans cette dernière expression, on obtient :
\begin{array}{rl} {} &\dfrac{\partial }{\partial x^\prime} \sqrt{\dfrac{1+ x^{\prime 2}}{y}} = \dfrac{1}{\sqrt{2a}} \\ \\ \vdash & \dfrac{1}{2}\left( \dfrac{1 + x^{\prime 2} }{y} \right)^{-1/2} \left(\dfrac{2x^\prime}{y} \right) = \dfrac{1}{\sqrt{2a}} \\ \\ \vdash & \dfrac{1}{2}\sqrt{\dfrac{y}{1 + x^{\prime 2}}} \left(\dfrac{2x^\prime}{y} \right) = \dfrac{1}{\sqrt{2a}} \\ \\ \vdash & \sqrt{\dfrac{4x^{\prime 2} y}{4y^2 (1 + x^{\prime 2})} } = \sqrt{\dfrac{1}{2a}} \\ \\ \vdash & \dfrac{y x^{\prime 2} }{y^2 (1 + x^{\prime 2})} = \dfrac{1}{ 2a} \\ \\ \vdash & 2ayx^{\prime 2} = y^2 + y^2 x^{\prime 2} \\ \\ \vdash & x^{\prime 2} (2ay - y^2) = y^2 \\ \\ \vdash & \left(\dfrac{dx}{dy}\right)^2 = \dfrac{y^2}{2ay - y^2} \\ \\ \vdash & \dfrac{dx}{dy} = \pm \sqrt{\dfrac{y^2}{2ay - y^2}} \\ \\ \vdash & dx = \pm \dfrac{ydy}{\sqrt{2ay - y^2}} \\ \\ \vdash & x = \displaystyle \pm \int \dfrac{y}{\sqrt{2ay - y^2}}dy \end{array}
Pour résoudre cette intégrale, une option à considérer est de réaliser la substitution suivante
\begin{array} {} y &=& a[1-\cos(\theta)] \\ dy &=& a\sin(\theta) d\theta \end{array}
Avec ceci, nous avons :
\begin{array}{rl} {} x= & \pm \displaystyle \int \dfrac{y}{\sqrt{2ay - y^2}}dy = \displaystyle \int \dfrac{a[1-\cos(\theta)]a\sin(\theta)}{\sqrt{2a^2[1-\cos(\theta)] - a^2[1-\cos(\theta)]^2 }}d\theta \\ \\ & {} = \pm \displaystyle \int \dfrac{a^2[1-\cos(\theta)]\sin(\theta)}{\sqrt{a^2[1-\cos(\theta)]\left\{ 2 - [1-\cos(\theta)] \right\} }}d\theta \\ \\ & {} = \pm \displaystyle \int \dfrac{a[1-\cos(\theta)]\sin(\theta)}{\sqrt{[1-\cos(\theta)] [1 + \cos(\theta)] }}d\theta \\ \\ & {} = \pm \displaystyle \int \dfrac{a[1-\cos(\theta)]\sin(\theta)}{\sqrt{ 1-\cos^2(\theta)}}d\theta \\ \\ & {} = \pm \displaystyle \int \dfrac{a[1-\cos(\theta)]\sin(\theta)}{\sin(\theta)}d\theta \\ \\ & {} = \pm \displaystyle \int a[1-\cos(\theta)] d\theta \\ \\ & {} = \pm a(\theta - \sin(\theta)) + C \end{array}
Nous pouvons observer que la courbe brachistochrone peut être exprimée comme une courbe paramétrique en coordonnées polaires, qui coïncide avec une cycloïde ayant son point de départ à l’origine.
\begin{array} {} & x(\theta) &=& \pm a(\theta - \sin(\theta)) \\ & y(\theta) &=& a(1-\cos(\theta)) \end{array}
La constante d’intégration C a été annulée pour satisfaire la condition initiale que la trajectoire commence à l’origine. De plus, nous pouvons observer qu’il existe un couple d’équations offrant des solutions possibles au problème, où la constante a peut être ajustée pour que la courbe passe par le point (x_2,y_2) à la fin du trajet. Ces équations sont :
Option 1 :\boxed{\begin{array} {} & x(\theta) &=& a(\theta - \sin(\theta)) \\ & y(\theta) &=& a(1-\cos(\theta)) \end{array}}
Option 2 :\boxed{\begin{array} {} & x(\theta) &=& - a(\theta - \sin(\theta)) \\ & y(\theta) &=& a(1-\cos(\theta)) \end{array}}
La solution viable pour ce problème est donnée par la seconde option, et en ajustant la constante a comme une valeur négative, nous obtenons une courbe qui remplit les conditions nécessaires pour être une solution.

Ajustement Final de la Solution
Après les derniers ajustements effectués, la courbe brachistochrone a la forme paramétrique :
\begin{array} {} x(\theta) &= b(\theta - \sin(\theta)) \\ y(\theta) &= -b(1-\cos(\theta)) \end{array}
Nous avons remplacé a=-b, où 0\lt b. La courbe a une période 2b\pi et doit satisfaire la condition x_2 \in ]0,2b\pi[ et y_2 \in ]-2b,0[. Cela est crucial, car cela exige que la courbe brachistochrone soit représentée comme un seul arc de cycloïde, car la solution cessera d’être valide si la particule revient au repos en revenant à un point de hauteur zéro.
Pour ajuster ces équations au problème, nous devons trouver les valeurs de \theta et b qui satisfont le système :
\begin{array} {} x_2 &= b(\theta - \sin(\theta))\\ y_2 &= - b(1-\cos(\theta)) \end{array}
Ce système non linéaire ne semble pas avoir de solutions analytiques, donc nous utiliserons des méthodes numériques dans Wolfram Mathematica. Ci-dessous, une série d’étapes pour résoudre le problème :
Étape 1 : Établir le Système
Établir les équations qui forment le système à résoudre
eq1 = x2 == b*(theta - Sin[theta])
eq2 = y2 == -b*(1 - Cos[theta])
Étape 2 : Définir le Point d’Arrivée
Établir le point auquel la particule arrivera à la fin de son trajet. Dans ce cas, nous le fixerons à (x_2,y_2)=(1,-2). Vous pouvez modifier ces valeurs pour tester d’autres configurations similaires.
x2val = 1; y2val = -2;
Étape 3 : Calculer Numériquement les Valeurs Recherchées
Utiliser la fonction « FindRoot » pour calculer numériquement la solution du problème
sol = FindRoot[{eq1, eq2} /. {x2 -> x2val, y2 -> y2val}, {{b,1}, {theta, 1}}]
Ici, nous avons utilisé les valeurs b=1 et \theta=1 comme point de départ pour l’approximation numérique de la solution. Ainsi, nous obtenons comme solution b\approx 2.4056 et \theta \approx 1.40138
Étape 4 : Vérification des Résultats
Rappelons que, pour que ces réponses aient un sens physique, il est nécessaire que x_2 \in ]0,2b\pi[ et y_2 \in ]-2b, 0[. Nous pouvons vérifier que c’est bien le cas rapidement grâce à la procédure suivante
Tout d’abord, nous extrayons les valeurs de b et \theta obtenues comme solution
bval = sol[[1, 2]]; thetaval = sol[[2, 2]];
Et ensuite, nous demandons une confirmation
If[0 < x2val < 2*Pi*bval && -2*bval < y2val < 0 "Valeurs valides", "Valeurs invalides"]
Si tout s'est bien passé, nous devrions obtenir "valeurs valides" en sortie. Ce bout de code vous aidera à vérifier si la situation physique est correctement modélisée.
Avec ces procédures, nous avons finalement ajusté complètement notre courbe solution, qui relie les points (x_1,y_1)=(0,0) et (x_2,y_2)=(1,-2). La courbe résultante est :
\begin{array} {} x(\theta) &\approx 2.4056(\theta - \sin(\theta)) \\ y(\theta) &\approx -2.4056(1-\cos(\theta)) \end{array}\;\;;\theta\in [0, 1.40138]
Ce qui graphiquement ressemble à ceci :

Répertoire GitHub avec l'algorithme Wolfram
Le code complet de la solution au problème de la brachistochrone, y compris l'algorithme développé dans Wolfram Mathematica, est disponible pour téléchargement et consultation dans mon répertoire GitHub. Ce répertoire comprend un fichier `.nb` avec le code au format notebook interactif, ainsi qu'une version en texte brut `.m` pour ceux qui préfèrent voir directement le code.
Vous pouvez télécharger le répertoire depuis GitHub ici.
En plus du code, le répertoire contient un fichier "README" avec des instructions détaillées sur l'utilisation et la compréhension de l'algorithme, ainsi qu'une explication étape par étape de la solution au problème de la brachistochrone. J'espère que vous le trouverez utile !
