Девлог №77 – Хвиля 57: Політ Леві, фрактал DLA & рівняння мілкої води

Хвиля 57 охоплює три дисципліни — теорію ймовірностей, генеративне мистецтво та обчислювальну гідродинаміку — з дослідником аномальної дифузії за польотом Леві, генератором фракталу DLA в реальному часі, що наживо відстежує фрактальну розмірність, та розв'язувачем одновимірних рівнянь мілкої води для сценаріїв прориву дамби, коливань рідини та приливної хвилі. Бібліотека тепер налічує 547 симуляцій.

Хвиля 57 — додано 3 симуляції
547
Усього симуляцій
3
Нових цієї хвилі
57
Номер хвилі
77
№ Девлогу

Нові симуляції

🦅

Політ Леві — аномальна дифузія

Показник стійкості α визначає важкість хвоста розподілу; α=2 відповідає броунівському руху, α→1 породжує рідкісні довгі стрибки. Алгоритм Мантеньї. Розподіл кроків у лог-лог масштабі, до 8 блукачів.

🌿

Дифузійно-обмежена агрегація — фрактал DLA

Алгоритм Віттена–Сандера 1981 року. Частинки блукають випадковим чином до контакту й прилипання; живе відстеження фрактальної розмірності D_f ≈ 1.71 через N ∝ R^D_f. Чотири колірні режими, три форми зерна.

🌊

Рівняння мілкої води — одновимірний розв'язувач SWE

Рівняння Сен-Венана; схема Лакса–Фрідріхса. Прорив дамби, коливання рідини, приливна хвиля, гідравлічний стрибок. Число Фруда, швидкість хвилі, збереження маси, тертя Меннінга.

🦅 Політ Леві — аномальна дифузія

Що таке аномальна дифузія?

Стандартний броунівський рух має середньоквадратичне зміщення, що масштабується лінійно з часом: MSD ∝ t. Польоти Леві узагальнюють це, обираючи довжини кроків із важкохвостого стійкого розподілу, де P(l) ~ l−(1+α) з α ∈ (0, 2). Оскільки розподіл не має скінченної дисперсії при α < 2, окремі блукачі можуть здійснювати рідкісні, але довільно довгі стрибки, породжуючи супердифузію: MSD ∝ tγ з γ > 1.

Польоти Леві трапляються всюди в природі: моделі пошуку їжі альбатросами, розгалуження блискавки, послідовності зміщень при землетрусах і навіть моделі мобільності людини в даних мобільних телефонів — усі вони демонструють важкохвості розподіли кроків, узгоджені зі статистикою Леві.

Алгоритм Мантеньї

Пряме вибіркове обернення зі стійкого розподілу вимагає чисельного квадратурного обчислення. Алгоритм Мантеньї (1994) забезпечує ефективну апроксимацію. Для симетричної α-стійкої випадкової величини:

σ = [Γ(1+α)·sin(πα/2) / (Γ((1+α)/2)·α·2^((α−1)/2))]^(1/α)
u ~ N(0, σ²),  v ~ N(0, 1)
l = u / |v|^(1/α)

При α = 2 це зводиться до гаусового (стандартного броунівського) розподілу. Симуляція використовує 6-членну апроксимацію Ланцоша для Γ(z), щоб уникнути зовнішніх математичних бібліотек.

Читання графіка в лог-лог масштабі

Нижня панель показує гістограму накопичених довжин кроків у лог-лог масштабі. Для справжнього степеневого розподілу гістограма спадає прямою лінією з нахилом −(1 + α). При α = 2 (гаусовий розподіл) хвіст спадає швидше за будь-який степеневий закон, і правий кінець гістограми загинається донизу. При α = 1.2 гістограма залишається майже лінійною на багатьох порядках величини кроку — характерна ознака стійкого розподілу Леві.

🌿 Дифузійно-обмежена агрегація (DLA)

Модель Віттена–Сандера

