Sous-sections

2.2 Approximation des dérivées par différences finies

Afin d'appliquer la méthode des différences finies, le domaine spatiale \bgroup\color{black}$ [0,L]$\egroup doit être divisé en \bgroup\color{black}$ N_{x}$\egroup intervalles, chacun de longueur \bgroup\color{black}$ h=L/Nx$\egroup . Le domaine temporelle est aussi divisée en \bgroup\color{black}$ N_{t}$\egroup intervalles de pas \bgroup\color{black}$ \Delta t=T/N_{t}$\egroup . Le domaine \bgroup\color{black}$ \Omega$\egroup est donc découpé suivant un maillage où chaque point \bgroup\color{black}$ (x_{i},t_{n})_{i=0,1,\ldots Nx}^{n=0,1,2,\ldots.}$\egroup est repéré sur l'axe \bgroup\color{black}$ x$\egroup par sa position \bgroup\color{black}$ x_{i}=ih$\egroup et sur l'axe \bgroup\color{black}$ t$\egroup par \bgroup\color{black}$ :t_{n}=n\Delta t$\egroup comme le montre la figure ci dessous.

Figure 2.1: maillage différences finies
\begin{figure}\begin{centering}
\input{schemadf.pstex_t}
\par
\end{centering}\par\par
\end{figure}

On pose dans ce qui suit :

$\displaystyle u(x_{i},t^{n})$ $\displaystyle =u[i\times h,n\times\Delta t]=u_{i}^{n}$ (2.2)
$\displaystyle u(x_{i+1},t^{n})$ $\displaystyle =u[(i+1)\times h,n\times\Delta t]=u_{i+1}^{n}$ (2.3)
$\displaystyle u(x_{i-1},t^{n})$ $\displaystyle =u[(i-1)\times h,n\times\Delta t]=u_{i-1}^{n}$ (2.4)
$\displaystyle u(x_{i},t^{n+1})$ $\displaystyle =u[i\times h,(n+1)\times\Delta t]=u_{i}^{n}$ (2.5)

2.2.1 Différenciation décentrée avancée

L'idée de base de la méthode des différences finis peut être décrite en considérant la définition de la dérivée d'une fonction \bgroup\color{black}$ u(x,t)$\egroup au point \bgroup\color{black}$ x=x_{0}$\egroup et à l'instant \bgroup\color{black}$ t=t_{0}.$\egroup

$\displaystyle \frac{\partial u}{\partial x}=\underset{h\rightarrow0}{\lim}\frac{u(x_{0}+h,t_{0})-u(x_{0},t_{0})}{h}$ (2.6)

Si \bgroup\color{black}$ u(x,t)$\egroup est continue, on peut s'attendre à ce que l'équation (2.6) soit une approximation ”raisonnable” de \bgroup\color{black}$ \frac{\partial u}{\partial x}$\egroup si \bgroup\color{black}$ h$\egroup est suffisamment petit. Le développement en série de Taylor de \bgroup\color{black}$ u(x_{0}+h,t_{0})$\egroup autour du point \bgroup\color{black}$ \left(x_{0},t_{0}\right)$\egroup donne :

$\displaystyle u(x_{0}+h,t_{0})$ $\displaystyle =$ $\displaystyle u(x_{0},t_{0})+\left.\frac{h}{1!}\frac{\partial u}{\partial x}\ri...
...ac{\partial^{2}u}{\partial x^{2}}\right\vert _{\left(x_{0},t_{0}\right)}+\cdots$ (2.7)
    $\displaystyle +\left.\frac{h^{n-1}}{\left(n-1\right)!}\frac{\partial^{n-1}u}{\p...
...+\left.\frac{h^{n}}{n!}\frac{\partial^{n}u}{\partial x^{n}}\right\vert _{\zeta}$   (2.8)

\bgroup\color{black}$ x_{0}\leq\zeta\leq\left(x_{0}+h\right)$\egroup et où le dernier terme peut être identifié comme étant le reste. Nous pouvons alors former les différences avancées en réarrangeant l'équation (2.7).

$\displaystyle \left.\frac{\partial u}{\partial x}\right\vert _{\left(x_{0},t_{0...
...{\partial^{2}u}{\partial x^{2}}\right\vert _{\left(x_{0},t_{0}\right)}+O(h^{2})$ (2.9)

En passant à une notation \bgroup\color{black}$ \left(i,n\right)$\egroup nous pouvons écrire :

$\displaystyle \left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}=\underset...
...\frac{h}{2!}\frac{\partial^{2}u}{\partial x^{2}}\right\vert _{i}^{n}+O(h^{2})}}$ (2.10)

On peut aussi écrire l'équation (2.10) comme suit :

$\displaystyle {\color{red}\left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}=\frac{u_{i+1}^{n}-u_{i}^{n}}{h}+\underset{\text{ET}}{\underbrace{O(h)}}}$ (2.11)

