[Excel] Erreur sur erreur
Bon,
Excel utilise apparemment le type flottant pour représenter les nombres en interne, ce n'est pas propre à Excel, évidemment, on trouve ce type de nombres dans tous les langages de programmation. Programmez ce calcul en Pascal ou en C pour la suite x=0.2 et x <- 11x-2 et vous aurez le même comportement (qui est tout à fait logique pour l'informaticien). C'est l'un des inconvénients de ce type de codage des nombres, et c'est peut-être la raison pour laquelle Knuth s'est refusé à utiliser autre chose que des entiers en interne dans TeX et Metafont (ce qui n'est pas non plus sans inconvénient pour les calculs).
Quant à savoir si on peut faire le calcul avec des décimaux? Et bien tronquez tous les résultats à la 2ième décimale et vous aurez votre suite constante (pas testé avec Excel).
Et pourquoi pour l'autre suite ça marche? Parce que le calcul en flottant "tombe juste".
Le problème avec l'informatique ce n'est pas le logiciel proprement dit, mais plutôt l'utilisateur moyen qui non seulement ne sait pas qu'il y a un domaine de validité (en dehors duquel on peut considérer que le résultat est incohérent), mais qui en plus se permet de faire des jugements dans l'absolu sans même remettre ses connaissances en cause!
Je précise qu'il existe aussi de telles suites qui mettent en défaut les logiciels de calcul formel, mais je n'en ai pas sous la main.
Excel utilise apparemment le type flottant pour représenter les nombres en interne, ce n'est pas propre à Excel, évidemment, on trouve ce type de nombres dans tous les langages de programmation. Programmez ce calcul en Pascal ou en C pour la suite x=0.2 et x <- 11x-2 et vous aurez le même comportement (qui est tout à fait logique pour l'informaticien). C'est l'un des inconvénients de ce type de codage des nombres, et c'est peut-être la raison pour laquelle Knuth s'est refusé à utiliser autre chose que des entiers en interne dans TeX et Metafont (ce qui n'est pas non plus sans inconvénient pour les calculs).
Quant à savoir si on peut faire le calcul avec des décimaux? Et bien tronquez tous les résultats à la 2ième décimale et vous aurez votre suite constante (pas testé avec Excel).
Et pourquoi pour l'autre suite ça marche? Parce que le calcul en flottant "tombe juste".
Le problème avec l'informatique ce n'est pas le logiciel proprement dit, mais plutôt l'utilisateur moyen qui non seulement ne sait pas qu'il y a un domaine de validité (en dehors duquel on peut considérer que le résultat est incohérent), mais qui en plus se permet de faire des jugements dans l'absolu sans même remettre ses connaissances en cause!
Je précise qu'il existe aussi de telles suites qui mettent en défaut les logiciels de calcul formel, mais je n'en ai pas sous la main.
-
- Utilisateur chevronné
- Messages : 1172
- Inscription : lundi 21 mai 2007, 13:57
- Statut actuel : Autre
- Localisation : Dordogne
C'est un problème général.
Les nombres ont une représentation interne en base binaire/hexadécimale et Excel nous les visualise sous forme décimale.
Quand par chance la représentation binaire correspond exactement à la valeur décimale, cela se passe plutôt bien, mais quand la correspondance binaire est tronquée, la correspondance est approximative avec tous les aléas que cela implique.
Des nombres différents en interne peuvent apparaitre identiques dans leur visualisation avec toutes les décimales possibles. Il est très instructif d'avoir quelque routines de visualisation du codage en hexadécimal.
Le Basic, QBASIC, Visual Basic ( donc Excel ) ont ce problème, et c'est répandu dans différents programmes, tableurs et autres.
Le C/C++ est un peu meilleur de ce point de vue, mais il y a des problèmes aussi.
J'ai parfois dû intervenir avec la représentation binaire des nombres et tous les différents compilateurs tels que visual basic ou visual C/C++ réservent des surprises.
Conclusion : ne faisons pas de calculs sur ordi ou sur une machine quelle qu'elle soit.
Je me rappelle une machine où 1/2 = 0.5 mais 0.5 non = 1/2.
Ce qui m'émerveille dans l'informatique, c'est que parfois cela fonctionne !!! :D :D :D
Les nombres ont une représentation interne en base binaire/hexadécimale et Excel nous les visualise sous forme décimale.
Quand par chance la représentation binaire correspond exactement à la valeur décimale, cela se passe plutôt bien, mais quand la correspondance binaire est tronquée, la correspondance est approximative avec tous les aléas que cela implique.
Des nombres différents en interne peuvent apparaitre identiques dans leur visualisation avec toutes les décimales possibles. Il est très instructif d'avoir quelque routines de visualisation du codage en hexadécimal.
Le Basic, QBASIC, Visual Basic ( donc Excel ) ont ce problème, et c'est répandu dans différents programmes, tableurs et autres.
Le C/C++ est un peu meilleur de ce point de vue, mais il y a des problèmes aussi.
J'ai parfois dû intervenir avec la représentation binaire des nombres et tous les différents compilateurs tels que visual basic ou visual C/C++ réservent des surprises.
Oui, et pas seulement Excel, tous !Pour moi, Excel est à déconseiller fortement pour faire des mathématiques, sauf à bien connaître les algorithmes de calcul et de représentation interne des nombres.
Conclusion : ne faisons pas de calculs sur ordi ou sur une machine quelle qu'elle soit.
Je me rappelle une machine où 1/2 = 0.5 mais 0.5 non = 1/2.
Ce qui m'émerveille dans l'informatique, c'est que parfois cela fonctionne !!! :D :D :D
J'ai le virus des sciences, ça se soigne ?
Ben oui, et c'est pas nouveau!Framboise a écrit :C'est un problème général.
Mauvaise conclusion à mon avis. Il faudrait renoncer à envoyer des satellites dans l'espace, à construire des avions de plus en plus gros, ou alors faire tous les calculs à la main?Conclusion : ne faisons pas de calculs sur ordi ou sur une machine quelle qu'elle soit.
La bonne conclusion à mon avis est: restons vigilants et soyons critiques.
Cela fonctionne toujours en un certain sens, mais c'est l'interprétation de l'utilisateur qui foire en général.Ce qui m'émerveille dans l'informatique, c'est que parfois cela fonctionne !!! :D :D :D
-
- Modérateur général
- Messages : 8191
- Inscription : vendredi 06 janvier 2006, 15:32
- Statut actuel : Enseignant
- Localisation : Le Mans
- Contact :
Pour prendre le contre-pied de Cyrille, je mise sur Framboise :Dcyrille a écrit :chic chic un combat de tigresses. Je mise tout sur oleanet c'est la plus vicieuse
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
-
- Modérateur général
- Messages : 8191
- Inscription : vendredi 06 janvier 2006, 15:32
- Statut actuel : Enseignant
- Localisation : Le Mans
- Contact :
Oui car mes framboisiers n'ont pas grand chose cette année :crybaby:Framboise a écrit :Merci. Il faudra que je fasse une super tarte aux framboises... :D :D
Pas d'aide par MP : les questions sont publiques, les réponses aussi.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
Tu as apprécié l'aide qui t'a été fournie ? Alors n'hésite pas à rendre la pareille à quelqu'un d'autre.
Un peu d'autopromotion.
Il n'y a pas de combat! Je suis intervenue car j'étais surprise de voir que des gens d'un certain niveau scientifique soient surpris par les résultats de certains calculs en flottants alors qu'ils sont tout à fait "normaux" (les résultats, pas les gens :D). Mais c'est surtout le jugement à l'emporte-pièce de gigiair qui m'a poussée à réagir (je devrais être habituée pourtant...)
-
- Utilisateur chevronné
- Messages : 1172
- Inscription : lundi 21 mai 2007, 13:57
- Statut actuel : Autre
- Localisation : Dordogne
Il ne faut effectivement pas accepter aveuglément les résultats des ordinateurs. Les ordi sont en plus très forts pour ressortir les c****ries qu'on leur a introduites.
Voila en prime un aperçu d'adorable petit tigre.
Voila en prime un aperçu d'adorable petit tigre.
- Pièces jointes
-
- Catwoman.jpg
- Un tigre, c'est doux.
- (36.63 Kio) Téléchargé 3704 fois
J'ai le virus des sciences, ça se soigne ?
-
- Utilisateur chevronné
- Messages : 1172
- Inscription : lundi 21 mai 2007, 13:57
- Statut actuel : Autre
- Localisation : Dordogne
La ressemblance n'est pas bonne.
J'ai regardé plus loin avec Excel 2000.
La fonction erfc agit de même. L'erreur max est autour de l'argument 0.72.
Excel utilise les fonctions de Atpvbaen.xls/Atpvbaen.xla
Function Erf(lower_limit As Variant, Optional upper_limit As Variant) As Variant
Erf = Application.Run(GetMacroRegId("ERF"), lower_limit, upper_limit)
End Function
Function Erfc(x As Variant) As Variant
Erfc = Application.Run(GetMacroRegId("ERFC"), x)
End Function
Je regarderai si j'ai un moment pour les autres functions qui utilisent de même Application.Run.
J'ai remarqué que ce sujet semble intéresser beaucoup de monde à voir le compteur du sujet.
J'ai le virus des sciences, ça se soigne ?
-
- Sujets similaires
- Réponses
- Vues
- Dernier message