Différence finie

Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Différences finies)
Aller à : navigation, rechercher

En mathématique, une différence finie est une expression de la forme f(x + b) − f(x + a). (où f est une fonction numérique) ; la même expression divisée par b − a s'appelle un taux d'accroissement (ou taux de variation), et il est possible, plus généralement, de définir de même des différences divisées. L'approximation des dérivées par des différences finies joue un rôle central dans les méthodes des différences finies utilisées pour la résolution numérique des équations différentielles, tout particulièrement pour les problèmes de conditions aux limites.

Les opérateurs mettant en jeu des différences finies, appelés opérateurs de différence, font l'objet d'une branche de l'analyse mathématique possédant de nombreux points communs avec la théorie des opérateurs différentiels ; certaines de ces analogies ont été systématisées et exploitées par le calcul ombral.


Opérateurs de différence finie[modifier | modifier le code]

On considère en général uniquement les différences « en avant », « en arrière » et « centrées ».

L'opérateur de différence avant,  \Delta_h, est défini par

 \Delta_h[f](x) =  f(x + h) - f(x), \ h est le plus souvent une constante, qu'on appelle le pas.

De même, l'opérateur de différence arrière,   \nabla_h, est défini par

 \nabla_h[f](x) =  f(x) - f(x-h). \

Enfin, l'opérateur de différence centrée,   \delta_h, est défini par

 \delta_h[f](x) =  f(x+\tfrac12h)-f(x-\tfrac12h). \

Relation avec les dérivées[modifier | modifier le code]

Le nombre dérivé d'une fonction f en un point x est défini par la limite

 f'(x) = \lim_{h\to0} \frac{f(x+h) - f(x)}{h}.

Si h a une valeur fixée (non nulle), le terme de droite est

 \frac{f(x + h) - f(x)}{h} = \frac{\Delta_h[f](x)}{h}.

Ainsi, la différence avant divisée par h approxime le nombre dérivé quand h est petit. L'erreur de cette approximation peut être déterminée à l'aide de la formule de Taylor. Supposant que f est continument dérivable,

 \frac{\Delta_h[f](x)}{h} - f'(x) = O(h) \quad (h \to 0).

La même formule est valable pour la différence arrière :

 \frac{\nabla_h[f](x)}{h} - f'(x) = O(h).

Cependant, la différence centrale donne une approximation plus précise ; son erreur est proportionnelle au carré du pas (si f est de classe \mathcal{C}^2) :

 \frac{\delta_h[f](x)}{h} - f'(x) =  O(h^{2}) . \!

Différences d'ordre supérieur[modifier | modifier le code]

De manière analogue, on peut obtenir des approximations de dérivées d'ordre supérieur. Ainsi, appliquant la formule de différence centrale précédente à la dérivée de  f' en x, et utilisant les différences centrales pour f'(x+h/2) et f'(x-h/2), on obtient une approximation (par différences centrales) de la dérivée seconde de f:

 f''(x) \approx \frac{\delta_h^2[f](x)}{h^2} =  \frac{f(x+h) - 2 f(x) + f(x-h)}{h^{2}} .

Plus généralement, les différences avant, arrière et centrale d'ordre n sont respectivement données par

\Delta^n_h[f](x) = 
\sum_{i = 0}^{n} (-1)^i \binom{n}{i} f(x + (n - i) h),
\nabla^n_h[f](x) = 
\sum_{i = 0}^{n} (-1)^i \binom{n}{i} f(x - ih),
\delta^n_h[f](x) = 
\sum_{i = 0}^{n} (-1)^i \binom{n}{i} f\left(x + \left(\frac{n}{2} - i\right) h\right).

On verra (dans le paragraphe consacré au calcul symbolique des différences) que la notation \Delta_h^n correspond au n-ème itéré de \Delta_h, c'est-à-dire que\Delta_h^n=\Delta_h\circ\Delta_h\circ\dots\circ\Delta_h (n fois).

Il faut remarquer que dans le cas des différences centrales, pour tout n impair, h est multiplié par des non-entiers; ce qui peut être un problème dans des applications où cela change l'intervalle de discrétisation ; dans ce cas, une solution peut être de prendre la moyenne de \delta^n[f](x - h/2) et de \delta^n[f](x + h/2).

