How do calculators evaluate inverse trig functions?

I know for simple inputs, you can just memorize the answer, but what if I wanted to find $\arcsin{0.554}$. My calculator instantly tells me that the answer is $0.5752 \ \text{radians}$. How can I do that by hand, procedurally, to always arrive at the right answer without having to memorize a bunch of stuff.

Thanks.


Solution 1:

This is a good question! Trig functions and inverse trig functions are tricky. In fact, IEEE has published standards for how they should be computed. (EDIT: Clause 9 of IEEE 754-2008, the floating point standard, recommends but does not require the implementation of trigonometric functions.)

In the following paper, a method is described for computing $\arcsin x$ when $0 < x < 1$: Paper.

In essence, they use the trig identity

$$\arcsin N = \arctan \frac{N}{\sqrt{1-N^2}}.$$

Of course, this just raises the question: how do you compute $\arctan x$?

Old algorithms used something called CORDIC.

Modern computers have sufficient memory and speed that they can construct lookup tables and interpolate. However, CORDIC is still finding use in things like FPGAs. I don't know offhand what the standard algorithm is, currently, but I'm willing to bet your calculator either uses CORDIC or interpolated lookups.

Solution 2:

The calculators normally use a version of the CORDIC-algorithms which is a set of algorithms for evaluating different trigonometric functions, or some kind of power series (e.g. Taylor series) of the function. These algorithms normally are not very well suited for doing calculations 'by hand' since they make use of a lot of repetition where computers are good at but we humans are pretty slow. As the hardware became cheaper we now often also have lookup tables which enables us to do a interpolation which is accurate enough for the expected applications.

Solution 3:

To answer the question in the body, which is quite different from the title, you won't get a very accurate value for arcsin by hand without a lot of work. The easiest reasonably accurate way is to use the closest value you know and a Taylor's series. If you want $\arcsin 0.554$, you probably know $\arcsin 0.5=\frac \pi 6$. Then $\arcsin 0.554 \approx \frac \pi 6 + 0.054 \left.\frac d{dx}\arcsin x\right|_{0.5}=\frac \pi 6 + 0.054 \frac 1{\sqrt {1-0.5^2}}\approx 0.58595$, which is within $0.0012$ of the correct $0.58716.$