Двойной маятник и хаос

Простая система с непредсказуемым поведением: чувствительность к начальным условиям.

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

Две связанные нелинейности

Двойной маятник — это маятник, на конце которого подвешен второй маятник. Всего две точки и две нити, но поведение поражает: движение выглядит беспорядочным, никогда не повторяется и крайне чувствительно к начальным условиям. При этом система полностью детерминирована — её уравнения точны и не содержат ни капли случайности. Это и есть хаос: предсказуемые правила, непредсказуемый результат.

Эксперимент: эффект бабочки

Запустим два двойных маятника, отличающихся начальным углом второго звена всего на 0.001 радиана (примерно 0.06°), и сравним их состояния через 10 секунд:

import math
g = 9.8
def step(s, dt):
    th1, w1, th2, w2 = s
    m1=m2=1.0; L1=L2=1.0
    d = th1-th2
    den = (2*m1+m2 - m2*math.cos(2*th1-2*th2))
    a1 = (-g*(2*m1+m2)*math.sin(th1) - m2*g*math.sin(th1-2*th2)
          - 2*math.sin(d)*m2*(w2*w2*L2 + w1*w1*L1*math.cos(d))) / (L1*den)
    a2 = (2*math.sin(d)*(w1*w1*L1*(m1+m2) + g*(m1+m2)*math.cos(th1)
          + w2*w2*L2*m2*math.cos(d))) / (L2*den)
    return (w1, a1, w2, a2)
def run(th2_0, T=10.0, dt=0.001):
    s = [math.pi/2, 0.0, th2_0, 0.0]
    for _ in range(int(T/dt)):
        k = step(s, dt)
        s = [s[i] + k[i]*dt for i in range(4)]
    return s[0], s[2]
a = run(math.pi/2)
b = run(math.pi/2 + 0.001)
print("Отличие начального угла θ2 всего на 0.001 рад:")
print(f"A: theta1={a[0]:+.3f}  theta2={a[1]:+.3f}")
print(f"B: theta1={b[0]:+.3f}  theta2={b[1]:+.3f}")
print(f"Расхождение за 10 c: d1={abs(a[0]-b[0]):.3f}, d2={abs(a[1]-b[1]):.3f} рад")
print("Крошечное различие выросло в макроскопическое — это ХАОС.")

Вывод:

Отличие начального угла θ2 всего на 0.001 рад:
A: theta1=-1.501  theta2=+1.723
B: theta1=-1.566  theta2=+0.734
Расхождение за 10 c: d1=0.066, d2=0.989 рад
Крошечное различие выросло в макроскопическое — это ХАОС.

Через 10 секунд маятники, стартовавшие почти одинаково, оказались в совершенно разных положениях: второе звено разошлось почти на радиан (около 57°). Различие в тысячную долю радиана выросло в сотни раз. Это и есть знаменитый эффект бабочки: мельчайшая причина даёт огромное следствие.

Показатель Ляпунова

Скорость, с которой расходятся близкие траектории, измеряют показателем Ляпунова λ: расстояние между ними растёт как e^(λt). Положительный λ — признак хаоса. Он задаёт горизонт предсказуемости: даже зная начальное состояние с точностью до 15 знаков, через время порядка 1/λ мы теряем всякую возможность предсказать поведение. Удвоение точности измерения отодвигает горизонт лишь чуть-чуть.

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

Хаос не противоречит детерминизму. Уравнения двойного маятника однозначны: одинаковый старт всегда даёт одинаковую траекторию. Проблема в чувствительности: реальные начальные данные всегда известны лишь приблизительно, а нелинейная система экспоненциально усиливает эту неопределённость. Поэтому погоду нельзя предсказать на месяц вперёд (атмосфера хаотична), хотя уравнения гидродинамики детерминированы. Хаос — фундаментальное свойство нелинейных систем, от маятника до климата и Солнечной системы на больших временах.

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

  • Считать, что хаос — это случайность. Хаотическая система детерминирована; «случайным» выглядит лишь результат из-за чувствительности.
  • Доверять одной хаотической траектории как точной. Численная ошибка тоже растёт как e^(λt); долгий прогноз бессмыслен.
  • Думать, что мельче шаг спасёт прогноз. Это лишь чуть отодвигает горизонт предсказуемости, но не отменяет хаос.

Итоги

  • Двойной маятник детерминирован, но хаотичен.
  • Ничтожные различия начальных условий растут экспоненциально (эффект бабочки).
  • Показатель Ляпунова λ задаёт горизонт предсказуемости ~1/λ.
  • Хаос объясняет, почему погоду и долгую динамику систем нельзя предсказать.
Проверьте себя
1. Что такое детерминированный хаос?
AПоведение со встроенной случайностью
BПредсказуемая по уравнениям система, где малые различия начальных условий растут экспоненциально
CОшибка в коде симуляции
DПолное отсутствие закономерностей
2. Что показывает положительный показатель Ляпунова?
AСистему без трения
BЭкспоненциальное расхождение близких траекторий — признак хаоса
CСохранение энергии
DЛинейность системы
3. Почему хаос не противоречит детерминизму?
AПотому что уравнения случайны
BУравнения однозначны, но реальные начальные данные известны лишь приближённо, а система усиливает неопределённость
CПотому что хаоса не существует
DПотому что энергия не сохраняется