1. 程式人生 > 其它 >用python實現冪級數求三角函式sin的近似值

用python實現冪級數求三角函式sin的近似值

用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)))