Problème de calcul en double précision

Problème de calcul en double précision - C - Programmation

Marsh Posté le 07-09-2006 à 18:48:26    

bonjour,
 
Tout d'abord :
 
RHHHHHAAAAAA!!!! j'en ai marre !!!!!!!  :fou:  :fou:  
 
Et ensuite...  :lol: :
 
j'ai un GrOoOoos problème quand je calcule en double précision ..je dois calculer l'arcosinus de certaines valeurs, plus précisemment :
 

Code :
  1. acos(ur*vr + ue*ve + 1)/sqrt( (ue*ue + ve*ve + 1)*(ue*ue + ve*ve + 1) );

 
 
avec ur, vr, ue et ve qui sont juste des valeurs réelle (de type double).  
 
Or, quand j'affiche le résultat de acos (...) j'obtient des NaN a certains endroits !!!!! (mon acos est dans une boucle)
 
je ne comprend pas. J'ai remarqué que qd j'obtiens NaN c'est quand certaines des valeurs de ue,ve,ur,vr sont égales à zéros, par exemple  
 

Code :
  1. ur=-0.967881 vr=-0.251410 ue=0.000000 ve=0.000000


 
la ca foire !!!!!
 
 
je ne comprend pas.  
 
 
snif  :cry:  :cry:  :cry:  :cry:  
 
aidez moi  :love:  :love:  :love:  :love:  :love:  
 
 
merci par avance
 
 
 
 
 

Reply

Marsh Posté le 07-09-2006 à 18:48:26   

Reply

Marsh Posté le 07-09-2006 à 19:04:19    

in_your_phion a écrit :

bonjour,
 
Tout d'abord :
 
RHHHHHAAAAAA!!!! j'en ai marre !!!!!!!  :fou:  :fou:  
 
Et ensuite...  :lol: :
 
j'ai un GrOoOoos problème quand je calcule en double précision ..je dois calculer l'arcosinus de certaines valeurs, plus précisemment :
 

Code :
  1. acos(ur*vr + ue*ve + 1)/sqrt( (ue*ue + ve*ve + 1)*(ue*ue + ve*ve + 1) );

 
 
avec ur, vr, ue et ve qui sont juste des valeurs réelle (de type double).  
 
Or, quand j'affiche le résultat de acos (...) j'obtient des NaN a certains endroits !!!!! (mon acos est dans une boucle)
 
je ne comprend pas. J'ai remarqué que qd j'obtiens NaN c'est quand certaines des valeurs de ue,ve,ur,vr sont égales à zéros, par exemple  
 

Code :
  1. ur=-0.967881 vr=-0.251410 ue=0.000000 ve=0.000000


 
la ca foire !!!!!
 
 
je ne comprend pas.  
 
 
snif  :cry:  :cry:  :cry:  :cry:  
 
aidez moi  :love:  :love:  :love:  :love:  :love:  
 
 
merci par avance


 
Les intervalles de départ et d'arrivée de arccos() c'est quoi déjà?
 

Reply

Marsh Posté le 10-09-2006 à 12:32:02    

in_your_phion a écrit :

RHHHHHAAAAAA!!!! j'en ai marre !!!!!!!  :fou:  :fou:  

Code :
  1. acos(ur*vr + ue*ve + 1)/sqrt( (ue*ue + ve*ve + 1)*(ue*ue + ve*ve + 1) );

 
Or, quand j'affiche le résultat de acos (...) j'obtient des NaN a certains endroits !!!!! (mon acos est dans une boucle)
exemple  
 

Code :
  1. ur=-0.967881 vr=-0.251410 ue=0.000000 ve=0.000000


 
la ca foire !!!!!


Si ur=-0.967881 et vr=-0.251410, alors "acos (ur*vr + 1)" = "acos (1.24)". Or un cosinus (ou un sinus) doit être impérativement compris entre -1 et 1.

in_your_phion a écrit :

snif  :cry:  :cry:  :cry:  :cry:  je ne comprend pas.


Pas la peine de pleurer alors qu'il suffit de réfléchir et de se souvenir de ses formules de trigo (à condition qu'on les aies apprises un jour !!!)
 
Ceci dit, ce topic n'a rien à voir avec le C. Voir plutôt coté forum maths...

Message cité 1 fois
Message édité par Sve@r le 10-09-2006 à 12:39:32

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 11-09-2006 à 02:30:26    

Sve@r a écrit :

Si ur=-0.967881 et vr=-0.251410, alors "acos (ur*vr + 1)" = "acos (1.24)". Or un cosinus (ou un sinus) doit être impérativement compris entre -1 et 1.
 
Pas la peine de pleurer alors qu'il suffit de réfléchir et de se souvenir de ses formules de trigo (à condition qu'on les aies apprises un jour !!!)
 
Ceci dit, ce topic n'a rien à voir avec le C. Voir plutôt coté forum maths...


 
hum, oui c'était effectivement ça  :o j'ai relu mes formules de trigo (que j'avais apprises un jour  :fou:  :lol: )
 
merki  :hello:  
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed