Чотири числа, одна непередбачувана крива
Одинокий маятник — один із найстабільніших систем у фізиці — регулярний, періодичний, розв’язуваний вручну. Прикріпіть до кінця першого маятника другий, і система стає одним із найпростіших способів генерувати справжній хаос. Два безмасові стійки довжиною l₁ та l₂ несуть кульки маси m₁ та m₂, перший стібок обертається від фіксної точки, другий — від кінця першого. Повна стан системи в будь-який момент часу захоплюється лише чотирма числами — двома кутами від вертикалі та їхніми двома кутовими швидкостями, (θ₁, θ₂, ω₁, ω₂) — точкою, що рухається через чотиривимірний фазовий простір. Про фізиці нічого випадкового. І все ж, після приблизно 20° початкового відхилення, жодна кількість обчислювальної потужності не дозволяє передбачити, де буде маятник через десять секунд.
Виведення руху з використанням Лагранжа, а не Ньютона
Застосування прямого другого закону Ньютона для цієї системи означає відстеження напруги в обох стілках як невідомих – вирішувано, але нудно. Підхід Лагранжа повністю цього уникає: виразити кінетичну енергію (T) та потенційну енергію (U) через зведені координати θ₁ та θ₂, скласти L = T − U, і напруга в стійках автоматично скасовується, оскільки вона не виконує роботи вздовж обраних вами координат.
Позиції: x1 = l1 sinθ1 y1 = -l1 cosθ1 x2 = x1 + l2 sinθ2 y2 = y1 - l2 cosθ2 Лагранжіан L = T - U: T = ½(m1+m2) l1² ω1² + ½ m2 l2² ω2² + m2 l1 l2 ω1 ω2 cos(θ1-θ2) U = -(m1+m2) g l1 cosθ1 - m2 g l2 cosθ2 Застосувати рівняння Ейлера-Лагранжа: d/dt(∂L/∂ωi) - ∂L/∂θi = 0 → розв’язати отриману 2x2 лінійну систему для α1 = dω1/dt, α2 = dω2/dt Вирішення алгебраїчної задачі (використовуючи Δθ = θ₁ − θ₂ для зручності) дає два закопчені вирази для кутових прискорень, які залежать від обох кутів та обох кутових швидкостей одночасно – неможливо розв’язати α₁ без знання ω₂, і навпаки. Ця взаємозв'язність є коренем всього, що слідує: це означає, що чотири змінні стану не можна незалежно просувати вперед, і це саме те ненасичення лінійності, яке призводить до невдачі простих числових скорочень.
Positions: x1 = l1 sinθ1 y1 = -l1 cosθ1 x2 = x1 + l2 sinθ2 y2 = y1 - l2 cosθ2 Lagrangian L = T - U: T = ½(m1+m2) l1² ω1² + ½ m2 l2² ω2² + m2 l1 l2 ω1 ω2 cos(θ1-θ2) U = -(m1+m2) g l1 cosθ1 - m2 g l2 cosθ2 Apply Euler-Lagrange: d/dt(∂L/∂ωi) - ∂L/∂θi = 0 → solve the resulting 2x2 linear system for α1 = dω1/dt, α2 = dω2/dt
Чому RK4 а не Leapfrog
Інтеграція RK4 є основою для гравітації та пружин, оскільки вона чітко розділяється на положеннявий і швидкісний півкрок, зберігаючи чисельну стабільність навіть при великій кількості кроків. Це працює так добре, тому що системи, як правило, залежать від положення, а не від швидкості. Прискорення подвійного маятника є нелінійною функцією кута та кутової швидкості одночасно, що порушує цей чіткий розрив. RK4 вирішує це, розглядаючи весь чотирикомпонентний вектор стану S = [θ₁, θ₂, ω₁, ω₂] як єдину об'єкт і обчислюючи функцію похідної чотири рази на крок — на початку, двічі в середині з пробними оновленнями та один раз у прогнозованому кінцевому пункті — а потім поєднуючи чотири оцінки в зважене середнє значення, яке є точним до четвертого порядку відносно кроку часу.
function deriv([θ1, θ2, ω1, ω2]) {
// ... compute α1, α2 from the Lagrangian equations above ...
return [ω1, ω2, α1, α2]; // dS/dt as a 4-vector
}
function rk4Step(state, dt) {
const k1 = deriv(state);
const k2 = deriv(add(state, scale(k1, dt/2)));
const k3 = deriv(add(state, scale(k2, dt/2)));
const k4 = deriv(add(state, scale(k3, dt)));
return add(state, scale(add(k1, add(scale(k2,2), add(scale(k3,2), k4))), dt/6));
}
// 4 substeps of dt/4 per animation frame gives 16 deriv() calls/frame —
// enough precision to trust the trajectory through the regular regime.
Вимірювання хаосу: показник Лапланса
У цьому контексті хаос означає щось конкретне: детермінована непередбачуваність, яка кількісно визначається показником Лапланса λ. Візьміть дві траєкторії, які починаються на відстані δS(0) майже рівновідно в фазовому просторі, і відстежуйте, як ця відстань δS(t) збільшується:
λ = lim(t→∞) (1/t) · ln( |δS(t)| / |δS(0)| ) λ > 0 → траєкторії розходяться експоненціально — хаотичні λ ≈ 0 → траєкторії залишаються близькими — регулярні/ quasi-періодичні Для великих початкових відхилень: λ ≈ 3-7 с⁻¹ Різниця в кутах θ = 0,001° зростає до майже повного розбіжності (~57°) приблизно за час ln(57.3/0.001) / λ ≈ 1-3 секунди. Це число дає три якісні режими, які ви спостерігаєте, коли трохи змінюєте початковий кут. Нижче приблизно 15° дві підвіси поводяться як пара слабко зв’язаних гармонічних осциляторів — quasi-періодично, ефективно λ ≈ 0. Між приблизно 15° і 60° рух є переривчастим хаосом, чергуючи між ділянками регулярного руху та раптовими спалахами нерегулярного руху. Понад 60° система повністю хаотична, а верхня підвіша регулярно перевертається навколо своєї осі повороту — і коли θ₂ проходить через π (прямо вгору, нестабільна рівновага), то наступне положення, куди вона впаде, неможливо передбачити більш ніж на 1-2 секунди з будь-якою реальною точностю вимірювання.
λ = lim(t→∞) (1/t) · ln( |δS(t)| / |δS(0)| ) λ > 0 → trajectories diverge exponentially — chaotic λ ≈ 0 → trajectories stay close — regular / quasi-periodic For large initial deflections: λ ≈ 3-7 s⁻¹ A difference of θ = 0.001° grows to a total mismatch (~57°) in roughly ln(57.3/0.001) / λ ≈ 1-3 seconds.
Розгляд чотирьох вимірів: Пойоркінські перерізи
Ніхто не може безпосередньо уявити собі траєкторію в чотирьох вимірах, тому дослідники хаосу використовують пойнкоркінський переріз: зробити знімок (θ₁, ω₁) кожного разу, коли траєкторія перетинає фіксовану умову – тут, кожен раз, коли θ₂ проходить через нуль, піднімаючись вгору. Побудуйте тисячі таких знімків і структура фазового простору стане очевидною на одному погляді. Регулярний рух створює точки, які падають на замкнуті криві, названі незмінними торами, оскільки основна динаміка насправді обмежена нижчою поверхнею. Хаотичний рух замість цього розсіює точки по розсіяному «хаотичному морі», іноді з невеликими замкнутими островами залишеного регулярного руху, все ще вбудованими всередині нього – пряма візуальна сигнатура переходу від порядку до хаосу, яку ніколи б не виявив графік часових рядів сам по собі.
Часті запитання
Чи справді подвійна маятникова система непередбачувана, чи це просто складно обчислювати?
Це детермінована система — той самий початковий стан завжди виробляє однакову траєкторію в принципі — але практично непередбачувана через наявність позитивного показника Лапласа. Будь-яка незначна відмінність у початковому куті, навіть значно менша за те, що ви могли б виміряти, експоненційно зростає, тому жодне кінцеве представлення з плаваючою комою або будь-яке вимірювання не може передбачити її стан наперед на кілька секунд.
Чому використовувати RK4 замість простішого інтегратора, такого як Euler або Leapfrog?
Кутову прискорення подвійної маятникової системи залежить нелінійно від кута та кутової швидкості одночасно, що порушує розділення положення/швидкості, яке робить Leapfrog дешевим і стабільним. Метод Euler надмірно накопичує похибки на будь-якій розумній частоті кадрів. RK4 оцінює похідну чотири рази за крок для досягнення четвертої порядку точності, що достатньо для довіри до симуляції через звичайний режим системи та до моменту, коли хаос справді бере над собою контроль.
Що показує Пойкаре розріз?
Це 2D знімок 4D фазового простору, що відображає (theta1, omega1) кожного разу, коли друга маятникова система проходить через вертикаль вгору. Регулярний рух відзначається закритими кривими (незмінними торами); хаотичний рух розкидає точки по розсіяній області, що називається хаотичним морем, іноді з невеликими закритими «островами» регулярного руху, вбудованими всередині нього.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте the simulation і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію the simulation