L'écriture de l'erreur de troncature en \bgroup\color{black}$ O\left(h\right)$\egroup implique que \bgroup\color{black}$ \left\vert ET\right\vert\leq Cte\times h$\egroup pour \bgroup\color{black}$ h\rightarrow0$\egroup et \bgroup\color{black}$ Cte>0.$\egroup

Remarque : \bgroup\color{black}$ O(h)$\egroup ne nous indique pas le comportement exacte de la solution (la dérivée première dans ce cas), mais seulement la tendance lorsque \bgroup\color{black}$ h\rightarrow0.$\egroup

D'autres représentation de la dérivée première peuvent être obtenues à partir de développement en série de Taylor.

2.2.2 Différenciation décentrée retardée.

Un développement en série de Taylor de \bgroup\color{black}$ u(x_{0}-h,t_{0})$\egroup :

$\displaystyle u(x_{0}-h,t_{0})=u(x_{0},t_{0})-\left.\frac{h}{1!}\frac{\partial ...
...ac{\partial^{3}u}{\partial x^{3}}\right\vert _{\left(x_{0},t_{0}\right)}+\cdots$ (2.12)

permet de définir l'approximation décentrée retardée:

$\displaystyle \left.\frac{\partial u}{\partial x}\right\vert _{\left(x_{0},t_{0...
...{\partial^{2}u}{\partial x^{2}}\right\vert _{\left(x_{0},t_{0}\right)}+O(h^{2})$ (2.13)

$\displaystyle {\color{red}\left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}=\frac{u_{i}^{n}-u_{i-1}^{n}}{h}+O(h)}$ (2.14)

2.2.3 Différenciation centrée

En faisant la différence entre l'équation (2.11) et l'équation (2.14), nous obtenons l'expression de la différenciation centrée qui s'écrit :

$\displaystyle {\color{red}\left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}=\frac{u_{i+1}^{n}-u_{i-1}^{n}}{2h}+O(h^{2})}$ (2.15)

2.2.4 Discrétisation de la dérivée seconde

Soit le développement avancé en série de Taylor :

$\displaystyle u(x_{0}+h,t_{0})=u(x_{0},t_{0})+\left.\frac{h}{1!}\frac{\partial ...
...ac{\partial^{4}u}{\partial x^{4}}\right\vert _{\left(x_{0},t_{0}\right)}+\cdots$ (2.16)

De même le développement retardé en série de Taylor s'écrit :

$\displaystyle u(x_{0}-h,t_{0})=u(x_{0},t_{0})-\left.\frac{h}{1!}\frac{\partial ...
...ac{\partial^{4}u}{\partial x^{4}}\right\vert _{\left(x_{0},t_{0}\right)}+\cdots$ (2.17)

La somme des l'équation (2.16) et (2.17) donne :

$\displaystyle {\color{red}\left.\frac{\partial^{2}u}{\partial x^{2}}\right\vert _{i}^{n}=\frac{u_{i+1}^{n}-2u_{i}^{n}+u_{i-1}^{n}}{h^{2}}+O(h^{2})}$ (2.18)

2.2.5 Opérateur de différenciation

On définit maintenant les opérateurs de différenciation décentrée avancée et retardée:

$\displaystyle {\color{red}\Delta_{x}u_{i}^{n}=u_{i+1}^{n}-u_{i}^{n}}$ (2.19)

$\displaystyle \left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}=\frac{\Delta_{x}u}{h}+O(h)$ (2.20)

$\displaystyle {\color{red}\nabla_{x}u_{i}^{n}=u_{i}^{n}-u_{i-1}^{n}}$ (2.21)

$\displaystyle \left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}=\frac{\nabla_{x}u}{h}+O(h)$ (2.22)

Les opérateurs de différenciation centrée s'écrivent :

$\displaystyle {\color{red}\delta_{x}u_{i}^{n}=u_{i+\frac{1}{2}}^{n}-u_{i-\frac{1}{2}}^{n}}$ (2.23)

$\displaystyle \delta_{x}^{2}u_{i}^{n}=\delta_{x}\left(\delta_{x}u_{i}^{n}\right)=u_{i+1}^{n}-2u_{i}^{n}+u_{i-1}^{n}$ (2.24)

et l'opérateur moyenne :

$\displaystyle \mu_{x}(u_{i}^{n})=\overline{(u_{i}^{n})}=\frac{1}{2}\left(u_{i+\frac{1}{2}}^{n}+u_{i-\frac{1}{2}}^{n}\right)$ (2.25)

\bgroup\color{black}$\displaystyle \overline{(\delta_{x}u_{i}^{n})}=\overline{\delta}_{x}u_{i}^{n}$\egroup

$\displaystyle {\color{red}\overline{\delta}_{x}u_{i}^{n}=\frac{1}{2}(u_{i+1}^{n}-u_{i-1}^{n})}$ (2.26)

Il est intéressant d'avoir des opérateurs spécifiques pour certaines différences centrées. Deux de ces opérateurs peuvent s'écrire en fonction des opérateurs données ci-dessus.

$\displaystyle \overline{\delta}_{x}u_{i}^{n}=\frac{1}{2}(\Delta_{x}u_{i}^{n}+\nabla_{x}u_{i}^{n})$ (2.27)

$\displaystyle \delta_{x}^{2}=\Delta_{x}u_{i}^{n}-\nabla_{x}u_{i}^{n}=\Delta_{x}\nabla_{x}u_{i}^{n}$ (2.28)

En utilisant ces nouveaux opérateurs, les différences centrées pour la dérivée première s'écrivent :

$\displaystyle \left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}=\frac{u_{...
...{n}-u_{i-1}^{n}}{2h}+O(h^{2})=\frac{\overline{\delta}_{x}u_{i}^{n}}{h}+O(h^{2})$ (2.29)

et pour la dérivée seconde :

$\displaystyle \left.\frac{\partial^{2}u}{\partial x^{2}}\right\vert _{i}^{n}=\f...
...{n}+u_{i-1}^{n}}{h^{2}}+O(h^{2})=\frac{\delta_{x}^{2}u_{i}^{n}}{h^{2}}+O(h^{2})$ (2.30)

Les opérateurs de différenciation avancée ou retardée, d'ordre plus élevé sont définis en appliquant successivement ces opérateurs :

\bgroup\color{black}$\displaystyle \delta_{x}^{n}u_{i}^{n}=\delta_{x}(\delta_{x}^{n-1}u_{i}^{n})$\egroup

$\displaystyle \Delta_{x}^{n}u_{i}^{n}=\Delta_{x}\left(\Delta_{x}^{n-1}u_{i}^{n}\right)$ (2.31)

$\displaystyle \nabla_{x}^{n}u_{i}^{n}=\nabla_{x}\left(\nabla_{x}^{n-1}u_{i}^{n}\right)$ (2.32)

Exemple :

\bgroup\color{black}$\displaystyle \frac{\delta_{x}^{2}u_{i}^{n}}{h^{2}}=\frac{\...
...rac{1}{2}}^{n})}{h^{2}}=\frac{u_{i+1}^{n}-2u_{i}^{n}+u_{i-1}^{n}}{h^{2}}$\egroup

