常見的三角函數,如 sin(x), cos(x), 和 tan(x),在 Python 裡,要使用這些函數,要先 import math
這個函式庫。
In [2]: import math
注意三角函數的運算,變數 x 是以弧度 (radian),而不是角度 (degree)。1 弧度的定義是圓弧長度等於半徑時的圓心角。弧度是實數,通常沒有單位,有時也會用 rad 來表示。一個圓的角度 360° (degree) 相當於弧度 2π (radian)。半個圓 180° 相當於 π。30° 就是 π/6。依此類推。
1 弧度 (rad) 相當於多少角度 (degree) 呢?
In [3]: 180/math.pi Out[3]: 57.29577951308232
為了方便和畫面簡潔起見,我們在此先自定一個變數 Pi = 圓周率。
In [4]: Pi = math.pi
以下來計算幾個三角函數的例子:
In [5]: math.sin(Pi / 6) Out[5]: 0.49999999999999994 #註:這裡應傳回 0.5,程式計算的結果是近似值。 In [6]: math.cos(Pi / 2) Out[6]: 6.123233995736766e-17 #註:這裡應傳回 0,而程式計算的結果是近似值,6.1232... 乘以 10 的負17次方。 In [7]: math.cos(0) Out[7]: 1.0 In [8]: math.sin(0) Out[8]: 0.0 In [9]: math.sin(Pi / 3) Out[9]: 0.8660254037844386 In [10]: math.tan(Pi / 4) Out[10]: 0.9999999999999999 #註:這裡應傳回 1.0,程式計算的結果是近似值。 In [11]: math.tan(Pi / 6) Out[11]: 0.5773502691896257 In [12]: math.sin(2.3) Out[12]: 0.7457052121767203 In [13]: math.cos(-3) Out[13]: -0.9899924966004454 In [14]: math.tan(1.8) Out[14]: -4.286261674628062
弧度 (radian) 和角度 (degree) 的轉換,可以用以下函數:
math.degrees(x)
可將弧度轉換成角度。
math.radians(x)
可將角度轉換成弧度。
In [16]: math.degrees(Pi) Out[16]: 180.0 In [17]: math.radians(180) Out[17]: 3.141592653589793
後記:如這篇文章所示,math 函式庫中的三角函數計算,有時會傳回近似值,使用者也能會覺得有點不安。我後來又寫了一篇用 SymPy 函式庫內的三角函數計算的文章,當用 SymPy 內的三角函數計算時,系統傳回的就是較正確的值了。甚至還可傳回正確的公式值呢。