La relation entre ces différences itérées et les dérivées d'ordre correspondant est très simple :

\frac{d^n f}{d x^n}(x) = \frac{\Delta_h^n[f](x)}{h^n}+O(h) = \frac{\nabla_h^n[f](x)}{h^n}+O(h) = \frac{\delta_h^n[f](x)}{h^n} + O(h^2).

Les différences d'ordre supérieur peuvent être également utilisées pour obtenir de meilleures approximations. Comme on l'a vu, les différences du premier ordre approximent les dérivées (premières) à un terme d'ordre h près. Mais la combinaison

 \frac{\Delta_h[f](x) - \frac12 \Delta_h^2[f](x)}{h} = - \frac{f(x+2h)-4f(x+h)+3f(x)}{2h}

est une approximation de f'(x) à un terme d'ordre h2 près ; ceci peut se montrer en développant l'expression précédente par la formule de Taylor, ou en utilisant le calcul symbolique des différences finies, qui sera exposé plus bas.

Ces différences itérées possèdent des propriétés formelles utiles  :

  • Pour tous k et n entiers positifs
\Delta^n_{kh} (f, x) = \sum\limits_{i_1=0}^{k-1} \sum\limits_{i_2=0}^{k-1} ... \sum\limits_{i_n=0}^{k-1} \Delta^n_h [f](x+i_1h+i_2h+...+i_nh).
\Delta^n_h (fg, x) = \sum\limits_{k=0}^n \binom{n}{k} \Delta^k_h [f](x) \Delta^{n-k}_h[g](x+kh).

Il est enfin possible d'utiliser les différences itérées pour approximer des dérivées de tout ordre, et même d'employer un nombre de termes dissymétrique autour de la valeur centrale, ce qui est utile lorsqu'on effectue des calculs sur une grille, pour compenser les effets de bord ; les détails sont analysés dans cette série de notes (en).

Méthodes des différences finies[modifier | modifier le code]

Article détaillé : méthode des différences finies.

En analyse numérique, une importante application des différences finies est la résolution numérique des équations différentielles et des équations aux dérivées partielles : l'idée est de remplacer les dérivées apparaissant dans l'équation par des différences finies qui les approximent. Les diverses méthodes qui en résultent sont appelées méthodes des différences finies.

De nombreuses applications de ces méthodes se rencontrent en théorie du calcul numérique, ainsi que dans des disciplines scientifiques très variées, telles que la mécanique des fluides, et ses applications à la météorologie ou à l'aérodynamique.

Différences n-ièmes[modifier | modifier le code]

La n-ième itération de la différence avant d'une fonction f(x) vérifie

\Delta^n [f](x)= \sum_{k=0}^n {n \choose k} (-1)^{n-k} f(x+k)

{n \choose k} est le coefficient binomial. On l'appelle parfois transformation binomiale de la suite ; elle a diverses propriétés combinatoires remarquables. Ces différences avant peuvent notamment être évaluées en utilisant la méthode de Rice. La représentation intégrale de ce type de séries est importante car l'intégrale peut souvent être évaluée en utilisant un développement asymptotique ou une méthode du point col alors que ces séries peuvent être très difficiles à évaluer numériquement, car les coefficients binomiaux croissent rapidement avec n.

Séries de Newton[modifier | modifier le code]

Le développement en série de Newton d'une fonction f(x) est la série suivante :

f(x)=\sum_{k=0}^\infty\frac{\Delta^k [f](a)}{k!}(x-a)_k
= \sum_{k=0}^\infty {x-a \choose k} \Delta^k [f](a)   ~.
.

Cette identité est valide pour tout polynôme f et pour la plupart (mais pas toutes) des fonctions analytiques. Cette formule d'interpolation est due à Isaac Newton et a paru dans ses Principia Mathematica en 1687[1].

Rappelons que

{x \choose k} = \frac{(x)_k}{k!}

désigne le coefficient binomial et que

(x)_k=x(x-1)(x-2)\cdots(x-k+1)

est la "factorielle descendante", où le produit vide (x)0 est par convention égal à 1. Ce développement en série de Newton correspond au cas des différences finies de pas h=1, si on itère un opérateur ayant un pas quelconque, la formule devient

f(x)=\sum_{k=0}{\frac{x-a}h \choose k} \sum_{j=0}^k (-1)^{k-j}{k\choose j}f(a+j h).

