Division par zero [Résolu]

Signaler
Messages postés
60
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
13 décembre 2004
-
Messages postés
4
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 février 2006
-
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
A voir également:

8 réponses

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

ok merci kenavo
aimez vous les uns les autres
Messages postés
163
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
31 juillet 2008

tu utilises quoi comme type de variable pour rrNum et ZNum ?
Messages postés
60
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
13 décembre 2004

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
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
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 !
Messages postés
163
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
31 juillet 2008

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

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
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
3
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 !
Messages postés
4
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 février 2006

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....