de l'utilite des chiffres significatif
Modérateur : Modérateurs
de l'utilite des chiffres significatif
Salut
Je souhaiterais connaitre l'utilite des chiffres significatifs pour la modelisation.
En fonction des models on a besoin de plus ou moins de chiffres significatifs, ce qui a pousse les informatitiens a bosser sur des long au lieu des short pour eviter des erreurs de calculs.
A priori jusqu'a une douzaine de chiffres pour les calculs internes sont suffisant (dans certains cas non), mais pour les representations directes seules 3 (plus la puissance suffisent)
Les comparaisons de ces chiffres avec le reel montre souvent que c'est suffisant (les erreurs de mesures/process ... faisant que souvent ca ne sert a rien d'aller plus loin)
La ou je tique c'est qd on veux aller plus loin, les chiffres se retrouvent noye parmis les autres, comment etre sur qu'il n'y a pas d'artefact de calucl la dedans, et surtout quelle signification cela peut avoir.
Un exemple le plus frappant c'est pi, a t'on besoin d'avoir des millions de chiffres significatifs, pour la recherche en math ca peut se comprendre mais en application reele je doute qu'on ai besoin d'autant
buck
Je souhaiterais connaitre l'utilite des chiffres significatifs pour la modelisation.
En fonction des models on a besoin de plus ou moins de chiffres significatifs, ce qui a pousse les informatitiens a bosser sur des long au lieu des short pour eviter des erreurs de calculs.
A priori jusqu'a une douzaine de chiffres pour les calculs internes sont suffisant (dans certains cas non), mais pour les representations directes seules 3 (plus la puissance suffisent)
Les comparaisons de ces chiffres avec le reel montre souvent que c'est suffisant (les erreurs de mesures/process ... faisant que souvent ca ne sert a rien d'aller plus loin)
La ou je tique c'est qd on veux aller plus loin, les chiffres se retrouvent noye parmis les autres, comment etre sur qu'il n'y a pas d'artefact de calucl la dedans, et surtout quelle signification cela peut avoir.
Un exemple le plus frappant c'est pi, a t'on besoin d'avoir des millions de chiffres significatifs, pour la recherche en math ca peut se comprendre mais en application reele je doute qu'on ai besoin d'autant
buck
Je suis entièrement d'accord avec toi buck. D'ailleurs quelqu'un qui met pleins de chiffres significatifs a dû sécher ses cours de lycée
Pour commencer, les mesures que l'on fait ne sont pas précis à 1e-50 près. Donc il y a déjà des approximations quand on introduit nos mesures dans les calculs.
Par exemple quand je chronomètre un trajet que je fais en voiture, je vois les indicateurs sur le tableau de bord indiquant la distance parcourue (en relanvant mon compteur au début et à la fin), et puis je peux aussi voir le temps mis (en regardant l'heure avant et après). Mais je ne suis pas précis au km près, et pas à la minute près, donc faire un quotient et prendre 50 chiffres significatifs n'a aucun sens, puisque lorsqu'en physique nous donnons un résultat :
L = 50.01 mètres
Nous garantissons que c'est 50.005 < L < 50.015
Quand nous écrivons :
M = 50.0 g l'on a 49.95 < M < 50.05
Par contre en maths lorsque nous disons que x=2 et bien c'est pile poil 2.
Ensuite, toutes nos théories sont reliées à la réalité par des constantes physiques, que ce soit la vitesse de la lumière, la charge de l'électron, la constante de gravitation, planck etc... ces constantes sont déterminées avec un certain nombre de chiffre significatif (pas loin de 12 pour les plus précises ?) et de toute façon ces constantes sont données avec une fourchette. (à part si elles servent à définir des unités, comme c=299 792 458 m/s pour définir le mètre étalon par exemple).
Enfin, il existe des nombres irrationnels, ou transcendants comme racine de 2, pi ou e, etc... dont on ne connaît pas la succession des décimales, mais à quoi bon ? nous en connaissons les propriétés et au lieu d'écrire 3.141592654 etc... nous écrivons tout simplement pi, nous savons que la somme des 1/n² converge vers pi²/6 ou que cos(pi) = -1

Pour commencer, les mesures que l'on fait ne sont pas précis à 1e-50 près. Donc il y a déjà des approximations quand on introduit nos mesures dans les calculs.
Par exemple quand je chronomètre un trajet que je fais en voiture, je vois les indicateurs sur le tableau de bord indiquant la distance parcourue (en relanvant mon compteur au début et à la fin), et puis je peux aussi voir le temps mis (en regardant l'heure avant et après). Mais je ne suis pas précis au km près, et pas à la minute près, donc faire un quotient et prendre 50 chiffres significatifs n'a aucun sens, puisque lorsqu'en physique nous donnons un résultat :
L = 50.01 mètres
Nous garantissons que c'est 50.005 < L < 50.015
Quand nous écrivons :
M = 50.0 g l'on a 49.95 < M < 50.05
Par contre en maths lorsque nous disons que x=2 et bien c'est pile poil 2.
Ensuite, toutes nos théories sont reliées à la réalité par des constantes physiques, que ce soit la vitesse de la lumière, la charge de l'électron, la constante de gravitation, planck etc... ces constantes sont déterminées avec un certain nombre de chiffre significatif (pas loin de 12 pour les plus précises ?) et de toute façon ces constantes sont données avec une fourchette. (à part si elles servent à définir des unités, comme c=299 792 458 m/s pour définir le mètre étalon par exemple).
Enfin, il existe des nombres irrationnels, ou transcendants comme racine de 2, pi ou e, etc... dont on ne connaît pas la succession des décimales, mais à quoi bon ? nous en connaissons les propriétés et au lieu d'écrire 3.141592654 etc... nous écrivons tout simplement pi, nous savons que la somme des 1/n² converge vers pi²/6 ou que cos(pi) = -1
Re: de l'utilite des chiffres significatif
buck a écrit :Salut
Je souhaiterais connaitre l'utilite des chiffres significatifs pour la modelisation.
En fonction des models on a besoin de plus ou moins de chiffres significatifs, ce qui a pousse les informatitiens a bosser sur des long au lieu des short pour eviter des erreurs de calculs.
A priori jusqu'a une douzaine de chiffres pour les calculs internes sont suffisant (dans certains cas non), mais pour les representations directes seules 3 (plus la puissance suffisent)
Les comparaisons de ces chiffres avec le reel montre souvent que c'est suffisant (les erreurs de mesures/process ... faisant que souvent ca ne sert a rien d'aller plus loin)
Sur du calcul optique, on manipule couramment des grandeurs avec 6 chiffres significatifs, en résultat final, et il en faut au moins 12 dans les calculs intermédiaires. Physiquement, ça peut correspondre un chemin optique de quelques cm à 1m connu avec une précision fraction d'une longueur d'onde (et certains interféromètres savent très bien mesurer celà).
A+
de toute façon même si tu rentre des fractions entières ou des racines dans la machine de calcul, il y aura toujours une approximation sur les décimales vu que le calcul est binaire et non algébrique...
d'ou l'avantage du calcul algébrique pour la théorie, avec les écritures mathématiques, on a pas de limite dans la précision, par contre, lorsqu'on utilise les résultats du calcul algébrique en intégrant des valeurs numériques, on introduit forcement un facteur d'inexactitude...
sa posait problème a Einstein dans la MQ
d'ou l'avantage du calcul algébrique pour la théorie, avec les écritures mathématiques, on a pas de limite dans la précision, par contre, lorsqu'on utilise les résultats du calcul algébrique en intégrant des valeurs numériques, on introduit forcement un facteur d'inexactitude...
sa posait problème a Einstein dans la MQ

Dernière modification par Maulus le 10/04/2008 - 11:55:32, modifié 1 fois.
buck a écrit :Pour faire du calcul je suis d'accord que la douzaine est utile mais plus j'en doute, sur mes modeles si je depasse ces ordre de grandeur les moteurs explosent (tout simplement ou alors le temps de calcul)
En fait, pour certaines applications, il est tellement indispensable d'aller plus loin (au niveau des calculs intermédiaires) que l'arithmétique en précision arbitraire est un sujet de recherche actif. Il existe même des bibliothèque mathématiques en domaine public (gmp par exemple).
Exemple : les fonctions d'opérations booléennes dans les logiciels de CAO mécaniques sont connues pour dépendre d'algorithmes numériquement instables, et une des solutions est d'utiliser une arithmétique à précision variable, où le nombre de chiffres significatifs peut grandir librement si nécessaire (dans les limites de la mémoire évidemment).
A+
La norme IEEE définit une représentation à précision fixe et virgule flottante, qui permet d'exprimer des dynamiques gigantesques : aucun problème pour exprimer le rayon de l'univers en microns, ou le diamètre d'un atome en années-lumière.
C'est le type 'double' du C/C++, et les instructions cablées dans les processeurs utilisent cette représentation
Mais dans beaucoup d'applications techniques, on préférerait avoir une représentation en virgule fixe et en précision arbitraire.
Et même dans les applications scientifiques, qui a déjà utilisé la dynamique de 10^616 permise par le type 'double' ?
On a beaucoup plus de dynamique que nécessaire, par contre, quand il s'agit d'inverser des matrices mal conditionnées, de calculer des polynomes de degrés élevés exprimés en monomes, ou pour certains algorithmes géométriques, on peut manquer de précision pour les calculs intermédiaires.
De plus, l'évaluation de la propagation des erreurs avec cette représentation est une abomination : c'est la raison pour laquelle il est en général impossible de démontrer mathématiquement le fonctionnement correct d'un programme de calcul en virgule flottante dans tous les cas.
A+
C'est le type 'double' du C/C++, et les instructions cablées dans les processeurs utilisent cette représentation
Mais dans beaucoup d'applications techniques, on préférerait avoir une représentation en virgule fixe et en précision arbitraire.
Et même dans les applications scientifiques, qui a déjà utilisé la dynamique de 10^616 permise par le type 'double' ?
On a beaucoup plus de dynamique que nécessaire, par contre, quand il s'agit d'inverser des matrices mal conditionnées, de calculer des polynomes de degrés élevés exprimés en monomes, ou pour certains algorithmes géométriques, on peut manquer de précision pour les calculs intermédiaires.
De plus, l'évaluation de la propagation des erreurs avec cette représentation est une abomination : c'est la raison pour laquelle il est en général impossible de démontrer mathématiquement le fonctionnement correct d'un programme de calcul en virgule flottante dans tous les cas.
A+
Ha, ces bonnes vielles matrices et ses flottants double... que de souvenirs.
Buck > L'utilité de la précision ? bien quand dans un calcul élément fini tu vas enchainer quelques centaines de milliers de calculs de façon itérative, les petites erreurs finissent par vite gonfler.
Après, la compétence est aussi de savoir "sentir" quelles sont les variable qui dans le calcul vont foutre la merde, lesquelles seront sans importance, et puis connaitre aussi les limites de son modèle.
De même, dans le calcul en lui même, la précision des nombres n'est parfois pas nécessaires, par contre elle l'est beaucoup plus dans les phases où tu vas tester la robustesse du code sur des cas bien définis.
Après, pour ce qui est de voir dans un calcul si on a pas une erreur due à la précision de calcul, est assez difficile ou plutôt assez aléatoire... en fait ça va vraiment dépendre du problème étudié, du type d'erreur, et du mode de résolution... dans certains cas tu vas te retrouver avec des division par zero, parfois avec un genre de diffusion numérique (putain, celui là il m'avait fait transpirer un moment), parfois avec un système qui va diverger, et parfois, ce sera quasiment invisible sauf a faire des tests de robustesse bien ciblés et de se rendre compte que le résultats s'écarte plus de la théorie que tu ne l'avait prévu.
Buck > L'utilité de la précision ? bien quand dans un calcul élément fini tu vas enchainer quelques centaines de milliers de calculs de façon itérative, les petites erreurs finissent par vite gonfler.
Après, la compétence est aussi de savoir "sentir" quelles sont les variable qui dans le calcul vont foutre la merde, lesquelles seront sans importance, et puis connaitre aussi les limites de son modèle.
De même, dans le calcul en lui même, la précision des nombres n'est parfois pas nécessaires, par contre elle l'est beaucoup plus dans les phases où tu vas tester la robustesse du code sur des cas bien définis.
Après, pour ce qui est de voir dans un calcul si on a pas une erreur due à la précision de calcul, est assez difficile ou plutôt assez aléatoire... en fait ça va vraiment dépendre du problème étudié, du type d'erreur, et du mode de résolution... dans certains cas tu vas te retrouver avec des division par zero, parfois avec un genre de diffusion numérique (putain, celui là il m'avait fait transpirer un moment), parfois avec un système qui va diverger, et parfois, ce sera quasiment invisible sauf a faire des tests de robustesse bien ciblés et de se rendre compte que le résultats s'écarte plus de la théorie que tu ne l'avait prévu.
Tiens, un exemple, essaye de calculer exp(pi*sqrt(163))
avec 20 chiffres significatifs :
262537412640768744.0
avec 30 chiffres significatifs :
262537412640768743.999999999999
Tu te dis "ouh la, c'est bizarre, on dirait bien que c'est un nombre entier, ce serait extraordinaire ! Aurais-je trouvé une relation mystérieuse entre pi et 163 ? Voila qui pourrait révolutionner bien des croyances !
mais avec 40 chiffres significatifs :
262537412640768743.9999999999992500725972
Patatras ! ah, ben non, c'était pas un entier, finalement... juste une (presque) coïncidence... Les décimales, ça sert !
avec 20 chiffres significatifs :
262537412640768744.0
avec 30 chiffres significatifs :
262537412640768743.999999999999
Tu te dis "ouh la, c'est bizarre, on dirait bien que c'est un nombre entier, ce serait extraordinaire ! Aurais-je trouvé une relation mystérieuse entre pi et 163 ? Voila qui pourrait révolutionner bien des croyances !

mais avec 40 chiffres significatifs :
262537412640768743.9999999999992500725972
Patatras ! ah, ben non, c'était pas un entier, finalement... juste une (presque) coïncidence... Les décimales, ça sert !
