如何绕开未定义函数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的任何位置。