# Méthode d'Euler semi-implicite

En mathématiques, la méthode d'Euler semi-implicite, également connue sous le nom de méthode d'Euler symplectique, méthode d'Euler semi-explicite, Euler–Cromer, et Newton–Størmer–Verlet (NSV), est une variante de la méthode d'Euler initialement conçue pour résoudre les équations de la mécanique hamiltonienne, un système d'équations différentielles ordinaires apparaissant en mécanique newtonienne.

## Position du problème

La méthode d'Euler semi-implicite peut être appliquée à une paire d'équations différentielles couplées de la forme
    $\forall t\in I,{\mathrm {d} x(t) \over \mathrm {d} t}=f(t,v(t)),\ {\mathrm {d} v(t) \over \mathrm {d} t}=g(t,x(t))$
où $I\subset \mathbb {R} ^{+}$, et $f\$, $g\$ sont des fonctions réelles sur $I\times \mathbb {R}$. $x\$ et $v\$ peuvent être des fonctions scalaires ou vectorielles.
On souhaite résoudre ce système d'équations avec les conditions initiales :
    $x(t_{0})=x_{0},\qquad v(t_{0})=v_{0}.$

## Méthode

La méthode d'Euler semi-implicite donne une solution approchée discrète du problème continu précédent par itérations de
    ${\begin{aligned}v_{n+1}&=v_{n}+g(t_{n},x_{n})\,\Delta t\\[0.3em]x_{n+1}&=x_{n}+f(t_{n},v_{n+1})\,\Delta t\end{aligned}}$
où $[t_{0},...,t_{N}]$ est une subdivision de $I$ telle que $\forall n\in [1,N],t_{n}-t_{n-1}=\Delta t$ et ainsi $t_{n}=t_{0}+n\Delta t$.
Cette méthode est rendue semi-implicite par le fait d'utiliser $v_{n+1}$ et non $v_{n}$ (cas de la méthode d'Euler explicite) dans le calcul de mise à jour de $x_{n+1}$.
Appliquer la même méthode avec des pas de temps négatifs pour le calcul de $(x_{n},v_{n})$ d'après $(x_{n+1},v_{n+1})$ donne après réarrangement des termes la seconde expression de la méthode d'Euler semi-implicite :
    ${\begin{aligned}x_{n+1}&=x_{n}+f(t_{n},v_{n})\,\Delta t\\[0.3em]v_{n+1}&=v_{n}+g(t_{n},x_{n+1})\,\Delta t\end{aligned}}$
La méthode d'Euler semi-implicite est, comme la méthode d'Euler explicite, un schéma d'ordre 1 de résolution numérique des équations différentielles.

## Exemple

Le mouvement d'une poutre vérifiant la loi de Hooke est donnée par :
    ${\begin{aligned}{\frac {\mathrm {d} x}{\mathrm {d} t}}&=v(t)\\[0.2em]{\frac {\mathrm {d} v}{\mathrm {d} t}}&=-{\frac {k}{m}}\,x=-\omega ^{2}\,x.\end{aligned}}$
Le schéma d'Euler semi-implicite pour cette équation s'écrit alors
    ${\begin{aligned}v_{n+1}&=v_{n}-\omega ^{2}\,x_{n}\,\Delta t\\[0.2em]x_{n+1}&=x_{n}+v_{n+1}\,\Delta t.\end{aligned}}$
En substituant $v_{n+1}$ dans la deuxième équation par l'expression donnée par la première, le schéma itératif se réécrit comme un système d'équations :
    ${\begin{bmatrix}x_{n+1}\\v_{n+1}\end{bmatrix}}={\begin{bmatrix}1-\omega ^{2}\Delta t^{2}&\Delta t\\-\omega ^{2}\Delta t&1\end{bmatrix}}{\begin{bmatrix}x_{n}\\v_{n}\end{bmatrix}},$
et comme le déterminant de cette matrice vaut 1, la transformation préserve les distances.
Ce schéma itératif conserve la fonctionnelle énergie modifiée $E_{h}(x,v)={\tfrac {1}{2}}\left(v^{2}+\omega ^{2}\,x^{2}-\omega ^{2}\Delta t\,vx\right)$, ce qui donne des orbites périodiques stables (pour des pas suffisamment petits) qui dévient en $O(\Delta t)$ des orbites exactes. La fréquence circulaire exacte $\omega$ augmente numériquement d'un facteur de $1+{\tfrac {1}{24}}\omega ^{2}\Delta t^{2}+O(\Delta t^{4})$.