9 math programming-languages trigonometry function
根据我的理解,该atan2()函数存在于编程语言中,因为atan()它本身不能总是确定正确的θ,因为输出被限制为-pi/2到pi/2.
如果是这种情况,那么同样的问题同时适用于两者,asin()并且acos()两者都有限制范围,那么为什么没有asin2()和acos2()函数?
首先,请注意语法是atan(y/x)但atan2(y, x)不是atan2(y/x).这一点非常重要,因为如果不进行划分,则需要提供额外的信息,最重要的是x和y.如果您分别知道x和y坐标,则可以知道角度,包括象限.
如果从去tan(?) = y/x到sin(?) = y/sqrt(x²+y²),则反向操作asin需要y和sqrt(x²+y²)并结合了获得关于角度的一些信息.在这里,我们是自己执行分工还是让一些假设的asin2功能处理它并不重要.分母总是正的,因此分割的参数包含与单独的分子和分母包含的信息一样多的信息.(至少在IEEE环境中,除以零会导致正确签名的无穷大.)
如果你知道y坐标和连字符,sqrt(x²+y²)那么你就知道角度的正弦,但你不能知道角度本身,因为你无法区分负值和正值x.同样,如果你知道x坐标和hypothenuse,你知道角度的余弦,但你不知道y值的符号.
所以asin2并且acos2在数学上不可行,至少不是以明显的方式.如果你在连字符中编写了某种符号,那么事情可能会有所不同,但我认为这种符号不会自然出现.