[英]Series Expansion of cos with Python
所以,我試圖找到cos(x)
的值,其中x=1.2
。 我覺得我寫的劇本應該沒問題,但是,我得到的價值是不正確的。 那是; cos(1.2)=0.6988057880877979
25
術語,當我應該離開時: cos(1.2)=0.36235775
。
我已經創建了一個計算sin(1.2)
的類似程序,它運行正常。
計算sin(1.2)
:
import math as m
x=1.2
k=1
N=25
s=x
sign=1.0
while k<N:
sign=-sign
k=k+2
term=sign*x**k/m.factorial(k)
s=s+term
print('sin(%g) = %g (approximation with %d terms)' % (x,s,N))
現在嘗試計算cos(1.2)
:
import math as m
x=1.2
k=1
N=25
s=x
sign=1.0
while k<N:
sign=-sign
k=k+1
term=sign*x**k/m.factorial(k)
s=s+term
print(s)
我認為你使用了錯誤的余弦系列, 正確的公式將是(我強調了與^
的重要區別):
sum_over_n [(-1)**n * x ** (2 * n) / (math.factorial(2 * n))]
# ^^^^ ^^^^
這意味着添加n
-terms你有類似的東西:
def cosine_by_series(x, terms):
cos = 0
for n in range(terms):
cos += ((-1)**n) * (x ** (2*n)) / (math.factorial(2 * n))
return cos
# or simply:
# return sum(((-1)**n) * (x ** (2*n)) / (math.factorial(2 * n)) for n in range(terms)
這使:
>>> cosine_by_series(1.2, 30)
0.3623577544766735
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.