binette1er
Messages postés26Date d'inscriptionlundi 7 juillet 2003StatutMembreDernière intervention24 août 2003
-
31 juil. 2003 à 12:35
gorlack
Messages postés7Date d'inscriptionmardi 8 juillet 2003StatutMembreDernière intervention31 juillet 2003
-
31 juil. 2003 à 14:40
Bonjour,
J'ai programmé une boucle pour faire une recherche dichotomique du genre:
limg 'limite à gauche
limd 'limite à droite
do
x=(limg+limd)/2
' définition de 2 équations f1(x) et f2(x)
.....
diff= f1(x)-f2(x)
if ( diff<0)<0 then
limg=x
else
limd=x
end if
loop while (f(x)<>0)
Mon problème est celui ci: à partir d'un certain nombre de boucles, bien que diff tende vers 0, la valeur de diff garde une meme valeur et le programme boucle indéfinimment...
j'ai remarqué à ce moment avec un débogage pas à pas que le calcul de f1(x) et f2(x) n'évoluait plus et que les valeurs de f1(x) et f2(x) avaient une meme valeur (ex:f1 affiche 325658 et f2 325658) mais que la diff se bloquait à une petite valeur (ex:0.25)....
le problème peut il être que je n'ai pas bien déclaré mes variables (j'ai tout défini comme single) ou que mes text.box (d'où je déclare des valeurs nécessaires au calcul de f1 et f2) ne sont pas bien déclarés (un nombre de 0 derrière la virgule trop faible)??
J'espère que vous comprendrez mon problème
et merci d'avance
binette1er