2011-12-20 1 views
1

J'ai besoin d'obtenir un cosinus inverse et un sinus inverse à partir du résultat d'une série d'autres calculs. Si ma valeur d'entrée est en dehors de la plage -1 à 1, alors acosf ou asinf renvoie nan, ce qui est attendu compte tenu de la définition de la fonction.Comment normaliser la valeur d'entrée pour acosf ou asinf?

Comment est-ce que je devrais ajuster la valeur de sorte qu'elle tombe dans la gamme acceptable, mais donne toujours la bonne réponse? Dans la feuille de calcul que j'utilise pour vérifier mes calculs, cette normalisation se passe dans les coulisses, donc nan n'est pas retourné.

Je pense que je dois faire quelque chose comme, pour acosf, ajouter cos (pi) jusqu'à ce que la valeur tombe dans la gamme, mais je voudrais une confirmation ou un conseil s'il vous plaît.

+2

Quelle est la bonne réponse, sinon "nan"? –

Répondre

4

Il n'y a pas de processus de normalisation. Si la réponse est en dehors de [-1, + 1], alors les calculs précédents sont cassés. Une exception est que les inexactitudes à virgule flottante conduisent à une valeur telle que 1.00001. Dans de tels cas, il est probablement sûr de fixer l'entrée à la plage valide.

+0

Ahhhh - la valeur était très proche de 1. Cela a dû l'être. J'ai supposé qu'il commençait juste à sortir de la gamme, mais une inexactitude d'arrondi/flottant a plus de sens .. Merci beaucoup. Ca fait des années que je n'ai plus aucun trig, très rouillé maintenant ... – jrturton