Стаття Хаос та Динаміка · ≈ 7 хв читання

Атрактор Лоренца

У 1963 році метеоролог Едвард Лоренц спрощував модель конвекції атмосфери — і виявив щось несподіване: три звичайних диференціальних рівняння породжують траєкторію, яка ніколи не повторюється і нескінченно чутлива до початкових умов.

1. Походження: атмосфера та метелик

1961 рік. Едвард Лоренц у MIT намагався повторити результати попереднього погодного прогнозу на комп'ютері. Замість того, щоб ввести початкові умови з шести десяткових знаків, він скоротив до трьох. Через кілька «модельних місяців» прогноз кардинально відрізнявся від оригінального.

Лоренц зрозумів: нескінченно мала зміна початкових умов (0.000127) наростає експоненціально і повністю змінює поведінку системи. Це означало, що довгостроковий прогноз погоди принципово неможливий — незалежно від точності вимірів.

«Ефект метелика»

Назву придумав сам Лоренц у 1972 році у доповіді «Чи може змах крил метелика у Бразилії спричинити торнадо в Техасі?». Це метафора, а не фізичне явище: будь-яке малесеньке збурення — шелест листа, рух молекули — теоретично впливає на майбутній стан хаотичної системи.

Спрощена система, яку Лоренц опублікував у 1963 році, описує двовимірну теплову конвекцію рідини між двома горизонтальними пластинами.

2. Система рівнянь Лоренца

Система складається з трьох зчеплених звичайних диференціальних рівнянь (ЗДР):

Система Лоренца dx/dt = σ (y − x)
dy/dt = x (ρ − z) − y
dz/dt = x y − β z

Де:

  • x — швидкість конвективного обертання
  • y — різниця температур між висхідним і низхідним потоками
  • z — відхилення вертикального температурного профілю від лінійного
  • σ, ρ, β — параметри (число Прандтля, число Релея, геометричний коефіцієнт)

Ці рівняння нелінійні через члени x·(ρ−z) і x·y. Саме нелінійність і є джерелом хаосу.

3. Параметри: σ, ρ, β

ПараметрКласичне значенняФізичний зміст
σ (сигма)10Число Прандтля — відношення кінематичної в'язкості до теплопровідності
ρ (ро)28Нормоване число Релея — інтенсивність конвекції
β (бета)8/3 ≈ 2.667Геометричний параметр конвективної комірки

При класичних значеннях (σ=10, ρ=28, β=8/3) система демонструє хаотичний атрактор. Зміна параметрів веде до різних режимів:

  • ρ < 1 — єдина стійка рівновага (стан спокою)
  • 1 < ρ < 24.74 — дві стійкі точки рівноваги (конвективні комірки)
  • ρ > 24.74 — хаотична поведінка, атрактор Лоренца

4. Що таке атрактор?

Атрактор — множина станів у фазовому просторі, до яких наближається система при t → ∞, незалежно від початкових умов (у деякій околиці). Класичні атрактори: точка (стійка рівновага), замкнена крива (стійкий цикл), тор (квазіперіодичний режим).

Дивний атрактор Лоренца — це щось принципово інше: фрактальна множина з дробовою розмірністю Хаусдорфа ≈ 2.06. Траєкторія нескінченно довго лежить на атракторі, але ніколи не перетинає ту саму точку двічі. Це детермінований хаос — система строго причинно-наслідкова, але непередбачувана.

Форма атрактора нагадує двовоку маску або метелика: траєкторія «кружляє» навколо одного ока, потім спонтанно переходить до іншого — і цей момент переходу непередбачуваний.

Фрактальна розмірність

Звичайні криві мають розмірність 1, поверхні — 2, об'єми — 3. Атрактор Лоренца займає «2.06 вимірів» — він товстіший за поверхню, але тонший за будь-який об'єм. Це й є фрактал: нескінченно складна деталізована структура у будь-якому масштабі.

5. Чутливість до початкових умов

Хаотичні системи характеризуються позитивним показником Ляпунова (λ > 0). Він вимірює середню швидкість розходження двох близьких траєкторій:

|δZ(t)| ≈ |δZ(0)| · e^(λt)

Для атрактора Лоренца найбільший показник Ляпунова λ₁ ≈ 0.906. Це означає: якщо дві траєкторії починаються з відстанню ε, через час t = 1/λ ≈ 1.1 (у «модельних секундах») відстань між ними збільшується в e ≈ 2.7 разів.

Практичний висновок: щоб подвоїти горизонт прогнозу, потрібно підвищити точність вимірювань початкових умов у e раз. Для прогнозу погоди на 10 днів замість 5 — точність має зрости у ~10⁷ разів.

6. Числова інтеграція (RK4)

Систему Лоренца інтегрують чисельно. Простий метод Ейлера (x += dx * dt) нестабільний для малих кроків і дає хибні результати. Стандарт — метод Рунге-Кутта 4-го порядку (RK4):

Метод RK4 (один крок) k₁ = f(t, y)
k₂ = f(t+dt/2, y + k₁·dt/2)
k₃ = f(t+dt/2, y + k₂·dt/2)
k₄ = f(t+dt, y + k₃·dt)

y(t+dt) = y(t) + (k₁ + 2k₂ + 2k₃ + k₄) · dt/6

RK4 має точність O(dt⁵) на крок (O(dt⁴) глобально), що достатньо при dt = 0.005–0.01 для атрактора Лоренца.

7. Псевдокод

// Параметри системи
const σ = 10, ρ = 28, β = 8/3
const dt = 0.005

// Похідні системи Лоренца
function lorenz(x, y, z):
  dx = σ * (y - x)
  dy = x * (ρ - z) - y
  dz = x * y - β * z
  return [dx, dy, dz]

// Один крок RK4
function stepRK4(x, y, z, dt):
  [k1x, k1y, k1z] = lorenz(x, y, z)
  [k2x, k2y, k2z] = lorenz(x + k1x*dt/2,
                              y + k1y*dt/2,
                              z + k1z*dt/2)
  [k3x, k3y, k3z] = lorenz(x + k2x*dt/2,
                              y + k2y*dt/2,
                              z + k2z*dt/2)
  [k4x, k4y, k4z] = lorenz(x + k3x*dt,
                              y + k3y*dt,
                              z + k3z*dt)
  nx = x + (k1x + 2*k2x + 2*k3x + k4x) * dt/6
  ny = y + (k1y + 2*k2y + 2*k3y + k4y) * dt/6
  nz = z + (k1z + 2*k2z + 2*k3z + k4z) * dt/6
  return [nx, ny, nz]

// Головний цикл: зберігаємо траєкторію
[x, y, z] = [0.1, 0, 0]  // початкові умови
trail = []

loop (кожен кадр):
  for step = 1 to STEPS_PER_FRAME:
    [x, y, z] = stepRK4(x, y, z, dt)
    trail.push([x, y, z])
    if trail.length > MAX_TRAIL: trail.shift()

  renderTrail(trail)  // WebGL line strip

🌀 Запустити симуляцію

Інтерактивна WebGL-візуалізація атрактора Лоренца. Змінюйте параметри σ, ρ, β і спостерігайте, як система переходить між хаосом і порядком.

Відкрити симуляцію →