Упражнение по кодированию: смотреть маятник

В физике для маятника с длиной 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,6899.

import math 
L = float(input())
A = float(input())
for T in range (0,9):
print(L*math.cos(A*math.cos(T*math.sqrt(9.8/L))-L*math.cos(A)))

Я написал это, и я не могу понять, что я делаю не так?

вход:

53.1
0.8

мой вывод:

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

1 ответ

Решение

У вас есть брекет в неправильном месте, поменяйте

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

в

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

Это дало правильный вывод на моем компьютере

Изменить: также изменить range(0,9) в range(10)

Другие вопросы по тегам