Medved Pro
Ученик
(104),
на голосовании
9 месяцев назад
Для симуляции движения математического маятника нужно найти модули вектора v1 и v2 от времени. Нам известен начальный угол и длинна маятника. Заранее спасибо!
Только перепроверьте расчет, потому как быстро делал, мог v1 и v2 перепутать.Это формула только для малых колебаний (приближенная), для точной модели решение только в численном виде можно получитью
Игорь Семененко написал все верно. Но раз речь о симуляции, то будет, как я понимаю, применяться компьютер. Раз так, то вы можете в принципе учесть и нелинейность задачи. Для этого можно разбить время "наблюдения" на равные промежутки величиной dt каждый. Задать начальный угол отклонения маятника и начальную угловую скорость: ф[0], w[0], Затем, если вы знаете угол и скорость на некотором шаге, то вы можете посчитать их значения для следующего шага (простейший численный метод): ф[j+1] = ф[j] + dt (w[j] - 0.5 q^2 sin(ф[j])), w[j+1] = w[j] - 0.5 dt q^2 (sin(ф[j]) + sin(ф[j] + w[j] dt)); где q - циклическая частота. Т. е. у вас не будет формулки, задающей угол и угловую скорость как функции времени. Компьютер будет просто пересчитывать их значения каждый раз при переходе на следующий шаг по времени. И на каждом шаге, зная угол и угловую скорость, вы можете получить значения и обычных декартовых скоростей: Vx[j] = L cos(ф[j]) w[j], Vy[j] = L sin(ф[j]) w[j], и координат (в данном случае я их отсчитываю от точки подвеса): X[j] = L sin(ф[j]), Y[j] = - L cos(ф[j]), где L - длина маятника. Все это дело будет неплохо работать, если шаг по времени будет достаточно мал (по сравнению с минимальным периодном колебаний). То есть нужно, чтобы: q dt << 1. Можете взять, например: dt = 0.01 / max(q), где max(q) - максимальная величина циклической частоты, которую вы собираетесь рассматривать. Тогда шаги по времени будут одинаковыми и фиксированными, и при этом все будет работать даже в наихудшем случае (при максимальной частоте).