Представлена Віттеном і Сандером у 1981 році, DLA — один із найпростіших алгоритмів, що породжує фрактальну геометрію. Правила мінімальні: розмістити частинку-зерно в початку координат; випустити нову частинку з кола, радіус якого трохи перевищує поточний кластер; дозволити їй випадково блукати, доки вона не опиниться поруч із кластером, після чого вона назавжди прилипає. Повторити.

Попри простоту, отриманий кластер є фракталом з розмірністю D_f ≈ 1.71 у 2D (порівняно з 2.0 для суцільного диска та 1.0 для лінії). Розгалуження виникає тому, що кінчики кластера переважно перехоплюють дифузні частинки через більший перетин захоплення — явище, відоме як нестійкість розгалуження кінчиків.

Деталі реалізації

Симуляція використовує плоску сітку зайнятості Uint8Array для перевірки сусідів за O(1). Частинки з'являються на колі радіусом 1.2 × cluster_radius + 30 пікселів і знищуються, якщо відхиляються далі ніж 1.5 × цього радіуса, запобігаючи нескінченному блуканню. Кожен кадр анімації запускає пакет до 10 частинок, зберігаючи плавну частоту кадрів навіть при цілях у 5000 частинок.

Повзунок імовірності прилипання (за замовчуванням 1.0) вводить варіант DLA зі зменшеним шумом: при нижчих значеннях частинки частково промахуються при першому контакті, породжуючи щільніші, менш розгалужені кластери, що більше нагадують візерунки в'язкого пальцювання.

Оцінка фрактальної розмірності

Живе оцінювання D_f використовує найпростіший проксі підрахунку коробок: якщо N частинок займають кластер радіуса R, то D_f ≈ log(N)/log(R). Це зазвичай сходиться до значень між 1.65 і 1.75, щойно кластер перевищує кілька сотень частинок. Справжня фрактальна розмірність DLA була точно обчислена як D_f = 1.713 ± 0.003 Мікіним та колегами за допомогою великомасштабних симуляцій.

🌊 Рівняння мілкої води (одновимірні SWE)

Рівняння Сен-Венана

Одновимірні рівняння Сен-Венана (мілкої води) описують усереднену за глибиною течію в каналі, де горизонтальний масштаб довжини значно перевищує глибину води. Вони утворюють гіперболічну систему законів збереження:

∂h/∂t + ∂(hu)/∂x = 0           (збереження маси)
∂(hu)/∂t + ∂(hu² + ½gh²)/∂x = S  (імпульс)

де h — глибина води, u — усереднена за глибиною швидкість, g = 9.81 м/с² — прискорення вільного падіння, а S — джерельний член тертя Меннінга: S = −g·n²·u·|u|·h−1/3.

Схема Лакса–Фрідріхса

Симуляція використовує явний скінченнорізницевий метод Лакса–Фрідріхса, який є точним першого порядку за простором і часом, але безумовно стійким за умови CFL. Часовий крок обчислюється адаптивно на кожному кадрі:

dt = CFL · dx / max(|u| + c)    де  c = √(gh)

Повзунок CFL (0.1–0.48) дозволяє спостерігати ефекти числової дифузії: нижчі значення дають плавніші, але повільніші результати; значення, близькі до 0.5, загострюють фронти хвиль, але можуть породжувати незначні осциляції поблизу ударних хвиль.

Сценарії

Число Фруда

Число Фруда Fr = |u|/c — аналог числа Маха для мілкої води. При Fr < 1 (докритична течія) інформація може поширюватися як вгору, так і вниз за течією. При Fr > 1 (надкритична течія) збурення можуть поширюватися лише вниз за течією. Перехід Fr = 1 відповідає гідравлічному стрибку в стаціонарному стані і позначений пунктирною помаранчевою лінією на графіку швидкості.

Що далі

Хвиля 58, ймовірно, дослідить більше теорії ймовірностей, складні генеративні художні візерунки або фізичні симуляції на основі звичайних/часткових диференціальних рівнянь. У черзі — cell-growth-morphogenesis (реакція-дифузія + клітини з орієнтованими силами), origami-fold (переглядач схем згинів) та 3d-generative-art (поверхні-гіроїди в Three.js).

← Девлог №76 — Хвиля 56 Усі дописи →