Précision des calculs

Le
Tatanka
Bonsoir, Bonsoir,

J'ai déjà soumis ce problème sans donner trop de détails.
Suite aux monstrueuses erreurs générées par cette macro,
je me demande si je n'ai pas commis une grossière erreur
en rédigeant mon code. Si ce n'est pas le cas, comment
expliquer une telle différence entre les bons résultats et
ceux obtenus par formules Excel et VBA.
Il m'apparaît difficile de savoir à l'avance si une macro
qui fait des itérations va donner des résultats auxquels
on peut se fier. Allez savoir si l'exemple que je vous propose
est unique au monde!
J'aimerais bien avoir vos réflexions à ce sujet.

Voici ma patente :
http://cjoint.com/?cttCChzVjm

Merci,
Serge
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #5275111
Dans ton exemple de procédure que tu décris comme "Correct"
il y a une différence entre les résultats de la feuille de calcul et
les calculs de la procédure au niveau de la XIème décimale de
certaine réponse quand tu définis tes variables de cette façon

Sub Correct()
Dim u(20) As Double
Dim n(20) As Long
Dim d(20) As Long

Si tu modifies le type de cette variable, tu obtiendras
exactement la même valeur pour les 9 premières décimales
(ceux que tu as décidé d'afficher)

Dim u(20) As Double
Dim n(20) As Double
Dim d(20) As Double

Pour ce qui est de la procédure Grosses_Erreurs()
Est-ce qu'elle calcule la même chose que l'autre procédure
cela relève plus du mathématicien que de la compréhension
d'excel.



"Tatanka"
Bonsoir, Bonsoir,

J'ai déjà soumis ce problème sans donner trop de détails.
Suite aux monstrueuses erreurs générées par cette macro,
je me demande si je n'ai pas commis une grossière erreur
en rédigeant mon code. Si ce n'est pas le cas, comment
expliquer une telle différence entre les bons résultats et
ceux obtenus par formules Excel et VBA.
Il m'apparaît difficile de savoir à l'avance si une macro
qui fait des itérations va donner des résultats auxquels
on peut se fier. Allez savoir si l'exemple que je vous propose
est unique au monde!
J'aimerais bien avoir vos réflexions à ce sujet.

Voici ma patente :
http://cjoint.com/?cttCChzVjm

Merci,
Serge
Tatanka
Le #5275051
C'est OK pour les neuf premières décimales.
Pour ce qui est de la procédure Grosses_Erreurs()
Est-ce qu'elle calcule la même chose que l'autre procédure
Tout à fait et c'est ça qui m'agace et je ne suis même pas ivre ;-)

Je vais quand même revérifié pour la millième fois.
Il y a aussi cette différence :
u(7) 4... avec la formule Excel et u(7) = 106... avec VBA.

C'est le saut vertigineux de u(6) à u(7) qui m'a mis la puce à l'oreille.
J'ai alors fait les calculs manuellement.

Serge

"MichDenis"
Dans ton exemple de procédure que tu décris comme "Correct"
il y a une différence entre les résultats de la feuille de calcul et
les calculs de la procédure au niveau de la XIème décimale de
certaine réponse quand tu définis tes variables de cette façon

Sub Correct()
Dim u(20) As Double
Dim n(20) As Long
Dim d(20) As Long

Si tu modifies le type de cette variable, tu obtiendras
exactement la même valeur pour les 9 premières décimales
(ceux que tu as décidé d'afficher)

Dim u(20) As Double
Dim n(20) As Double
Dim d(20) As Double

Pour ce qui est de la procédure Grosses_Erreurs()
Est-ce qu'elle calcule la même chose que l'autre procédure
cela relève plus du mathématicien que de la compréhension
d'excel.



"Tatanka"
Bonsoir, Bonsoir,

J'ai déjà soumis ce problème sans donner trop de détails.
Suite aux monstrueuses erreurs générées par cette macro,
je me demande si je n'ai pas commis une grossière erreur
en rédigeant mon code. Si ce n'est pas le cas, comment
expliquer une telle différence entre les bons résultats et
ceux obtenus par formules Excel et VBA.
Il m'apparaît difficile de savoir à l'avance si une macro
qui fait des itérations va donner des résultats auxquels
on peut se fier. Allez savoir si l'exemple que je vous propose
est unique au monde!
J'aimerais bien avoir vos réflexions à ce sujet.

Voici ma patente :
http://cjoint.com/?cttCChzVjm

Merci,
Serge





Tatanka
Le #5274911
J'ai revérifié et je confirme que cette suite de nombres converge vers 2.
Ce qui m'étonne le plus, c'est de constater que la macro et la formule
Excel cafouillent aussi rapidement et donnent en plus deux valeurs différentes !
Pour n = 7 :
204,74... pour la formule
106,43... pour la macro
alors que le bonne valeur est 1,99...

Serge

"Tatanka"

C'est OK pour les neuf premières décimales.
Pour ce qui est de la procédure Grosses_Erreurs()
Est-ce qu'elle calcule la même chose que l'autre procédure
Tout à fait et c'est ça qui m'agace et je ne suis même pas ivre ;-)

Je vais quand même revérifié pour la millième fois.
Il y a aussi cette différence :
u(7) 4... avec la formule Excel et u(7) = 106... avec VBA.

C'est le saut vertigineux de u(6) à u(7) qui m'a mis la puce à l'oreille.
J'ai alors fait les calculs manuellement.

Serge

"MichDenis"
Dans ton exemple de procédure que tu décris comme "Correct"
il y a une différence entre les résultats de la feuille de calcul et
les calculs de la procédure au niveau de la XIème décimale de
certaine réponse quand tu définis tes variables de cette façon

Sub Correct()
Dim u(20) As Double
Dim n(20) As Long
Dim d(20) As Long

Si tu modifies le type de cette variable, tu obtiendras
exactement la même valeur pour les 9 premières décimales
(ceux que tu as décidé d'afficher)

Dim u(20) As Double
Dim n(20) As Double
Dim d(20) As Double

Pour ce qui est de la procédure Grosses_Erreurs()
Est-ce qu'elle calcule la même chose que l'autre procédure
cela relève plus du mathématicien que de la compréhension
d'excel.



"Tatanka"
Bonsoir, Bonsoir,

J'ai déjà soumis ce problème sans donner trop de détails.
Suite aux monstrueuses erreurs générées par cette macro,
je me demande si je n'ai pas commis une grossière erreur
en rédigeant mon code. Si ce n'est pas le cas, comment
expliquer une telle différence entre les bons résultats et
ceux obtenus par formules Excel et VBA.
Il m'apparaît difficile de savoir à l'avance si une macro
qui fait des itérations va donner des résultats auxquels
on peut se fier. Allez savoir si l'exemple que je vous propose
est unique au monde!
J'aimerais bien avoir vos réflexions à ce sujet.

Voici ma patente :
http://cjoint.com/?cttCChzVjm

Merci,
Serge









Publicité
Poster une réponse
Anonyme