切线、条件

发布于 2024-09-30 12:10:13 字数 232 浏览 4 评论 0原文

如何绕过函数 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。

感谢您的帮助。

How to bypass the angles at which the function tan (x) is not defined, ie x != Pi/2 + k * PI ?

I tried to use the condition:

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

but it represents a condition

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

Thanx for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

黑白记忆 2024-10-07 12:10:13

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

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

编辑: As In silico 指出,这是三角恒等式的结果:

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

在这种形式中,您可以看到,由于除以零,所以在 cos(x) = 0 的任何地方都会出现未定义的值。

The same condition can be used to determine which values of cos(x) will be zero. Thanks to that wonderful fact, you can simply do the following (pseudocode):

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

Edit: As In silico points out, this is a result of the trigonometric identity:

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

In this form, you can see that the undefined values will appear wherever cos(x) = 0 because of the division by zero.

傲世九天 2024-10-07 12:10:13

尝试一下

(x - PI/2) % PI != 0

会发现检查导致 tan(x) 未定义的 x 值。

How about trying

(x - PI/2) % PI != 0

Will find check for the values of x that cause tan(x) to be undefined.

带刺的爱情 2024-10-07 12:10:13

不使用切线吗?它比使用(正弦,余弦)对性能更高,但通常您可以使用(正弦,余弦)对而不必担心不连续性。

你用切线做什么?

Don't use tangent? It can be more performant than using a (sine, cosine) pair, but usually you can use a (sine, cosine) pair without worrying about discontinuities.

What are you using tangent for?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文