|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 6 ![]() |
Bonjour,
J'ai un problème avec un algo de Monte-Carlo. Grosso-modo j'ai une fonction qui doit calculer une variance empirique, et un "Dépassement de capacité" qui s'affiche. Code :
Bref, j'ai essayé plein de trucs et rien n'y faire, ca me met toujours un dépassement de capacité. Une idée ? Merci ! Bonne soirée. |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Code :
V = V + ((g(i) - moyenne) ^ 2) / (M - 1) V = 61 M = 2555 Tu ne donnes pas Moyenne g(i) Comment veux tu qu'on puisse te répondre? Essai de nous donner un exemple d'utilisation de ta fonction avec les données qui font apparaître l'erreur. ++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 6 ![]() |
Ben g(i) je peux le donner mais comme il contient 10 000 valeurs c'est compliqué.
En tout cas ce que je peux dire facilement c'est que les (g(i) - moyenne)^2 ca fait des valeurs inférieurs à 0.01 à chaque fois. J'ai trouvé une solution "temporaire". Au lieu de passer un tableau à ma fonction, j'écrit les données sur une feuille excel et ma fonction les lis directement. Ca fonctionne mais ... c'est quand même pas très beau :S PS : D'ailleurs quand j'ai dit M=2555 c'était une erreur. M=10 000. C'est i qui vaut 2555 au moment où ca bug. |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Citation:
Maintenant si tu es sûr de ton 0.01, inutile de répondre. Par contre pour trouver ton erreur, une fois ton code en mode débogage, il faut que tu regardes un à un tout les membres de ta formule, utilises des espions si besoin (selection + clique droit Ajouter Espions (Ok)) L'un d'eux doit te renvoyer l'erreur, une fois trouvé lequel, il faudra analyser pourquoi. Pour le coup de passer par le contenu des cellules, il faut faire attention, quand tu stockes une valeur dans une cellule (d'autant plus un Double), je crois bien que la cellule fait des arrondis bizarres, ce qui pourrait expliquer l’absence de dépassement de capa par la suite... trop de décimal peut-être. Du coup essais de faire Code :
V = CDbl(V + ((g(i) - moyenne) ^ 2) / (M - 1)) Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com