$\displaystyle \frac{\Delta_{x}^{2}u_{i}^{n}}{h^{2}}=\frac{\Delta_{x}\left(u_{i+1}^{n}-u_{i}^{n}\right)}{h^{2}}=\frac{u_{i+2}^{n}-2u_{i+1}^{n}+u_{i}^{n}}{h^{2}}$ (2.33)

On peut écrire d'une façon générale la discrétisation d'une dérivée d'ordre \bgroup\color{black}$ m$\egroup , en utilisant ces différents opérateurs, nous obtenons alors :

$\displaystyle \left.\frac{\partial^{m}u}{\partial x^{m}}\right\vert _{i}^{n}\approx\left(\frac{\Delta_{x}^{m}}{h^{m}}\right)u_{i}^{n}$ (2.34)

Exemple 1:
$ m=4$ ,

$\displaystyle \left.\frac{\partial^{4}u}{\partial x^{4}}\right\vert _{i}^{n}\approx\left(\frac{\Delta_{x}^{4}}{h^{4}}\right)u_{i}^{n}$ (2.35)

Exemple 2:
discrétisation décentrée d'ordre 2

$\displaystyle \left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}$ $\displaystyle =\frac{1}{h}(u_{i+1}-u_{i})-\frac{h}{2}\frac{\partial^{2}u}{\partial x^{2}}+O(h^{2})$    
  $\displaystyle =\frac{1}{h}\Delta_{x}u_{i}-\frac{1}{2h}\Delta_{x}^{2}u_{i}+O(h^{2})$    
  $\displaystyle \approx\frac{-3u_{i}+4u_{i+1}-u_{i+2}}{2h}$    

