gpt4 book ai didi

python - 正切 x 的反正切未精确计算

转载 作者:行者123 更新时间:2023-11-28 21:32:09 25 4
gpt4 key购买 nike

我的 Python 程序需要正切、反正切函数。我尝试了 np.arctan 和 np.tan 但观察到奇怪的行为。原则上,某个数字的正切反正切就是该数字本身,但下面的代码没有给出精确的值。

import numpy as np
x = 10
print(np.arctan(np.tan(x)))

当我将x更改为2*x或3*x时,结果更加不准确。我尝试了 math.tan、math.atan 但结果是一样的。

有人可以解释一下为什么会发生这种情况吗(这两个函数中哪一个是错误的),以及在什么情况下应该小心使用反正切和正切函数?

最佳答案

需要注意的三件事:

  1. 在Python中(就像我见过的所有编程语言一样)三角函数与radians中的角度一起工作即范围 [0, 2*pi) 代表“完整的圆”
  2. tan 是周期性的:tan(x) = tan(pi + x)(再次注意,这是以弧度为单位;在 python 中 tan(x) = tan(180 + x) 不会是真的!)。
  3. arctan返回[-pi/2, pi/2)中的值。

在您的示例中,您依靠 [-pi/2, pi/2) 中的正确结果:

import numpy as np

x = 10
print(np.arctan(np.tan(x))) # 0.575222039231
print(10 % (np.pi / 2)) # 0.5752220392306207

你的函数np.arctan(np.tan(x))相当于(计算成本较低)

def arctan_tan(x):
ret = x % np.pi
if ret > np.pi / 2:
ret -= np.pi
return ret

关于python - 正切 x 的反正切未精确计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56964617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com