Division par zero

Résolu
cs_valkyrie
Messages postés
60
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
13 décembre 2004
- 24 sept. 2004 à 07:07
romior
Messages postés
4
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 février 2006
- 15 déc. 2005 à 11:20
Bonjour

j ai cette expression

T[i,j]:= (Ln ( Rfk [i,j] / ZNum))/(-rrNum)

lorsque je compile j ai une erreur division par zero mais en aucun cas il y a division par zero car Znum et rrnum sont certes tres proches de zero mais jamais strictement egaux a zero

si j enleve le Ln ya plus de probleme mais a ce moment la c est plus une question de division par zero.................. :(

Merci pour votre lumiere

aimez vous les uns les autres

8 réponses

cs_valkyrie
Messages postés
60
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
13 décembre 2004

28 sept. 2004 à 06:23
ok merci kenavo
aimez vous les uns les autres
3
exyacc
Messages postés
163
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
31 juillet 2008

24 sept. 2004 à 10:31
tu utilises quoi comme type de variable pour rrNum et ZNum ?
0
cs_valkyrie
Messages postés
60
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
13 décembre 2004

24 sept. 2004 à 10:36
Ce sont des double...
le pb vient du Ln je pense...si Rfk est proche de zero , jusqu a quelle valeur considere t il cela come superieure a zero...
aimez vous les uns les autres
0
cs_Kenavo
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
27 sept. 2004 à 08:34
Salut

La limite est 5 E-324, et ça fait pas gros !

tu peux vérifier avec un truc du genre

procedure TForm1.FormCreate(Sender: TObject);
var
  x, y : double;
  Erreur : boolean;
begin
  x:=1;
  Erreur := False;
  Repeat
    Memo1.Lines.Add(FloatToStr(x));
    try
      y := ln(x);
      x:=x/2;
    except
      Erreur := true;
    end;  
  until Erreur;
end;

en mettant juste un TMemo (Memo1) sur ta fiche.

Ken@vo
____________________
Code, Code, Codec !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
exyacc
Messages postés
163
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
31 juillet 2008

27 sept. 2004 à 09:18
t'as essayé avec du extended au lieu de double ?
0
cs_valkyrie
Messages postés
60
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
13 décembre 2004

27 sept. 2004 à 09:35
oui mais ca marche pas.....

je pense a peu pres comprendre le pb ca vient du numerateur si il est egal a zero car la resolution du Ln pour les solveurs num se fait par developpement limite...

il me faudrait une instruction du type

Ln(max(1e-100,R[i,j].....
mais je ne connais pas l instruction pour borner est ce que vous savez?
merci
aimez vous les uns les autres
0
cs_Kenavo
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
27 sept. 2004 à 12:37
Salut

Entièrement d'accord avec ton analyse sur les développements limités. La fonction Max existe dans l'unité Math

Ken@vo
____________________
Code, Code, Codec !
0
romior
Messages postés
4
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 février 2006

15 déc. 2005 à 11:20
salut à tous,
je voudrai bien que vous m envoier un programme en pascal qui calcul le zero d un polynome à l aide de la methode de NEWTON _MAEHLY.
merci de votre comprehension....
0