On notera une similarité de ce développement de Newton avec le théorème de Taylor ; ce fut historiquement cette observation, ainsi que l'identité de Chu-Vandermonde, (x+y)_n=\sum_{k=0}^n {n \choose k} (x)_{n-k} ~(y)_k, qui en dérive, qui amenèrent au calcul ombral.

Pour illustrer comment l'on peut utiliser ce développement de Newton, considérons les premiers termes de la variante de la suite de Fibonacci suivante f = 2, 2, 4... On peut trouver un polynôme qui atteigne ces valeurs, en calculant d'abord une table de différences, et en substituant alors les différences qui correspondent à x0 (les valeurs soulignées de la table) dans la formule, comme suit :


\begin{matrix}

\begin{array}{|c||c|c|c|}
\hline
 x & f=\Delta^0 & \Delta^1 & \Delta^2 \\
\hline
1&\underline{2}& & \\
 & &\underline{0}& \\
2&2& &\underline{2} \\
 & &2& \\
3&4& & \\
\hline
\end{array}

& 

\quad \begin{matrix}
f(x)=\Delta^0 \cdot 1 +\Delta^1 \cdot \dfrac{(x-x_0)_1}{1!} + \Delta^2 \cdot \dfrac{(x-x_0)_2}{2!} \quad (x_0=1)\\
 \\
=2 \cdot 1 + 0 \cdot \dfrac{x-1}{1} + 2 \cdot \dfrac{(x-1)(x-2)}{2} \\
 \\
=2 + (x-1)(x-2) \\
\end{matrix}
\end{matrix}

Dans le cas d'un pas non uniforme pour les valeurs de x, Newton introduit les différences divisées,

\Delta _{j,0}=y_j,\quad \quad \Delta _{j,k}=\frac{\Delta _{j+1,k-1}-\Delta _{j,k-1}}{x_{j+k}-x_j}\quad \ni \quad \left\{ k>0,\ \ j\le \max \left( j \right)-k \right\},\quad \quad \Delta 0_k=\Delta _{0,k}

la série de produits,

{P_0}=1,\quad \quad P_{k+1}=P_k\cdot \left( \xi -x_k \right) ~,

et le polynôme final est le produit scalaire, f(\xi ) = \Delta 0 \cdot P\left( \xi  \right)[2].

En analyse p-adique, le théorème de Mahler affirme que l'hypothèse que f soit un polynôme peut être relâchée, et il suffit que f soit continue.

