Différenciation numérique - Numerical differentiation

En analyse numérique , la différenciation numérique décrit des algorithmes permettant d'estimer la dérivée d'une fonction mathématique ou d'un sous-programme de fonction en utilisant les valeurs de la fonction et peut-être d'autres connaissances sur la fonction.

Dérivé.svg

Différences finies

La méthode la plus simple consiste à utiliser des approximations aux différences finies.

Une simple estimation à deux points consiste à calculer la pente d'une ligne sécante voisine passant par les points ( x , f ( x )) et ( x  +  h , f ( x  +  h )). En choisissant un petit nombre h , h représente un petit changement de x , et il peut être positif ou négatif. La pente de cette droite est

Cette expression est le quotient de différence de Newton (également connu sous le nom de différence divisée du premier ordre ).

La pente de cette ligne sécante diffère de la pente de la ligne tangente d'une valeur approximativement proportionnelle à h . Lorsque h se rapproche de zéro, la pente de la ligne sécante se rapproche de la pente de la ligne tangente. Par conséquent, la vraie dérivée de f en x est la limite de la valeur du quotient de différence à mesure que les lignes sécantes se rapprochent de plus en plus d'une ligne tangente :

Étant donné que la substitution immédiate de 0 à h donne une forme indéterminée , le calcul direct de la dérivée peut être peu intuitif.

De manière équivalente, la pente pourrait être estimée en utilisant les positions ( x  −  h ) et x .

Une autre formule à deux points consiste à calculer la pente d'une ligne sécante voisine passant par les points ( x  -  h , f ( x  −  h )) et ( x  +  h , f ( x  +  h )). La pente de cette droite est

Cette formule est connue sous le nom de quotient différentiel symétrique . Dans ce cas, les erreurs du premier ordre s'annulent, de sorte que la pente de ces lignes sécantes diffère de la pente de la ligne tangente d'une quantité approximativement proportionnelle à . Par conséquent, pour les petites valeurs de h, il s'agit d'une approximation plus précise de la ligne tangente que l'estimation unilatérale. Cependant, bien que la pente soit calculée en x , la valeur de la fonction en x n'est pas impliquée.

L'erreur d'estimation est donnée par

,

où est un point entre et . Cette erreur n'inclut pas l' erreur d'arrondi due aux nombres représentés et aux calculs effectués avec une précision limitée.

Le quotient de différence symétrique est utilisé comme méthode d'approximation de la dérivée dans un certain nombre de calculatrices, notamment TI-82 , TI-83 , TI-84 , TI-85 , qui utilisent toutes cette méthode avec h  = 0,001.

Taille de pas

Exemple montrant la difficulté de choisir en raison à la fois de l'erreur d'arrondi et de l'erreur de formule

Une considération importante dans la pratique lorsque la fonction est calculée en utilisant l' arithmétique à virgule flottante est le choix de la taille du pas, h . Si elle est choisie trop petite, la soustraction produira une grande erreur d'arrondi . En fait, toutes les formules aux différences finies sont mal conditionnées et, en raison de l'annulation, produiront une valeur de zéro si h est suffisamment petit. S'il est trop grand, le calcul de la pente de la ligne sécante sera calculé avec plus de précision, mais l'estimation de la pente de la tangente en utilisant la sécante pourrait être pire.

Pour les différences centrales de base, l'étape optimale est la racine cubique de la machine epsilon . Pour la formule dérivée numérique évaluée à x et x + h , un choix de h qui est petit , sans produire une erreur importante d'arrondi est (mais pas lorsque x  = 0), lorsque la machine à epsilon ε est typiquement de l'ordre de 2,2 × 10 −16 pour la double précision . Une formule pour h qui équilibre l'erreur d'arrondi contre l'erreur sécante pour une précision optimale est

(mais pas quand ), et pour l'utiliser, il faudra connaître la fonction.

