Гармонический осциллятор

Колебания возникают всюду, где есть возвращающая сила, пропорциональная отклонению.

Гармонический осциллятор — система, движение которой описывается уравнением $\ddot x + \omega_0^2 x = 0$ с решением в виде синусоиды.

Маятник часов, рессора автомобиля, струна, атом в кристалле — все они колеблются по одному закону. Рассмотрим груз массой $m$ на пружине жёсткостью $c$. Возвращающая сила пропорциональна смещению (закон Гука): $F = -c x$. Подставляя в $m\ddot x = F$, получаем уравнение свободных колебаний:

$$\ddot x + \omega_0^2 x = 0, \qquad \omega_0 = \sqrt{\frac{c}{m}}.$$

Его решение — гармоническое колебание $x(t) = A\cos(\omega_0 t + \varphi)$ с амплитудой $A$, собственной частотой $\omega_0$ и фазой $\varphi$. Период колебаний $T = \frac{2\pi}{\omega_0} = 2\pi\sqrt{\frac{m}{c}}$ — он не зависит от амплитуды (изохронность).

Численное моделирование

Промоделируем колебания методом, сохраняющим энергию (полунеявный Эйлер), и сравним численный период с теоретическим $2\pi\sqrt{m/c}$.

import math

m = 1.0
c = 100.0       # Н/м
x = 0.05        # начальное отклонение, м
v = 0.0
dt = 0.0001

prev_x = x
t = 0.0
cross = []
while t < 2.0:
    a = -c * x / m
    v += a * dt          # полунеявный Эйлер
    x += v * dt
    # ловим переход через ноль вверх -> период
    if prev_x < 0 <= x:
        cross.append(t)
    prev_x = x
    t += dt

T_num = cross[1] - cross[0]
T_theory = 2 * math.pi * math.sqrt(m / c)
print(f"период численно = {T_num:.4f} с")
print(f"период теория   = {T_theory:.4f} с")

Вывод:

период численно = 0.6284 с
период теория   = 0.6283 с

Симуляция воспроизвела теоретический период с точностью до тысячных — дифференциальное уравнение и численная схема согласованы.

Резонанс и затухание

Реальные колебания всегда сложнее идеального осциллятора, и два эффекта особенно важны инженеру. Первый — затухание: трение и сопротивление среды постепенно гасят колебания, амплитуда убывает, энергия рассеивается в тепло. Чтобы колебания не затухали, систему «подкачивают» извне — так работают маятниковые часы с гирей. Второй, куда более грозный эффект — резонанс: если внешнюю силу прикладывать с частотой, близкой к собственной $\omega_0$, амплитуда нарастает катастрофически. Резонанс рушил мосты (знаменитый Такомский мост), заставляет дрожать здания при землетрясениях, но и приносит пользу — на нём основаны радиоприёмники, музыкальные инструменты, МРТ-томографы. Поэтому при проектировании любой конструкции, подверженной периодическим нагрузкам (мост под шагами толпы, лопатка турбины, корпус корабля на волне), инженер первым делом находит собственные частоты и следит, чтобы рабочие частоты от них отстраивались. Понимание гармонического осциллятора — ключ к предсказанию и резонанса, и затухания.

Энергия колебаний

В осцилляторе энергия непрерывно перетекает между кинетической и потенциальной формами: в крайних точках вся энергия потенциальна ($\frac{c A^2}{2}$), при прохождении положения равновесия — вся кинетическая ($\frac{m v_{\max}^2}{2}$). Полная энергия постоянна и равна $E = \frac{c A^2}{2}$. Это объясняет изохронность: больше амплитуда — больше и возвращающая сила, и путь, а период остаётся прежним.

Как работает под капотом

Почему решение — именно синус/косинус? Уравнение $\ddot x = -\omega_0^2 x$ требует функцию, вторая производная которой пропорциональна ей самой с минусом. Этим свойством обладают $\sin$ и $\cos$: $(\cos\omega_0 t)'' = -\omega_0^2\cos\omega_0 t$. Отсюда и берётся $\omega_0 = \sqrt{c/m}$ — подстановка даёт ровно этот коэффициент. Полунеявный Эйлер (сначала обновляем скорость, потом по новой скорости — координату) в коде неслучаен: обычный явный Эйлер для осциллятора «накачивает» энергию и амплитуда растёт, а полунеявный сохраняет энергию в среднем, поэтому период держится стабильным на больших временах. Это первый намёк на симплектические методы интегрирования.

Частые ошибки

  • Думать, что период зависит от амплитуды — для гармонического осциллятора нет (изохронность).
  • Путать частоту $\omega_0$ (рад/с) и период $T$ (с): $T = 2\pi/\omega_0$.
  • Использовать явный Эйлер и удивляться растущей амплитуде.
  • Забывать знак минус в возвращающей силе $F = -cx$ — без него не будет колебаний.

Итог

  • Уравнение свободных колебаний: $\ddot x + \omega_0^2 x = 0$, $\omega_0 = \sqrt{c/m}$.
  • Решение — гармоника $x = A\cos(\omega_0 t + \varphi)$; период $T = 2\pi\sqrt{m/c}$.
  • Период не зависит от амплитуды (изохронность).
  • Энергия перетекает между кинетической и потенциальной, сумма постоянна.
Проверьте себя
1. Чему равна собственная частота пружинного маятника?
A√(m/c)
B√(c/m)
Cc/m
D2π·c/m
2. Как период гармонических колебаний зависит от амплитуды?
AРастёт с амплитудой
BПадает с амплитудой
CНе зависит от амплитуды (изохронность)
DЗависит квадратично
3. Почему для моделирования осциллятора берут полунеявный Эйлер, а не явный?
AОн проще в коде
BЯвный Эйлер «накачивает» энергию, и амплитуда растёт нефизично
CПолунеявный быстрее
DМежду ними нет разницы