2013-03-27 2 views
2

Я был поставлен следующий вопрос (это немного многословно):Python - формула маятникового

В физике, для маятника с длиной L и начальный угол А, его горизонтальное смещение Х (Т) в момент времени 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

Какие ответы вы получите, и какие ответы вы ожидаете? –

+0

Помните, что вы всегда можете отредактировать вопрос. Таким образом, эти результаты могли быть добавлены в тело вашего оригинального сообщения. –

ответ

1

Вы совершенно правы, у вас есть неуместны круглые скобки. Далее будет исправить:

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

Большое спасибо и всем, кто подал заявку. – user2080719

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

физическая формула выглядит как первый соз должен закончиться раньше. Таким образом, один кронштейн в конце должен идти дальше фронт:

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)) 
Смежные вопросы