Devlog #80 – Fala 60: Oscylator Duffinga, Nauka o sieciach & Dyfuzja Turinga

Fala 60 obejmuje trzy fundamentalne tematy z zakresu nauki nieliniowej i systemów złożonych — wymuszony oscylator Duffinga z portretami fazowymi i przekrojami Poincarégo w czasie rzeczywistym, trójmodelowy eksplorator nauki o sieciach z układem sił i histogramami rozkładu stopni, oraz model reakcji-dyfuzji Graya-Scotta generujący wzorce morfogenezy Turinga (plamy, paski, labirynty, koral). Biblioteka liczy teraz 556 symulacji.

Fala 60 — 3 dodane symulacje
556
Symulacji łącznie
3
Nowych w tej fali
60
Numer fali
80
Nr devlogu

Nowe symulacje

🌀

Oscylator Duffinga — Chaos poprzez portret fazowy i przekrój Poincarégo

Całkowanie RK4 równania ẍ + δẋ + αx + βx³ = γcos(ωt). Lewe płótno: portret fazowy (x, ẋ) z zanikającym śladem + kropki Poincarégo próbkowane co okres wymuszania. Prawe: szereg czasowy x(t). Pięć zestawów presetów sięga od czystego chaosu po tłumiony zanik.

🌐

Nauka o sieciach — Erdős–Rényi, Barabási–Albert, Watts–Strogatz

Wizualizacja grafu z układem sił obejmująca trzy fundamentalne modele sieci losowych. Detekcja składowych metodą BFS w czasie rzeczywistym, histogram rozkładu stopni, współczynnik klastrowania i frakcja gigantycznej składowej. Przeciągaj węzły, by eksplorować topologię.

🔬

Dyfuzja Turinga — Morfogeneza reakcji-dyfuzji Graya-Scotta

Model Graya-Scotta 256×256 na siatce periodycznej. Pięć presetów (plamy, paski, labirynt, koral, mitoza) eksploruje przestrzeń parametrów (F,k). Kliknij, by zasadzić zarodki. Cztery mapy kolorów; detekcja typu wzorca w czasie rzeczywistym.

🌀 Oscylator Duffinga — Klasyczny chaos z nieliniową sprężyną sześcienną

Równanie

George Duffing (1918) wprowadził jeden z pierwszych celowo badanych oscylatorów nieliniowych, by modelować usztywniające się sprężyny w maszynach. Wersja wymuszona ma postać:

ẍ + δẋ + αx + βx³ = γ cos(ωt)

Człon sześcienny βx³ jest kluczową nieliniowością: dla β > 0 (usztywnienie) efektywna sztywność rośnie z amplitudą; dla β < 0 maleje. Siła wymuszająca γcos(ωt) nieustannie wprowadza energię, którą rozprasza tłumienie δẋ. Gdy wymuszenie i tłumienie są zrównoważone w reżimie nieliniowym, może pojawić się ruch chaotyczny.

Portret fazowy i przekroje Poincarégo

Symulacja uruchamia integrator RK4 z Δt = 0,005 i renderuje jednocześnie dwie wizualizacje:

Reżimy presetów

Detektor reżimu

Wartości x z przekroju Poincarégo z ostatnich 100 przecięć są gromadzone. Wariancja tego bufora klasyfikuje ruch: wariancja > 0,05 → Chaotyczny; wariancja > 0,01 → Okres-2+; w przeciwnym razie Okresowy. Małe próbki czynią tę heurystykę niedoskonałą, ale stabilizuje się ona niezawodnie w ciągu kilkuset okresów.

🌐 Nauka o sieciach — Trzy modele struktury grafów

Dlaczego topologia sieci ma znaczenie

Struktura sieci — który węzeł łączy się z którym — determinuje, jak informacja, choroba, wpływ lub awaria rozprzestrzeniają się w niej. Trzy modele oddają zasadniczo różne reżimy strukturalne:

Układ z siłami

