Атрактор Лоренца
У 1963 році метеоролог Едвард Лоренц спрощував модель конвекції атмосфери — і виявив щось несподіване: три звичайних диференціальних рівняння породжують траєкторію, яка ніколи не повторюється і нескінченно чутлива до початкових умов.
1. Походження: атмосфера та метелик
1961 рік. Едвард Лоренц у MIT намагався повторити результати попереднього погодного прогнозу на комп'ютері. Замість того, щоб ввести початкові умови з шести десяткових знаків, він скоротив до трьох. Через кілька «модельних місяців» прогноз кардинально відрізнявся від оригінального.
Лоренц зрозумів: нескінченно мала зміна початкових умов (0.000127) наростає експоненціально і повністю змінює поведінку системи. Це означало, що довгостроковий прогноз погоди принципово неможливий — незалежно від точності вимірів.
Назву придумав сам Лоренц у 1972 році у доповіді «Чи може змах крил метелика у Бразилії спричинити торнадо в Техасі?». Це метафора, а не фізичне явище: будь-яке малесеньке збурення — шелест листа, рух молекули — теоретично впливає на майбутній стан хаотичної системи.
Спрощена система, яку Лоренц опублікував у 1963 році, описує двовимірну теплову конвекцію рідини між двома горизонтальними пластинами.
2. Система рівнянь Лоренца
Система складається з трьох зчеплених звичайних диференціальних рівнянь (ЗДР):
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). Він вимірює середню швидкість розходження двох близьких траєкторій:
Для атрактора Лоренца найбільший показник Ляпунова λ₁ ≈ 0.906. Це означає: якщо дві траєкторії починаються з відстанню ε, через час t = 1/λ ≈ 1.1 (у «модельних секундах») відстань між ними збільшується в e ≈ 2.7 разів.
Практичний висновок: щоб подвоїти горизонт прогнозу, потрібно підвищити точність вимірювань початкових умов у e раз. Для прогнозу погоди на 10 днів замість 5 — точність має зрости у ~10⁷ разів.
6. Числова інтеграція (RK4)
Систему Лоренца інтегрують чисельно. Простий метод Ейлера (x += dx * dt) нестабільний для малих кроків і дає хибні результати. Стандарт — метод Рунге-Кутта 4-го порядку (RK4):
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-візуалізація атрактора Лоренца. Змінюйте параметри σ, ρ, β і спостерігайте, як система переходить між хаосом і порядком.
Відкрити симуляцію →