Division par zero [Résolu]

cs_valkyrie 60 Messages postés mardi 27 juillet 2004Date d'inscription 13 décembre 2004 Dernière intervention - 24 sept. 2004 à 07:07 - Dernière réponse : romior 4 Messages postés dimanche 27 novembre 2005Date d'inscription 19 février 2006 Dernière intervention
- 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
Afficher la suite 

Votre réponse

8 réponses

cs_valkyrie 60 Messages postés mardi 27 juillet 2004Date d'inscription 13 décembre 2004 Dernière intervention - 28 sept. 2004 à 06:23
+3
Utile
ok merci kenavo
aimez vous les uns les autres
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_valkyrie
exyacc 163 Messages postés dimanche 20 octobre 2002Date d'inscription 31 juillet 2008 Dernière intervention - 24 sept. 2004 à 10:31
0
Utile
tu utilises quoi comme type de variable pour rrNum et ZNum ?
Commenter la réponse de exyacc
cs_valkyrie 60 Messages postés mardi 27 juillet 2004Date d'inscription 13 décembre 2004 Dernière intervention - 24 sept. 2004 à 10:36
0
Utile
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
Commenter la réponse de cs_valkyrie
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 27 sept. 2004 à 08:34
0
Utile
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 !
Commenter la réponse de cs_Kenavo
exyacc 163 Messages postés dimanche 20 octobre 2002Date d'inscription 31 juillet 2008 Dernière intervention - 27 sept. 2004 à 09:18
0
Utile
t'as essayé avec du extended au lieu de double ?
Commenter la réponse de exyacc
cs_valkyrie 60 Messages postés mardi 27 juillet 2004Date d'inscription 13 décembre 2004 Dernière intervention - 27 sept. 2004 à 09:35
0
Utile
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
Commenter la réponse de cs_valkyrie
cs_Kenavo 759 Messages postés vendredi 21 mars 2003Date d'inscription 1 octobre 2009 Dernière intervention - 27 sept. 2004 à 12:37
0
Utile
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 !
Commenter la réponse de cs_Kenavo
romior 4 Messages postés dimanche 27 novembre 2005Date d'inscription 19 février 2006 Dernière intervention - 15 déc. 2005 à 11:20
0
Utile
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....
Commenter la réponse de romior

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.