2.2.6 Discrétisations classiques

Notons que la plupart des équations de la mécanique contiennent des dérivées premières et secondes. Les expressions sur 3 points des dérivées premières les plus utilisées sont :

dérivée opérateur D.F. approximation D.F. précision
\bgroup\color{black}$ \frac{\partial u}{\partial x}^{}$\egroup

Pour la dérivée seconde :

dérivée opérateur D.F. approximation D.F. précision
\bgroup\color{black}$ \frac{\partial^{2}u}{\partial x^{2}}$\egroup

2.2.7 Schémas d'ordre élevé (schéma compacte)

Pour obtenir des schémas d'ordre plus élevé, on peut augmenter le nombre de points de calcul, mais on peut aussi conserver des schémas compactes en introduisant des inconnues supplémentaires

schéma compacte pour la dérivée première

On choisie comme inconnues les dérivées \bgroup\color{black}$ \left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}=v_{i}^{n}$\egroup . Les développements en série de Taylor de \bgroup\color{black}$ u_{i+1}^{n}$\egroup et \bgroup\color{black}$ u_{i-1}^{n}$\egroup s'écrivent:

\bgroup\color{black}$\displaystyle u_{i+1}^{n}=u_{i}^{n}+h\frac{\partial u}{\par...
...^{3}}+\frac{h^{4}}{24}\frac{\partial^{4}u}{\partial x^{4}}+\theta(h^{5})$\egroup

\bgroup\color{black}$\displaystyle u_{i-1}^{n}=u_{i}^{n}-h\frac{\partial u}{\par...
...^{3}}+\frac{h^{4}}{24}\frac{\partial^{4}u}{\partial x^{4}}+\theta(h^{5})$\egroup

d'où l'approximation à l'ordre \bgroup\color{black}$ h^{4}$\egroup de \bgroup\color{black}$ \frac{\partial u}{\partial x}$\egroup

\bgroup\color{black}$\displaystyle \frac{\partial u}{\partial x}=\underbrace{\fr...
...{\partial^{3}u}{\partial x^{3}}}_{v_{i}^{n}}+O(h^{4})=v_{i}^{n}+O(h^{4})$\egroup

On note que \bgroup\color{black}$ \frac{\partial^{3}u}{\partial x^{3}}$\egroup est la dérivée seconde de \bgroup\color{black}$ v_{i}^{n}$\egroup et peut être approximée par

\bgroup\color{black}$\displaystyle \frac{\partial^{3}u}{\partial x^{3}}\approx\frac{\delta^{2}v_{i}^{n}}{h^{2}}+\theta(h^{2})$\egroup

d'où la relation

$\displaystyle v_{i}^{n}=\frac{\overline{\delta}_{x}u_{i}^{n}}{2h}-\frac{\delta^...
...sto(1+\frac{1}{6}\delta^{2})v_{i}^{n}=\frac{\overline{\delta}_{x}u_{i}^{n}}{2h}$ (2.36)

qui s'écrit:

$\displaystyle \left.\frac{\partial u}{\partial x}\right\vert _{i}^{n}\approx v_...
...overline{\delta}_{x}u_{i}^{n}}{1+\frac{1}{6}\delta^{2}}\right)+ \theta(h^{4})}$ (2.37)

L'équation (2.36) fournit une relation implicite pour le calcul de \bgroup\color{black}$ v_{i}^{n}$\egroup qui peut donc être déterminée en résolvant le système algébrique tri-diagonale (les \bgroup\color{black}$ u_{i}^{n}$\egroup étant supposées connues):

\bgroup\color{black}$\displaystyle \left[\begin{array}{ccccc}
\ddots & \ddots\ ...
...\
\frac{u_{i+1}^{n}-u_{i-1}^{n}}{2h}\\
\vdots\\
\ \end{array}\right]$\egroup

soit

\bgroup\color{black}$\displaystyle \frac{1}{6}(v_{i-1}^{n}+4v_{i}^{n}+v_{i}^{n})=\frac{u_{i+1}^{n}-u_{i-1}^{n}}{2h}$\egroup

