回覆列表
-
1 # 諸艾文
-
2 # 紅塵匆匆過客夢
三角函式等價轉換成極數數列表示,電腦計算三角函式是透過呼叫api庫函式或類的方法進行的,底層應是採用迭代演算法,在精度範圍內計算出極數數列結果,具體實現可不用管,只需傳入正確引數,然後呼叫函式或方法即可得到正確結果
三角函式等價轉換成極數數列表示,電腦計算三角函式是透過呼叫api庫函式或類的方法進行的,底層應是採用迭代演算法,在精度範圍內計算出極數數列結果,具體實現可不用管,只需傳入正確引數,然後呼叫函式或方法即可得到正確結果
(其實是用的cordic演算法,但稍複雜,說一個容易理解的)
級數。
以上就是計算各種三角函式的公式。
什麼是級數?級數就是按照一定規律,把一串的數字累加起來的函式。有一些級數,一直加啊加啊加,加到最後,會無限接近某一個值,這個值也就是這個級數和的極限,有極限的級數就是收斂的級數。
對於複雜的,沒辦法直接算的函式,計算機處理起來往往都是把這個函式先轉化成一個極限為該函式的級數,然後計算。
值得注意的是,雖說理論上講,級數需要累加到無窮多項才能和其極限“無窮接近”,但實際上我們也不需要這麼的接近。以sin x為例:
sin1 = 0.8414709848079
(注:這裡的1是弧度制的1,不是角度制的1°。弧度制,1 ≈57.32484076°)
用級數計算:
一項: 1 = 1
兩項:1 - 1/6 = 0.83333333
三項:1 - 1/6 + 1/120 = 0.841677777
四項:1 - 1/6 + 1/120 - 1/5040 = 0.841468254
五項:1 - 1/6 + 1/120 - 1/5040 +1/362880 = 0.8414710097
這才計算了5項,結果就已經精確到了小數點後8位。如果繼續計算,精度還會提高。
不僅僅是三角函式,還有很多其他複雜函式也是利用級數計算的。