用python實現冪級數求三角函式sin的近似值
阿新 • • 發佈:2021-11-11
用python實現冪級數求三角函式sin的近似值
題目要求
- 從鍵盤輸入x,利用冪級數展開計算sin x的近似值(保留6位小數),要求誤差小於10-6。(提示:當累加項的絕對值小於10-6時,就可以停止累加)
- 測試用例 輸入:1.5 輸出:0.997495
解題思路
- 通過圖示可以將每次累加的數值分為上下兩部分(up和low),這樣兩部分獨立迴圈,互不影響。之後將兩部分結合,並加上符號的改變,累加到答案上,就可以得到答案
- 程式碼塊中的ys是累加數的約束,即十的六次方
- flag是迴圈體的判斷條件,初始條件下,flag的值是True,當累加數小於ys後,將flag改變為False。一次控制迴圈體的開始和停止
- n是up部分和low部分的公用變數。在up部分代表x的指數,在low部分代表級數大小
- JJ是符號位的迴圈變數,用來控制符號位是負還是正
- 在迴圈塊中,先用for迴圈計算出級數的大小,即low部分,之後算出up部分的大小(前半部分是符號位,後半部分是數值大小),相除就得到了kk,也就是累加數。然後開始判斷,這裡呼叫了python庫中的abs方法(求絕對值)
- 最後的最後就是列印答案
程式碼塊
x = float(input()) ys = 10 ** -6 flag = True sin_x = 0 n = int(1) jj = 2 while flag: low = 1 for i in range(1, n+1): low = low * i up = pow(-1,jj) * pow(x,n) n = n + 2 jj = jj + 1 kk = up / low if abs(kk) < 10 ** -6: flag = False break sin_x = sin_x+kk print(str(round(sin_x, 6)))