2013-03-27 36 views
2

我已提出以下問題(這是一個絮叨):的Python - 擺錘式

在物理學上,用於與長度L和初始角A鐘擺,其水平位移X(T)在時間T由公式給出

X(T) = L × cos(A × cos(T × √9.8/L)) - L × cos(A) 

編寫一個程序,它需要兩行輸入;第一行是L,第二行是A.輸出應該是十行,給出值X(0)X(1)X(2),...,X(9)。例如,如果第一行輸入爲53.1,第二行輸入爲0.8,則第一行輸出爲0.0,第二行輸出爲53.1*cos(0.8*cos(1*√9.8/53.1)) - 53.1*cos(0.8) ~ 2.6689

我寫了下面的代碼在回答這個問題:

from math import sqrt 
from math import cos 
L = float(input()) 
A = float(input()) 

def X(T): 
    print(L*cos(A*cos(T*sqrt(9.8/L))-L*cos(A))) 

for n in range(0, 9): 
    X(n) 

...但我的答案滾滾而來錯了。我可能在某處丟失了一些括號,但我看不到在哪裏。

輸出我得到:

3.545012155898153 
7.383727226708044 
17.92714440725987 
31.889478979714276 
44.23118522394127 
51.212404291669216 
53.079364553814806 
52.890770379027806 
52.999922313121566 

輸出我應該得到:

0.0 
2.6689070487226805 
9.021742145820763 
14.794542557581206 
15.73774678328343 
11.124903835610114 
4.423693604072537 
0.27377375601245213 
1.295906539090336 
6.863309996333497 
+0

你會得到什麼答案,你期待什麼答案? – 2013-03-27 17:16:51

+0

請記住,您也可以隨時編輯問題。所以這些輸出可能已經添加到您的原始文章的正文中。 – 2013-03-27 17:22:59

回答

1

你說得不錯,你有放錯地方的括號內。下面將解決這個問題:第一餘弦後

print(L*cos(A*cos(T*sqrt(9.8/L)))-L*cos(A)) 
           ^added ^removed 
+0

非常感謝,並感謝提交的其他人。 – user2080719 2013-03-27 17:29:40

2

你缺少括號

L * cos(
    A * cos(
    T* sqrt(9.8/L) 
) 
) - L * cos(A) 

應該

L*cos(A*cos(T*sqrt(9.8/L)))-L*cos(A) 
1

物理公式看起來像第一個COS應該早點結束。所以在最後一個支架應該更前:

print(L * cos(A * cos(T * sqrt(9.8/L))) - L * cos(A)) 

更清楚一點:

firstCos = cos(A * cos(T * sqrt(9.8/L))) 
print(L * firstCos - L * cos(A))