Strona głównaArtykułyTeoria Chaosu

Podwójny Wahacz – Chaos i Wrażliwość na Stan Początkowy

Dodanie drugiego pręta zamocowanego na końcu pierwszego wystarcza, aby przekształcić deterministyczny ruch w prawdziwą nieprzewidywalność.

mysimulator teamZaktualizowano — czerwiec 2026≈ 11 min czytania▶ Otwórz symulację

Cztery liczby, jedna nieprzewidywalna krzywa

Poszczególny wahadło jest jednym z najbardziej przewidywalnych systemów w fizyce – regularnym, periodicznym i rozwiązywalnym ręcznie. Dołącz do pierwszego wahadła drugie wahadło na końcu, a system staje się jedną z najprostszych metod generowania prawdziwego chaosu. Dwa masywne liny o długościach l₁ i l₂ przenoszą kulki o masach m₁ i m₂; pierwszy łańcuch obrotowy opiera się w ustalonym punkcie, a drugi obrotowy opiera się na końcu pierwszego. Stan całego systemu w dowolnym momencie jest uchwycony zaledwie czterema liczbami – dwoma kątami względem pionu oraz ich dwoma prędkościami kątowymi, (θ₁, θ₂, ω₁, ω₂) – punkt poruszający się w czterowymiarowej przestrzeni faz. Żaden aspekt fizyki nie jest losowy. Mimo to, po około 20° początkowego wychylenia, żadna ilość mocy obliczeniowej nie pozwala przewidzieć, gdzie będzie wahadło za dziesięć sekund.

demo na żywo · powiązana symulacja● LIVE

Obliczanie ruchu z wykorzystaniem Lagrange'a, a nie Newtona

Bezpośrednie zapisywanie drugiego prawa Newtona dla tego układu oznacza śledzenie napędu w obu wahaczach jako niewiadomych – możliwe do rozwiązania, ale żmudne. Podejście Lagranża eliminuje to całkowicie: należy wyrazić energię kinetyczną T i energię potencjalną U za pomocą uogólnionych współrzędnych θ₁ i θ₂, sformułować L = T − U, a napędy wahaczy automatycznie znikają, ponieważ nie wykonują one pracy wzdłuż wybranych współrzędnych.

Pozycje: x1 = l1 sinθ1 y1 = -l1 cosθ1 x2 = x1 + l2 sinθ2 y2 = y1 - l2 cosθ2 Lagranżian 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 Zastosuj równania Eulera-Lagrange’a: d/dt(∂L/∂ωi) - ∂L/∂θi = 0 → rozwiązujemy wynikowy układ 2x2 liniowy dla α1 = dω1/dt, α2 = dω2/dt Rozwiązując algebraicznie (przyjęcie Δθ = θ₁ − θ₂ w celu zwięzłości) otrzymujemy dwa sprzężone wyrażenia na przyspieszenia kątowe, które zależą zarówno od kątów, jak i od obydwu prędkości kątowych jednocześnie – nie da się rozwiązać α₁ bez znajomości ω₂, a odwrotnie. To współzależność jest podstawą wszystkiego, co następuje: oznacza to, że cztery zmienne stanu nie mogą być poruszane niezależnie i jest to dokładnie rodzaj nieliniowości, która sprawia, że ​​proste skróty numeryczne zawodzą.

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

Dlaczego RK4 a nie Leapfrog

Integracja Leapfrog jest głównym narzędziem w przypadku sił grawitacyjnych i sprężyn, ponieważ pozwala ją łatwo podzielić na krok po położeniu i krok po prędkości, przy zachowaniu stabilności numerycznej dla bardzo dużych liczby kroków. Działa tak dobrze właśnie dlatego, że przyspieszenie tych systemów zwykle zależy tylko od położenia, a nie od prędkości. Przyspieszenie podwójnego wahacza jest funkcją nieliniową kąta i prędkości obrotowej jednocześnie, co zakłóca to czyste rozdzielenie. RK4 radzi sobie z tym, traktując cały wektor stanu składający się z czterech komponentów S = [θ₁, θ₂, ω₁, ω₂] jako całość i obliczając funkcję pochodnej cztery razy na krok – na początku, dwa razy w punkcie środkowym z próbnych aktualizacji i raz w prognozowanym punkcie końcowym — a następnie łącząc cztery szacunki w średnią ważoną, która jest dokładna do czwartego rzędu względem kroku czasowego.

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.

Pomiar chaos: wyznacznik Lyapunov

Chaos tu oznacza coś konkretnego: deterministyczna nieprzewidywalność, ilościowo określona przez wyznacznik Lyapunov λ. Weź dwa trajektorie rozpoczynające się w odległości δS(0) niemal zerowej w przestrzeni faz i śledź jak ta separacja δS(t) rośnie:

