2015-03-17 16 views
5

Da quanto ho capito, la funzione atan2() esiste nei linguaggi di programmazione perché lo stesso atan() non può determinare sempre il theta corretto poiché l'uscita è limitata a -pi/2 a pi/2.Perché non ci sono funzioni asin2() e acos2() simili a atan2()?

Se questo è il caso, allora lo stesso problema si applica sia asin() e acos(), entrambi i quali inoltre hanno limitato range, quindi perché non ci sono asin2() e acos2() funzioni?

risposta

5

Prima di tutto, si noti che la sintassi è atan(y/x) ma atan2(y, x), non atan2(y/x). Questo è importante perché, non eseguendo la divisione, fornisci ulteriori informazioni, soprattutto i singoli segni di x e . Se si conoscono le coordinate x e separatamente, si conosce l'angolo, compreso il quadrante.

Se si va tan(θ) = y/x-sin(θ) = y/sqrt(x²+y²), quindi l'operazione inversa asin prende y e sqrt(x²+y²) e combina che per ottenere alcune informazioni circa l'angolo. Qui non importa se eseguiamo la divisione da soli o lasciamo che qualche ipotetica funzione asin2 la gestisca. Il denominatore è sempre positivo, quindi l'argomento diviso contiene altrettante informazioni quante il numeratore e il denominatore separati contengono. (Almeno in un ambiente IEEE dove la divisione per zero porta ad un'all'infinito correttamente-firmata.)

Se si conosce il y coordinate e l'ipotenusa sqrt(x²+y²) allora si conosce il seno dell'angolo, ma non è possibile conoscere l'angolo sé , poiché non è possibile distinguere tra valori positivi e positivi di x. Allo stesso modo, se si conosce la coordinata x e l'ipotesi, si conosce il coseno dell'angolo ma non si può conoscere il segno del valore .

Quindi asin2 e acos2 non sono matematicamente fattibili, almeno non in modo evidente. Se avessi una specie di segno codificato nell'ipotenusa, le cose potrebbero essere diverse, ma non riesco a pensare a nessuna situazione in cui un tale segno si presenterebbe naturalmente.

+1

Accetto. Il dominio di 'sin (x)' è 'x = -π/2 ... π/2' e di' cos (x) 'è' x = 0..π'. C'è _no_ way 'acos()' restituirebbe un numero negativo perché 'cos (x) = cos (-x)'. – ja72

+3

Prima frase se molto confusa. – Dan

Problemi correlati