Le théorème de Carlson fournit une condition nécessaire et suffisante pour que la série de Newton soit unique, si elle existe (car il est possible que la série de Newton n'existe pas).

Cette formule d'interpolation de Newton, comme celles de Stirling et de Selberg, sont un cas spécial de série de différences, toutes définies en termes de différences avant renormalisées.

Le calcul symbolique des différences finies[modifier | modifier le code]

L'opérateur de différence avant envoie la fonction f vers Δh[f]. Cet opérateur vérifie \Delta_h = T_h-I, où T_h est l'opérateur de translation de pas h, défini par T_h[f](x) = f(x+h), et I est l'identité (I[f]=f, et I=T_0). \Delta_h est un opérateur linéaire, et il satisfait à la règle du produit (on dit parfois que c'est une dérivation; voir aussi à ce sujet l'article corps différentiel). Les opérateurs de différence arrière et centrale obéissent à des règles similaires.

On a \Delta^n_h = [T_h-I]^n, \nabla^n_h = [I-T_{-h}]^n, et \delta^n_h = [T_{h/2}-T_{-h/2}]^n, expressions qui peuvent se développer par la formule du binôme (appliquée à l'algèbre des opérateurs), puisque T_h et T_k commutent. On vérifie alors que les formules données plus haut pour les différences d'ordre supérieur coïncident avec ces développements, ce qui justifie les notations choisies.

Appliquant le théorème de Taylor (par rapport à h), on obtient

 \Delta_h = hD + \frac12 h^2D^2 + \frac1{3!} h^3D^3 + \cdots = \mathrm{e}^{hD} - 1,

D désigne l'opérateur de dérivation usuel, envoyant f vers sa dérivée f'. Inversant (formellement) l'exponentielle, on peut donc penser que

 hD = \log(1+\Delta_h) = \Delta_h - \frac12 \Delta_h^2 + \frac13 \Delta_h^3 + \cdots. \,

Cette formule est correcte quand on l'applique à une fonction f polynômiale, car alors la série se réduit à une somme finie. En revanche, même si f est analytique, il n'est pas garanti que la série converge : ce pourrait n'être qu'un développement asymptotique. Elle peut cependant être utilisée pour obtenir des approximations plus précises de la dérivée de f. Ainsi, les deux premiers termes de la série donnent l'approximation du second ordre à f'(x) mentionnée à la fin de la section sur les différences d'ordre supérieur.

On a des formules analogues pour les différences arrière et centrale :

 hD = -\log(1-\nabla_h) \quad\mbox{et}\quad hD = 2 \, \operatorname{arg sh}(\tfrac12\delta_h).

Toutes ces formules se généralisent encore à celles du calcul ombral et à d'autres formules de l'analyse combinatoire ; ainsi, l'opérateur inverse de l'opérateur de différence avant est celui de somme indéfinie[3], ce qui a permis à Lagrange une "démonstration" abstraite de la formule d'Euler-Maclaurin, en l'interprétant comme l'inverse symbolique de la formule de Taylor[4].

Généralisations[modifier | modifier le code]

Une différence finie généralisée est d'habitude définie par

\Delta_h^\mu[f](x) = \sum_{k=0}^N \mu_k f(x+kh),

\mu = (\mu_0,\ldots,\mu_N) est le vecteur de coefficients qui lui est associé. Une différence infinie en est une généralisation supplémentaire, où la somme finie précédente est remplacée par une série (infinie). Une autre sorte de généralisation consiste à faire dépendre les coefficients \mu_k du point x : \mu_k=\mu_k(x), on parle alors de différences finies pondérées ; on peut aussi faire dépendre le pas h du point x : h=h(x). Toutes ces généralisations sont utiles pour construire différents modules de continuité[5].

Différences finies à plusieurs variables[modifier | modifier le code]

Il est possible de calculer des différences finies dans le cas de fonctions à plusieurs variables ; elles sont l'analogue discret des dérivées partielles. On obtient ainsi les approximations suivantes :

 \frac{\partial}{\partial x}f(x,y)=f_{x}(x,y) \approx  \frac{f(x + h,y) - f(x-h,y)}{2h} \
 \frac{\partial}{\partial y}f(x,y)=f_{y}(x,y) \approx  \frac{f(x,y + k) - f(x,y-k)}{2k} \
 \frac{\partial^2}{\partial x^2}f(x,y)=f_{xx}(x,y) \approx  \frac{f(x + h,y) - 2 f(x,y) + f(x-h,y)}{h^2} \
 \frac{\partial^2}{\partial y^2}f(x,y)=f_{yy}(x,y) \approx  \frac{f(x,y + k) - 2 f(x,y) + f(x,y-k)}{k^2} \
 \frac{\partial^2}{\partial x\partial y}f(x,y)=f_{xy}(x,y) \approx  \frac{f(x+h,y + k) - f(x+h,y-k) - f(x-h,y+k) + f(x-h,y-k)}{4hk} \

Notes[modifier | modifier le code]

  1. Newton, Isaac, (1687). Principia, Book III, Lemma V, Case 1
  2. Richtmeyer, D. and Morton, K.W., (1967). Difference Methods for Initial Value Problems, 2nd ed., Wiley, New York.
  3. Voir pour l'instant l'article indefinite sum(en).
  4. Joseph-Louis Lagrange, Œuvres, vol 3, p.441 et suivantes
  5. Voir pour l'instant l'article modulus of continuity (en).

Références[modifier | modifier le code]

  • William F. Ames, Numerical Methods for Partial Differential Equations, Section 1.6. Academic Press, New York, 1977. ISBN 0-12-056760-1.
  • Francis B. Hildebrand, Finite-Difference Equations and Simulations, Section 2.2, Prentice-Hall, Englewood Cliffs, New Jersey, 1968.
  • Boole, George, A Treatise On The Calculus of Finite Differences, 2nd ed., Macmillan and Company, 1872. [See also: Dover edition 1960].
  • Robert D. Richtmyer et K. W. Morton, Difference Methods for Initial Value Problems, 2nd ed., Wiley, New York, 1967.

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]