Pour une simple précision, les problèmes sont exacerbés car, bien que x puisse être un nombre à virgule flottante représentable , x + h ne le sera presque certainement pas. Cela signifie que x + h sera changé (par arrondi ou troncature) en un nombre proche représentable par machine, avec pour conséquence que ( x  +  h ) −  x ne sera pas égal à h ; les deux évaluations de fonction ne seront pas exactement h séparées. À cet égard, étant donné que la plupart des fractions décimales sont des séquences récurrentes en binaire (tout comme 1/3 est en décimal), une étape apparemment ronde telle que h  = 0,1 ne sera pas un nombre rond en binaire ; c'est 0,000110011001100... 2 Une approche possible est la suivante :

 h := sqrt(eps) * x;
 xph := x + h;
 dx := xph - x;
 slope := (F(xph) - F(x)) / dx;

Cependant, avec les ordinateurs, les installations d' optimisation du compilateur peuvent ne pas s'occuper des détails de l'arithmétique informatique réelle et appliquer à la place les axiomes des mathématiques pour en déduire que dx et h sont les mêmes. Avec le C et les langages similaires, une directive indiquant que xph est une variable volatile empêchera cela.

Autres méthodes

Méthodes d'ordre supérieur

Des méthodes d'ordre supérieur pour l'approximation de la dérivée, ainsi que des méthodes pour les dérivées supérieures, existent.

Ci-dessous se trouve la méthode à cinq points pour la dérivée première ( pochoir à cinq points dans une dimension):

où .

Pour d'autres configurations de pochoirs et ordres dérivés, le calculateur de coefficients de différence finie est un outil qui peut être utilisé pour générer des méthodes d'approximation dérivées pour n'importe quel pochoir avec n'importe quel ordre dérivé (à condition qu'une solution existe).

Dérivés supérieurs

En utilisant le quotient différentiel de Newton,

on peut afficher (pour n >0) :

Méthodes à variables complexes

Les approximations classiques aux différences finies pour la différenciation numérique sont mal conditionnées. Cependant, si est une fonction holomorphe , à valeur réelle sur la ligne réelle, qui peut être évaluée en des points du plan complexe près de , alors il existe des méthodes stables . Par exemple, la dérivée première peut être calculée par la formule de la dérivée à étapes complexes :

Cette formule peut être obtenue par développement en série de Taylor :

La formule de dérivée à pas complexes n'est valable que pour le calcul des dérivées du premier ordre. Une généralisation de ce qui précède pour le calcul des dérivées de n'importe quel ordre utilise des nombres multicomplexes , résultant en des dérivées multicomplexes.

où les désignent les unités imaginaires multicomplexes ; . L' opérateur extrait la e composante d'un nombre multicomplexe de niveau , par exemple, extrait la composante réelle et extrait la dernière composante « la plus imaginaire ». La méthode peut être appliquée aux dérivées mixtes, par exemple pour une dérivée du second ordre

Une implémentation C++ de l'arithmétique multicomplexe est disponible.

En général, les dérivées de n'importe quel ordre peuvent être calculées en utilisant la formule intégrale de Cauchy :

où l'intégration se fait numériquement .

L'utilisation de variables complexes pour la différenciation numérique a été lancée par Lyness et Moler en 1967. Leur algorithme est applicable aux dérivées d'ordre supérieur.

Une méthode basée sur l'inversion numérique d'une transformée de Laplace complexe a été développée par Abate et Dubner. Un algorithme qui peut être utilisé sans nécessiter de connaissances sur la méthode ou le caractère de la fonction a été développé par Fornberg.

Quadrature différentielle

La quadrature différentielle est l'approximation des dérivées en utilisant des sommes pondérées de valeurs de fonction. La quadrature différentielle est d'un intérêt pratique car elle permet de calculer des dérivées à partir de données bruitées. Le nom est en analogie avec quadrature , ce qui signifie intégration numérique , où les sommes pondérées sont utilisées dans des méthodes telles que la méthode de Simpson ou la règle trapézoïdale . Il existe différentes méthodes pour déterminer les coefficients de pondération, par exemple, le filtre de Savitzky-Golay . La quadrature différentielle est utilisée pour résoudre des équations aux dérivées partielles . Il existe d'autres méthodes pour calculer les dérivées à partir de données bruitées.

Voir également

Les références

Liens externes