View Full Version : inverse sin/cos/tan
leftfield
Jun27-03, 08:52 AM
Is there a way to calculate the inverse sine without using sin-1? I'm having trouble with a programming language that says use arcsine to generate the angle, but when you do the numbers are way out (it uses radians, but that's not the problem).Lefty
It sounds like you are having phasing issues.
They come into play because the sin's are the same when mirrored across the y axis, the cos's are the same when mirrored across the x axis, and tangents are the same when rotated by 180 degrees.
Try putting in a few lines of code to catch what quadrant the angle is in.
For example (pseudocode):
Performing acos function
If quadrant = 3 or 4
->angle = 360-acos
else
->angle = acos
HallsofIvy
Jun27-03, 11:57 AM
Sine and cosine are not one-to-one function so sin<sup>-1</sup> and cos<sup>-1</sup> are not single-valued.
Generally computer or calculator "arc-functions" will give you the value closest to 0: for sin<sup>-1</sup>, between -[pi]/2 and [pi]/2, for cos<sup>-1</sup>, between 0 and [pi].
if [theta] is the value your computer program gives for sin<sup>-1</sup> then [pi]/2- [theta] is also a value- and of course, you can add any multiple of 2 pi to those.
leftfield
Jun29-03, 09:09 AM
Naah, still can't make the numbers work - for the inverse sin of 0.5, my calculator reads (in radians) 0.523598, whereas the computer gives asin as 0.5880026. Still baffled, lefty.
What programming language are you using? And can you post the code snippet you're using to compute the result?
Anyways, one alternative is to use the arctan function and trig identities to get the answer for arcsin. Here is the general procedure for deriving this type of identity:
arcsin (x) is the measure of the angle of the triangle with opposite side x and hypotenuse 1. (because sin y is opposite over hypotenuse)
Such a triangle has adjacent side sqrt(1 - x * x)
since tangent is opposite over adjacent, the same angle is given by:
arcsin x = arctan(x / sqrt(1 - x * x))
Or, you could try the taylor series for arcsin:
arcsin(x) = x + (1 / 2) * (x^3 / 3) + ((1 * 3) / (2 * 4)) * (x^5 / 5)
+ ((1 * 3 * 5) / (2 * 4 * 6)) * (x^7 / 7) + ...
leftfield
Jun29-03, 01:12 PM
the Taylor series, cheers! Just one question - how do you use a series like that to give an equation for the angle? (I've looked on the net for a tut but they don't explain very well)
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.