schéma compacte pour la dérivée seconde

En posant \bgroup\color{black}$ \left.\frac{\partial^{2}u}{\partial x^{2}}\right\vert _{i}^{n}=$\egroup \bgroup\color{black}$ w_{i}^{n}$\egroup , on peut obtenir une approximation d'ordre 4 de la dérivée seconde:

\bgroup\color{black}$\displaystyle \frac{\partial^{2}u}{\partial x^{2}}=\underbr...
...{4}u}{\partial x^{4}}}_{w_{i}^{n}}+\theta(h^{4})=w_{i}^{n}+\theta(h^{4})$\egroup

dans laquelle on calcule \bgroup\color{black}$ \frac{\partial^{4}u}{\partial x^{4}}$\egroup avec une approximation de la dérivée seconde de \bgroup\color{black}$ v_{i}^{n}$\egroup :

\bgroup\color{black}$\displaystyle \frac{\partial^{4}u}{\partial x^{4}}=\frac{\delta^{2}v_{i}^{n}}{h^{2}}+\theta(h^{2})$\egroup

D'où le schéma compact pour la dérivée seconde:

$\displaystyle \left.\frac{\partial^{2}u}{\partial x^{2}}\right\vert _{i}^{n}\ap...
...ac{\delta_{x}^{2}u_{i}^{n}}{1+\frac{1}{12}\delta_{x}^{2}}\right)+\theta(h^{4})}$ (2.38)

qui nécessite aussi la résolution d'un système tri-diagonal pour déterminer les \bgroup\color{black}$ v_{i}^{n}$\egroup

Dérivée opérateur D.F. approximation DF ordre
\bgroup\color{black}$ \frac{\partial u}{\partial x}_{}^{}$\egroup

schéma d'ordre élevé sur plusieurs points

Des relations pouvant impliquer plus de trois points de maillage peuvent être obtenues en utilisant des développements en série de Taylor de \bgroup\color{black}$ u_{i+2}^{n}$\egroup , \bgroup\color{black}$ u_{i+1}^{n}$\egroup , \bgroup\color{black}$ u_{i-1}^{n}$\egroup et \bgroup\color{black}$ u_{i-2}^{n}$\egroup , ou en corrigeant l'erreur de troncature des schémas précédents. Par exemple le schéma décentré amont d'ordre 1:

\bgroup\color{black}$\displaystyle \frac{\Delta_{x}^{2}u_{i}^{n}}{h^{2}}=\frac{\...
...2}u}{\partial x^{2}}+h\frac{\partial^{3}u}{\partial x^{3}}+\theta(h^{2})$\egroup

peut conduire à un schéma à l'ordre 2:

\bgroup\color{black}$\displaystyle \frac{\Delta_{x}^{2}u_{i}^{n}}{h^{2}}-\frac{\...
...^{3}u_{i}^{n}}{h^{2}}=\frac{\partial^{2}u}{\partial x^{2}}+\theta(h^{2})$\egroup

Le tableau ci-dessous donne quelques une de ces relations :

Dérivée opér. D.F. approximation DF ordre
\bgroup\color{black}$ \frac{\partial^{3}u}{\partial x^{3}}$\egroup

2.2.8 Discrétisation des dérivées en temps

La discrétisation des dérivées en temps procède de la même démarche. En utilisant des développements de Taylor en temps de \bgroup\color{black}$ u_{i}^{n+1}$\egroup au voisinage de \bgroup\color{black}$ u_{i}^{n}$\egroup , on obtiens les formules classiques:

\bgroup\color{black}$\displaystyle \left.\frac{\partial u}{\partial t}\right\vert _{i}^{n}=\frac{u_{i}^{n+1}-u_{i}^{n}}{\Delta t}+\theta(\Delta t)$\egroup

\bgroup\color{black}$\displaystyle \left.\frac{\partial^{2}u}{\partial t^{2}}\ri...
...c{u_{i}^{n+1}-2u_{i}^{n}+u_{i-1}^{n}}{\Delta t^{2}}+\theta(\Delta t^{2})$\egroup

Le tableau ci dessous donne les approximations classiques des dérivées en temps

Dérivée opérateur D.F. approximation DF ordre
\bgroup\color{black}$ \left.\frac{\partial u}{\partial t}\right\vert _{i}^{n}$\egroup


Pr. Marc BUFFAT
marc.buffat@univ-lyon1.fr
2008-04-07