λ = lim(t→∞) (1/t) · ln( |δS(t)| / |δS(0)| ) λ > 0 → trajektorie rozbiegają się wykładniczo – chaotyczne λ ≈ 0 → trajektorie utrzymują blisko siebie – regularne / quasi-peryodyczne Przy dużych początkowych wychyleniach: λ ≈ 3-7 s⁻¹ Różnica w θ = 0,001° rośnie do całkowitego rozbieżnego stanu (~57°) w około ln(57,3/0,001) / λ ≈ 1-3 sekundy. To liczba daje trzy jakościowe stany, które faktycznie obserwuje się, gdy delikatnie poruszamy kątem początkowym. Poniżej około 15° oba wahadła zachowują się jak para słabo sprzężonych oscylatorów harmonicznych – quasi-peryodyczne, efektywnie λ ≈ 0. Między w przybliżeniu 15° a 60° ruch jest przejściowym chaosem, przechodzącym między okresami regularnie wyglądającego wahadlania i nagłymi wybuchami chaotycznego ruchu. Po przekroczeniu 60° układ jest całkowicie chaotyczny, a górne wahadlo rutynowo przewraca się wokół własnej osi obrotu – a gdy θ₂ przechodzi przez π (prosto w górę, niestabilny punkt równowagi), to jaki sposób spadnie następnym razem nie da się przewidzieć z dokładnością rzędu około jednego sekundy przy realistycznej precyzji pomiarowej.

λ = 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.

Obserwowanie czterech wymiarów: sekcje Poincaré'a

Nikt nie jest w stanie bezpośrednio wyobrazić sobie trajektorii cztero-wymiarowej, dlatego badacze chaosu wykorzystują sekcję Poincaré'a: tworzą się wtedy z niej zdjęcia (θ₁, ω₁) za każdym razem, gdy trajektoryą przechodzi przez stałe warunki – tutaj, za każdym razem, kiedy θ₂ przechodzi przez zero w górę. Narysuj tysiące takich zdjęć i struktura przestrzeni fazowej ujawnia się od razu. Regularne ruchy dają punkty, które opadają na zamkniętych krzywych, zwanych torami invariantnymi, ponieważ rzeczywisty ruch jest rzeczywiście ograniczony do powierzchni o niższej wymiarowości. Ruch chaotyczny zamiast tego rozrzuca punkty na rozproszym "morsie chaosu", czasami z małymi zamkniętymi wyspami regularnego ruchu wciąż zakorpowanymi w środku – to bezpośredni, wizualny znak przejścia od porządku do chaosu, którego nie dałoby się zauważyć jedynie na wykresie szeregu czasowego.

Frequently asked questions

Czy wahadło podwójne jest naprawdę nieprzewidywalne, czy też po prostu trudno je obliczyć?

Jest to system deterministyczny – przy tej samej początkowej konfiguracji zawsze generuje tę samą trajektorię w zasadzie – ale praktycznie nieprzewidywalny z powodu dodatniego współczynnika Lyapunov. Nawet najmniejsza różnica w kącie początkowym, nawet mniejsza niż moglibyśmy zmierzyć, rośnie wykładniczo, więc żadna symulacja o ogranicznej precyzji ani pomiar nie może przewidzieć jego stanu z dokładnością większą niż kilka sekund.

Dlaczego używamy metody RK4 zamiast prostszego integratora takiego jak Eulera lub Leapfroga?

Kątowe przyspieszenie wahadła podwójnego zależy nieliniowo zarówno od kąta, jak i prędkości kątowej naraz, co łamie podział położenia/prędkości, który sprawia, że Leapfrog jest tani i stabilny. Metoda Eulera zbyt szybko kumuluje błąd przy rozsądnej częstotliwości klatek. RK4 oblicza pochodną cztery razy na krok, aby uzyskać dokładność czwartego rzędu, co wystarcza do zaufania symulacji przez regularny obszar systemu i aż do momentu, w którym chaos naprawdę przechodzi.

Co pokazuje sekcja Poincaré'a?

Jest to 2D obraz 4D przestrzeni faz, przedstawiający (theta1, omega1) za każdym razem, gdy drugie wahadło przechodzi przez pionową oś w górę. Regularne ruchy rysują zamknięte krzywe (stałe tori), a chaotyczne ruchy rozrzucają punkty na rozproszonej strefie zwanej morzem chaotycznym, czasami z małymi zamkniętymi "wyspami" regularnego ruchu wbudowanymi w nią.

Wypróbuj na żywo

Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz the simulation i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.

▶ Otwórz symulację the simulation

Co znalazłeś?

Dodaj kroki odtworzenia (opcjonalnie)