Упругий удар: сохранение импульса и энергии

Упругий удар — единственный, где сохраняется и импульс, и кинетическая энергия одновременно.

Упругий удар — столкновение, при котором суммарная кинетическая энергия сохраняется (тела не деформируются и не нагреваются).

Два закона задают всё

При лобовом упругом ударе двух тел массами $m_1, m_2$ со скоростями $u_1, u_2$ выполняются оба закона сохранения — импульса и энергии:

$$m_1 u_1 + m_2 u_2 = m_1 v_1 + m_2 v_2,$$

$$\frac{m_1 u_1^2}{2} + \frac{m_2 u_2^2}{2} = \frac{m_1 v_1^2}{2} + \frac{m_2 v_2^2}{2}.$$

Два уравнения, две неизвестные ($v_1, v_2$) — система решается. Результат — компактные формулы:

$$v_1 = \frac{(m_1 - m_2)u_1 + 2 m_2 u_2}{m_1 + m_2}, \qquad v_2 = \frac{(m_2 - m_1)u_2 + 2 m_1 u_1}{m_1 + m_2}.$$

Считаем и проверяем

Тело $m_1 = 2$ кг летит со скоростью $u_1 = 3$ м/с навстречу телу $m_2 = 1$ кг, движущемуся со $u_2 = -1$ м/с. Найдём скорости после удара и проверим оба закона сохранения прямо в коде.

m1, m2 = 2.0, 1.0
u1, u2 = 3.0, -1.0
v1 = ((m1 - m2)*u1 + 2*m2*u2) / (m1 + m2)
v2 = ((m2 - m1)*u2 + 2*m1*u1) / (m1 + m2)
print(f"после удара: v1={v1:.4f}  v2={v2:.4f}")
p_before = m1*u1 + m2*u2
p_after  = m1*v1 + m2*v2
E_before = 0.5*m1*u1**2 + 0.5*m2*u2**2
E_after  = 0.5*m1*v1**2 + 0.5*m2*v2**2
print(f"импульс: до={p_before:.4f}  после={p_after:.4f}")
print(f"энергия: до={E_before:.4f}  после={E_after:.4f}")

Вывод:

после удара: v1=0.3333  v2=4.3333
импульс: до=5.0000  после=5.0000
энергия: до=9.5000  после=9.5000

Оба закона выполнены: импульс остался $5.0$, энергия — $9.5$. Лёгкое тело $m_2$ отскочило вперёд с большой скоростью ($4.33$ м/с), а тяжёлое $m_1$ почти остановилось — типичная картина, когда лёгкое отлетает от тяжёлого. Эти формулы — основа бильярда, аркадных шариков и любой честной физики мячей.

Предельные случаи

  • Равные массы ($m_1 = m_2$): тела обмениваются скоростями. Бьющий шар останавливается, цель уезжает — фокус бильярда.
  • Лёгкое в тяжёлую стену ($m_2 \gg m_1$): лёгкое отскакивает почти зеркально ($v_1 \approx -u_1$), тяжёлое почти не двигается. Это предел «отражения от стены» из раздела про векторы.
  • Тяжёлое в лёгкое ($m_1 \gg m_2$): тяжёлое почти не замечает удара, лёгкое улетает со скоростью $\approx 2u_1$.

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

В 2D упругий удар шаров сводится к 1D вдоль линии центров. Алгоритм такой: находим единичный вектор от центра к центру (нормаль контакта), проецируем на него скорости обоих тел, применяем одномерные формулы к этим проекциям, а касательные составляющие оставляем нетронутыми, затем собираем скорости обратно. Касательная компонента не меняется именно потому, что при гладком ударе сила действует только вдоль нормали. Так одномерные формулы из этого урока становятся ядром полноценного 2D-движка шаров.

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

  • Применять формулы, не спроецировав на нормаль. В 2D «сырые» $v_x, v_y$ подставлять нельзя — сначала проекция на линию центров.
  • Забывать знак скорости. Встречное движение — это разные знаки; ошибка в знаке ломает баланс.
  • Ждать сохранения энергии в неупругом ударе. Формулы этого урока — только для упругого случая.

Итог

  • Упругий удар сохраняет и импульс, и кинетическую энергию.
  • Скорости после удара даются формулами через массы и начальные скорости.
  • Равные массы обмениваются скоростями; лёгкое от тяжёлого отскакивает почти зеркально.
  • В 2D удар сводят к 1D вдоль нормали контакта, касательную не трогают.
Проверьте себя
1. Что сохраняется при упругом ударе помимо импульса?
AНичего
BКинетическая энергия
CМасса каждого тела меняется
DТолько скорость тяжёлого тела
2. Что происходит при упругом ударе двух тел РАВНОЙ массы (одно покоится)?
AСлипаются
BОбмениваются скоростями: бьющее останавливается, цель уезжает
CОба останавливаются
DОба летят вперёд с одинаковой скоростью
3. Как обрабатывают упругий удар шаров в 2D?
AПодставляют vx, vy прямо в формулы
BПроецируют скорости на линию центров (нормаль), применяют 1D-формулы, касательную не трогают
CИспользуют только импульс
DМеняют местами координаты