# Application numérique

En sciences, particulièrement en physique, l'application numérique (souvent abrégé en a.n.) est l'obtention de la valeur numérique d'une grandeur physique à partir de celles d'autres grandeurs lorsque l'on connaît une formule analytique reliant ces grandeurs.
En d'autres termes, il s'agit d'obtenir $z=f(x,y)$ à partir des valeurs numériques de $x$ et $y$, et de la fonction $f$. En sciences expérimentales, deux difficultés s'ajoutent :
* $x$ et $y$ ont des unités, et il faut s'assurer qu'elles sont compatibles (voir Équation aux dimensions) ;
* les valeurs sont assorties d'une incertitude de mesure, et il faut évaluer l'incertitude qui en découle sur le résultat (voir Propagation des incertitudes).

## Étapes élémentaires d'une application numérique

Une application numérique se fait en plusieurs étapes :
* La conversion des données numériques dans des unités compatibles, par exemple dans le Système international d'unités.
* Le calcul numérique lui-même, souvent décomposé en plusieurs étapes pour diminuer le risque d'erreur et permettre de retrouver une erreur le cas échéant.
* La conservation des chiffres significatifs pertinents, selon l'ordre de grandeur de la précision des données ; souvent seuls les deux ou trois premiers chiffres suffisent et sont porteur d'un véritable sens physique.
Exemple
La distance parcourue par un objet en chute libre $h$ est relié au temps de chute $t$ et à l'accélération de la pesanteur $g$ par la formule :
    $h={\frac {1}{2}}gt^{2}$.
On considère un objet chutant pendant 500 millisecondes, sachant que sur terre $g=981\ \mathrm {cm} \cdot \mathrm {s} ^{-2}$.
* On convertit le temps de chute et l'accélération de la pesanteur dans le Système international : $t=5,00\cdot 10^{-1}\mathrm {s}$ et $g=9,81\ \mathrm {m} \cdot \mathrm {s} ^{-2}$.
* L'application numérique donne
    $h={\frac {1}{2}}\times 9,81\times 0,500^{2}\ \mathrm {m}$
    $\ =0,5\times 9,81\times 0,25\ \mathrm {m}$
    $\ =1,226\,25\ \mathrm {m}$
Mais quelle précision doit-on donner à ce résultat ? Il est nécessaire de compter les chiffres significatifs des données présentes dans le problème : 500 soit trois chiffres, et 9,81 soit trois chiffres, le résultat ne doit comporter que trois chiffres : une hauteur de chute de 1,23 mètre.
Faire une application numérique, c'est aussi connaître la précision du résultat que l'on prétend obtenir.

## Application rigoureuse

De manière rigoureuse, il faut également veiller :
* au choix de la méthode de calcul, qui peut avoir une influence sur la difficulté à effectuer le calcul et la précision du résultat ;
* à la détermination de l'incertitude du résultat.
Le choix de la méthode de calcul a souvent peu d'importance pour les calculs à la main ou avec une calculatrice. En revanche, lorsque des calculs complexes sont menés avec un ordinateur, l'enchaînement de nombreuses étapes, ou bien l'itération d'étapes, peut rendre ce choix crucial en termes de précision du résultat et de rapidité du calcul. Par exemple, lorsque l'on calcule la valeur d'un polynôme p(x) = a$_0$ + a$_1$x + a$_2$x$^2$ + … + a$_n$x$^n$, on a intérêt à utiliser la Méthode de Ruffini-Horner :
    p(x) = a$_0$ + x⋅(a$_1$ + x⋅(a$_2$ + … + x⋅(a$_{n-1}$ + x⋅a$_n$)…)).
Il faut également veiller aux limitations de la représentation en virgule flottante, et en particulier aux erreurs de dépassement (la valeur absolue est trop grande pour être représentée et le résultat est considéré comme infini), de soupassement (la valeur absolue est trop petite et donc la représentation est 0) et d'approximation (deux valeurs très proches sont représentées de la même manière, donc égales dans la pratique). Par exemple, pour résoudre une équation du second degré ax$^2$ + bx + c = 0 (a ≠ 0), on a intérêt à utiliser la forme de Fagnano
    $\left\{{\begin{matrix}x_{1}=-{\frac {2c}{b+\operatorname {sgn}(b){\sqrt {b^{2}-4ac}}}}\\x_{2}=-{\frac {b+\operatorname {sgn}(b){\sqrt {b^{2}-4ac}}}{2a}}\end{matrix}}\right.$
car si b est très grand devant 4ac, alors le discriminant Δ est proche de b$^2$, donc $-b+{\sqrt {\Delta }}$ est proche de 0 et l'erreur relative risque d'être très importante. Pour aller plus loin, du fait de la représentation binaire des nombres, la division par 2 est une opération exacte pour l'ordinateur, et ainsi, l'écriture suivante est encore plus efficace :
    $\left\{{\begin{matrix}b'=b/2\\x_{1}=-{\frac {c}{b'+\operatorname {sgn}(b){\sqrt {b'^{2}-ac}}}}\\x_{2}=-{\frac {b'+\operatorname {sgn}(b){\sqrt {b'^{2}-ac}}}{a}}\end{matrix}}\right.$
Le choix de la manière de mener les calculs dépend également de la manière dont les opérations sont programmées informatiquement. Ainsi, la division demande plus de ressources que la multiplication, et au lieu de calculer
    ${\begin{cases}e=a/b\\f=c/d\end{cases}}$
on a intérêt, pour de gros volumes de données, à écrire à la place :
    ${\begin{cases}g=1/(b\times d)\\e=a\times d\times g\\f=c\times b\times g\end{cases}}$
en effet, le fait de remplacer deux divisions par une division et cinq multiplications est favorable.
De manière générale, en calcul numérique, il y a une notion de « conditionnement ». Lorsque l'on choisit une méthode, il faut vérifier que le système est bien conditionné.
Exemple
Reprenons l'exemple ci-dessus.
Pour être un peu plus rigoureux, il faut connaître les incertitudes :
    g = 9,81 ± 0,01 m/s$^2$ : il s'agit d'une valeur approchée, on connaît une valeur plus précise (voir Pesanteur) ;
    t = 0,5 ± 0,001 s, car la donnée étant exprimée en millisecondes, on suppose que la précision est elle-même d'1 ms.
Si l'on applique la méthode de la dérivée :
    $\delta h={\frac {1}{2}}(t^{2}\cdot \delta g+2gt\cdot \delta t)=0,5\times (0,5^{2}\times 0,01+2\times 9,81\times 0,5\times 0,001)=0,006\,155\ \mathrm {m} \simeq 0,007\ \mathrm {m}$
et donc
    h = 1,226 ± 0,007 m
Si l'on choisit de reporter les extrêmes :
    $h_{\max }={\frac {1}{2}}\times 9,82\times 0,501^{2}=1,232\,414\,91\ \mathrm {m}$
    $h_{\min }={\frac {1}{2}}\times 9,80\times 0,499^{2}=1,220\,104\,9\ \mathrm {m}$
et donc on prend la valeur moyenne
    h = 1,226259905 ± 0,006 155 005 m
que l'on exprime
    h = 1,226 ± 0,007 m