Pozycje węzłów są obliczane przez lekki algorytm w stylu Fruchtermana-Reingolda, działający w każdej klatce animacji: siła odpychająca ∝ 1/d² odpycha wszystkie pary węzłów; przyciąganie sprężyste ∝ (d − 60) przyciąga połączone węzły do siebie; słaba grawitacja centralna ∝ 0,003 utrzymuje graf na ekranie. Tłumienie 0,88 stabilizuje układ. Węzły można przeciągać, by zakotwiczyć pozycje; puszczenie wznawia fizykę.

Panel statystyk

Obliczane po każdym przebudowaniu grafu: liczba węzłów, liczba krawędzi, średni stopień ⟨k⟩, globalny współczynnik klastrowania C, frakcja gigantycznej składowej i maksymalny stopień (rozmiar hubu dla sieci BA). Histogram rozkładu stopni na prawym panelu wykorzystuje logarytmiczną oś liczby, by ujawnić ogon rozkładu typu prawa potęgowego w trybie BA.

🔬 Dyfuzja Turinga — Jak Alan Turing wyjaśnił wzorce biologiczne

Praca z 1952 roku

W pracy "The Chemical Basis of Morphogenesis" (Philosophical Transactions of the Royal Society B, 1952), Alan Turing wykazał matematycznie, że jednorodna mieszanina dwóch reagujących substancji chemicznych — jednej (aktywatora), która wzmacnia własną produkcję, i drugiej (inhibitora), która tłumi aktywator i dyfunduje szybciej — może spontanicznie złamać symetrię przestrzenną i utworzyć stabilne wzorce periodyczne. Ta niestabilność Turinga jest obecnie uważana za wiodące teoretyczne wyjaśnienie ubarwienia sierści zwierząt, rozmieszczenia palców w rozwoju kończyn zarodkowych oraz rozmieszczenia mieszków włosowych.

Równania modelu Graya-Scotta

Symulacja implementuje wariant Graya-Scotta, który w przejrzysty sposób oddaje dynamikę aktywator-inhibitor:

∂U/∂t = Dᵤ ∇²U  −  UV²  +  F(1 − U)
∂V/∂t = Dᵥ ∇²V  +  UV²  −  (F + k)V

U to inhibitor (dostarczany z zewnątrz z szybkością F, zużywany przez reakcję UV²); V to aktywator (zużywany z szybkością k+F, wytwarzany autokatalitycznie poprzez UV²). Laplasjan ∇² jest dyskretyzowany na periodycznej siatce 256×256 za pomocą 5-punktowego szablonu. Krok metodą Eulera w przód z Δt = 1,0 jest stabilny dla używanych wartości współczynników dyfuzji.

Przestrzeń parametrów (F, k)

Niewielkie różnice w szybkości karmienia F i szybkości zabijania k dają jakościowo różne wzorce stanu ustalonego:

Kliknij w dowolnym miejscu na płótnie, aby wstrzyknąć zarodek wysokiego stężenia V. Zarodek wyzwala wzrost wzorca z tego miejsca — przydatne do obserwowania frontów inwazji wzorca.

Mapy kolorów i detekcja wzorców

Cztery mapy kolorów renderują pole V: Alien (zieleń/turkus/czerń podkreślające szczegóły w środkowym zakresie), Heat (czerń→czerwień→żółty), Mint (od ciemnej do jasnej zieleni), oraz Monochrome (skala szarości do publikacji). Klasyfikator typu wzorca oblicza średnie V i wykorzystuje heurystyki (F,k) do oznaczenia bieżącego reżimu.

Co dalej

Kandydaci do Fali 61 z kolejki obejmują dynamikę płynów lepkosprężystych, eksplorator reguł automatów komórkowych, interaktywny zespół podwójnych wahadeł pokazujący początek chaosu w różnych warunkach początkowych oraz narzędzia przetwarzania sygnałów (wizualizator DFT / STFT). Planujemy również funkcję kolekcji / zakładek, aby odwiedzający mogli tworzyć i udostępniać zestawy symulacji.

← Devlog #79 — Fala 59 Wszystkie wpisy →