Циклы · 18 из 26
Пружина, которая успокаивается
На штативе в кружке висит грузик на пружине. Его оттягивают и отпускают — и он качается, с каждым разом слабее: мешает воздух. Аркадий Семёнович предлагает не мучить штатив, а посчитать качания шагами: каждый шаг пружина тянет к середине, трение тормозит.
Что сделать
Посчитайте качания грузика на пружине шагами — так, как предлагает Аркадий Семёнович.
Что приходит
x0— насколько грузик оттянули в начале; скорость в начале — нольk— жёсткость пружиныc— трениеdt— шаг времениn— сколько шагов
Что вернуть
Список из n отклонений — после каждого шага по порядку; начальное x0 в него не входит.
Допишите функцию pruzhina в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
На каждом шаге: ускорение a = −k · x − c · v, потом скорость v += a · dt, потом отклонение x += v · dt — уже новой скоростью. При x0 = 1, k = 4, без трения, шаг 0,1: a = −4, v = −0,4, x = 1 − 0,04 = 0,96. Первое число ответа — 0.96.
pruzhina(1.0, 4.0, 0.0, 0.1, 3)
[0.96, 0.8815999999999999, 0.767936]
Функция принимает начальное отклонение x0, жёсткость k, трение c, шаг времени dt и число шагов n. В начале скорость равна нулю. На каждом шаге:
- ускорение a = −k · x − c · v;
- скорость: v += a · dt;
- отклонение: x += v · dt — уже новой скоростью.
Возвращает список из n отклонений — после каждого шага по порядку. Начальное x0 в список не входит. При n = 0 — пустой список.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.