歌者文明清理员 发表于 2023-6-29 14:37:57

【数学笔记】1. radians / degrees

众所周知,sin(90) 的结果应该是 1。

可 Python 却给出了一个“错误”的答案:

Python 3.9.9 (tags/v3.9.9:ccb0e6a, Nov 15 2021, 18:08:50) on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> from math import sin
>>> sin(90)
0.8939966636005579
>>>

其实 Python 的答案并没有错。让我们来康康 Python 的官方文档:

>>> help(sin)
Help on built-in function sin in module math:

sin(x, /)
    Return the sine of x (measured in radians).

>>>

Return the sine of x 返回 x 的 sin 值,没问题;

注意括号里面的—— measured in radians。

以弧度为单位?



仔细想想:sin(90) 的 90 单位是什么?是度(°)。90 的意思是 90 度。

“度”是 degrees,并不是 radians。所以我们需要将 90 从 degrees 转换成 radians。可以使用 math.radians() 方法:

>>> from math import radians, sin
>>> help(radians)
Help on built-in function radians in module math:

radians(x, /)
    Convert angle x from degrees to radians.

>>>

试试看:

>>> from math import radians, sin
>>> help(radians)
Help on built-in function radians in module math:

radians(x, /)
    Convert angle x from degrees to radians.

>>> sin(radians(90))
1.0
>>>

Great!获取到了正确的结果——1.0。

接下来是 asin。

asin 相当于数学中的 sin-1,即 sin 的逆过程。

这也一样,asin 也需要进行 radians/degrees 转换,不过因为是逆过程,连转换也反过来了,变成了 radians -> degrees。

>>> from math import asin
>>> asin(1.0)
1.5707963267948966
>>>

像 radians() 一样,degrees() 则负责从角度(degrees)转换为弧度(radians)。

它正确地输出了结果:90.0。

>>> from math import degrees, asin
>>> degrees(asin(1.0))
90.0
>>>

liuhongrun2022 发表于 2023-6-29 20:03:20

{:10_275:}
页: [1]
查看完整版本: 【数学笔记】1. radians / degrees