如何绕过未定义函数tan(x)的角度,即x!= Pi / 2 + k * PI?
我试图使用条件:
(x != 0) && (2 * x / M_PI - (int)(2 * x / M_PI ) ) < epsilon,
但它代表一个条件
x!= Pi / 2 + k * PI / 2.
Thanx求助。
答案 0 :(得分:4)
可以使用相同的条件来确定cos(x)的哪个值为零。感谢这个奇妙的事实,您可以简单地执行以下操作(伪代码):
SafeTan(x)
{
if (cos(x) < epsilon) { /* handle the error */ }
else { return tan(x); }
}
编辑:正如In silico指出的那样,这是三角函数的结果:
在这种形式中,您可以看到未定义的值将出现在cos(x)= 0的任何地方,因为除以零。
答案 1 :(得分:0)
如何尝试
(x - PI/2) % PI != 0
将查找导致tan(x)未定义的x值。
答案 2 :(得分:0)
不要使用切线?它比使用(正弦,余弦)对更有效,但通常你可以使用(正弦,余弦)对而不用担心不连续性。
你正在使用什么切线?