如何绕开未定义函数tan(x)的 Angular ,即x!= Pi / 2 + k * PI?

我尝试使用条件:

(x != 0) && (2 * x / M_PI - (int)(2 * x / M_PI ) ) < epsilon,

但这代表一个条件

x!= Pi / 2 + k * PI / 2

感谢您的帮助。

最佳答案

可以使用相同的条件来确定cos(x)的哪些值将为零。由于这个奇妙的事实,您可以简单地执行以下操作(伪代码):

SafeTan(x)
{
    if (cos(x) < epsilon) { /* handle the error */ }
    else { return tan(x); }
}

编辑:正如In silico所指出的,这是三角身份的结果:

tan(x) = sin(x) / cos(x)

通过这种形式,您可以看到,由于cos(x)= 0,未定义的值将出现在cos(x)= 0的任何位置。

09-30 13:54
查看更多