function to increase the range of inverse sine

The asin() function only returns values between (-pi/2, pi/2). How can I write a function to give me values between (0, 2pi)?

Answers (3)

You can force the output to be within the range (0,2pi) by applying the mod() function:
>> mod(asin(x),2*pi)
Given only one input argument, you can't infer precisely which quadrant to return. Walter's answer points to a list of requested features (specifically, more two-argument versions of inverse trig functions).
theodore panagos
theodore panagos on 26 Oct 2018
Edited: Walter Roberson on 26 Oct 2018
You can have the asin(x,y) from 0 to 2*pi by the formula:
asin(x,y)=pi-pi/2*(1+sgn(x))*(1-sgn(y^2))-pi/4*(2+sgn(x))*sgn(y) -sgn(x*y)*asin((abs(x)-abs(y))/sqrt(2*x^2+2*y^2))
there is x=x2-x1 and y=y2-y1

Categories

Find more on Fractals in Help Center and File Exchange

Asked:

on 14 Sep 2011

Edited:

on 26 Oct 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!