Девлог №93 – Хвиля 72: фільтр Калмана, зворотне поширення, 3D-маятник, евтрофікація, акустична лінза та планетарні кільця

Хвиля 72 приносить одні з найматематично витончених симуляцій на сьогодні: повноматричний фільтр Калмана, що спостерігає, як звужується його власна невизначеність, потік градієнтів, зроблений видимим крізь нейронну мережу, 3D-маятник із трьома фізичними режимами, озеро, що незворотно перекидається у цвітіння водоростей, звук, сформований масивом лінз, та десять тисяч частинок кільця, розсічені резонансом.

Хвиля 72 — 6 доданих симуляцій
633
Всього симуляцій
6
Нові цієї хвилі
72
Номер хвилі
93
№ девлогу

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

📡

Фільтр Калмана

Справжній 4D-стан [x,y,vx,vy] з повною матрицею P 4×4. Форма Джозефа для числової стабільності. Еліпс коваріації через власний розклад. 4 траєкторії. RMSE: Калман проти сирих даних проти лише моделі.

🔁

Зворотне поширення

Ручне ланцюгове правило: MLP 2→H→H→{2|1}. ReLU/tanh/sigmoid + softmax-CE або MSE. δ-імпульси анімуються справа наліво. Підсвічування ребер ∂L/∂w. Теплова карта рішень + смуга втрат.

🎯

3D-маятник

RK4 у декартових координатах з обмеженням через множник Лагранжа. Режими: плоска розетка, конічний (T=2π√(Lcosθ/g)) та Фуко (сила Коріоліса Ω·sin(широта)). Власна 3D-проєкція з обертанням перетягуванням.

🦠

Евтрофікація

П'ять пов'язаних ОДУ: фосфор, водорості, кисень, риба, детрит. Рециркуляція фосфору з аноксійних донних відкладень → гістерезис. Фазовий графік простежує незворотну точку перекидання. Інтегрування RK4 з візуалізацією водойми.

🔊

Акустична лінза (FDTD)

2D хвильове рівняння 240×144, leapfrog FDTD, поглинальні межі Мура першого порядку. Опукла/увігнута/Френеля/GRIN параболічна лінза. Накладання променів за законом Снелла. EMA тиску підтверджує фокусну відстань.

🪐

Планетарні кільця

До 10 000 кеплерівських частинок. Резонанс 2:1 з місяцем на кшталт Мімаса → поштовхи при з'єднанні → проміжок Кассіні. Розрахунок межі Роша. Місяці-пастухи утримують вузьке кільце.

Фільтр Калмана: оптимальне оцінювання стану

Фільтр Калмана (1960) — один із найуспішніших алгоритмів прикладної математики. Він оптимально поєднує передбачення динамічної моделі із зашумленими показами датчиків, даючи незміщену оцінку стану з мінімальною дисперсією — і, що важливо, точно відслідковує, наскільки він невпевнений, через матрицю коваріації P.

4D-стан та операції з повними матрицями

Вектор стану — [x, y, v_x, v_y]: позиція та швидкість у 2D. Матриця коваріації P 4×4 відслідковує невизначеності та кореляції між усіма компонентами стану. Кожен крок передбачення обчислює:

x̂⁻ = F·x̂          (передбачення стану через матрицю переходу F)
P⁻  = F·P·Fᵀ + Q   (передбачення коваріації, Q = шум процесу)

Кожен крок оновлення (при отриманні спостереження 2D-позиції через H = [I₂|0₂]):

K  = P⁻·Hᵀ·(H·P⁻·Hᵀ + R)⁻¹  (коефіцієнт підсилення Калмана)
x̂  = x̂⁻ + K·(z − H·x̂⁻)       (оновлення стану)
P  = (I − K·H)·P⁻·(I − K·H)ᵀ + K·R·Kᵀ  (форма Джозефа)

Форма Джозефа для числової стабільності

Стандартне оновлення P = (I−KH)P⁻ страждає від асиметрії через похибки з плаваючою комою — P може втратити додатну визначеність після багатьох ітерацій. Форма Джозефа P = (I−KH)P⁻(I−KH)ᵀ + KRKᵀ алгебраїчно еквівалентна, але числово стабільна: вона гарантує, що P лишається симетричною додатно визначеною незалежно від округлення з плаваючою комою.

Візуалізація еліпса коваріації

2D невизначеність позиції візуалізується як еліпс, обчислений із власного розкладу підматриці позиції 2×2 матриці P. Напівосі — √(λ₁) і √(λ₂) (стандартні відхилення), а орієнтація слідує власним векторам. Еліпс візуально роздувається під час кроку передбачення й стискається, коли надходить спостереження — прекрасна демонстрація інформаційного циклу фільтра.

Зворотне поширення: потік градієнтів, зроблений видимим

Зворотне поширення — це просто ефективно застосоване ланцюгове правило до графа обчислень — але щоб зрозуміти його інтуїтивно, треба побачити, як градієнтні імпульси течуть назад крізь кожен шар. Ця симуляція робить цей потік явним.

Ручна реалізація ланцюгового правила

Архітектура мережі налаштовується: 2 входи → H прихованих юнітів → H прихованих юнітів → 2 (класифікація) чи 1 (регресія) виходи. Кожен прямий прохід обчислює активації пошарово. Кожен зворотний прохід обчислює похибки δ: вихідний шар отримує δ_L = ∂L/∂z_L, а далі поширюється: δ_l = (Wᵀ_{l+1} · δ_{l+1}) ⊙ σ'(z_l). Градієнти ваг: ∂L/∂W_l = δ_l · aᵀ_{l-1}.

Візуальна анімація градієнтів

Під час зворотного поширення кольорові імпульси рухаються справа наліво крізь діаграму мережі. Ширина ребра й інтенсивність кольору відображають |∂L/∂w| для кожної ваги. Великі градієнти світяться яскраво; майже нульові градієнти (зникаючий градієнт) показуються тьмяними лініями. З ReLU мертві нейрони (завжди на виході дають 0) позначаються явно — їхні вихідні градієнти назавжди нульові.

3D-маятник: обмеження через множник Лагранжа

Сферичний маятник — маса на жорсткому стрижні, вільна коливатись у всіх напрямках — простий для фізичного опису, але незручний для числової симуляції. Обмеження полягає в тому, що відстань від точки підвісу до маси завжди точно дорівнює L. Замість переходу до сферичних координат (що вносить сингулярності gimbal-lock), симуляція працює в декартових координатах і забезпечує обмеження через множник Лагранжа.

Декартовий RK4 з проєкцією обмеження

Рівняння руху в декартових (x,y,z) координатах: m·r̈ = F_гравітація + λ·r̂, де λ — величина сили обмеження (натяг). На кожному кроці RK4, після вільного просування r та v, позиції проєктуються назад на сферу, а швидкості — на дотичну площину: λ = (−|v|² − r·g_vec) / L², потім застосовується поправка. Це гарантує точне виконання обмеження без координатних сингулярностей.

Три фізичні режими

Евтрофікація: точка перекидання озера

Евтрофікація — збагачення поживними речовинами, що веде до цвітіння водоростей та виснаження кисню — один із найважливіших прикладів катастрофічної точки перекидання в екологічній науці. Щойно озеро перетинає поріг, воно різко переходить у каламутний, бідний киснем стан, що може зберігатись десятиліттями навіть після зниження надходження фосфору.

П'ятивидова система ОДУ

Симуляція інтегрує п'ять пов'язаних ОДУ, що представляють P (розчинений фосфор), A (біомаса водоростей), O (розчинений кисень), F (біомаса риби) та D (детрит). Ключова нелінійність — член рециркуляції фосфору: за аноксійних умов (O нижче порогу) донні відклади вивільняють накопичений фосфор — позитивний зворотний зв'язок, що штовхає систему до альтернативного стійкого стану. Інтегратор RK4 надійно обробляє жорсткі переходи.

Гістерезис та фазовий графік

Фазовий графік простежує (навантаження фосфором, біомаса водоростей) з часом. Коли навантаження повільно зростає, система лишається у стані чистої води, доки різко не перескакує в стан цвітіння в точці верхньої сідло-вузлової біфуркації. Коли потім навантаження зменшується, система лишається у стані цвітіння аж до нижньої сідло-вузлової точки — це і є гістерезис. Площа, охоплена петлею гістерезису на фазовому графіку, представляє "борг відновлення" — скільки додаткових зусиль потрібно, щоб відновити озеро, порівняно із запобіганням цвітінню від самого початку.

Акустична лінза: FDTD-симуляція хвиль

Акустичне фокусування — концентрація звукових хвиль у точці — лежить в основі медичного ультразвуку, сонарів та архітектурної акустики. Ця симуляція розв'язує 2D хвильове рівняння напряму методом Finite Difference Time Domain (FDTD), показуючи вигинання фронтів хвиль у реальному часі.

Leapfrog FDTD та межі Мура

2D хвильове рівняння тиску ∂²p/∂t² = c²(∂²p/∂x² + ∂²p/∂y²) дискретизується на сітці 240×144 за схемою leapfrog: тиск у момент n+1 залежить від моментів n і n-1 та просторового лапласіана в n. Умова стабільності CFL вимагає c·dt/dx ≤ 1/√2. Поглинальна межова умова Мура першого порядку усуває відбиття від країв сітки, узгоджуючи швидкість вихідної хвилі: p_край(t+dt) = p_{край+1}(t) + (c·dt−dx)/(c·dt+dx)·(p_{край+1}(t+dt) − p_край(t)).

Чотири типи лінз

Планетарні кільця: кеплерівські частинки та резонансні проміжки

Кільця Сатурна — одна з найфотогенічніших структур Сонячної системи, і їхня структура контролюється орбітальною механікою. Проміжок Кассіні, помітний розрив між кільцями A та B, спорожнений орбітальним резонансом 2:1 із місяцем Мімасом.

Кеплерівські частинки та резонансні поштовхи

До 10 000 тестових частинок розміщуються на кеплерівських орбітах з великою піввіссю a, розподіленою як n ∝ a^(−3/2) (плоска поверхнева густина). Кожна частинка отримує гравітаційний поштовх від місяця на кшталт Мімаса при кожному з'єднанні. На радіусі резонансу 2:1 (де частинка робить рівно 2 оберти на один оберт місяця) ці поштовхи завжди трапляються в тій самій орбітальній фазі — вони накопичуються когерентно й підвищують ексцентриситет, доки орбіта не почне перетинатись з іншими, після чого частинка швидко розсіюється. Після тисяч орбіт радіус резонансу показує розрив густини, що збігається з проміжком Кассіні.

Межа Роша та місяці-пастухи

Межа Роша R_Роша = a_планета · (2ρ_планета/ρ_супутник)^(1/3) позначає межу, за якою припливні сили перевищують власну гравітацію — місяці всередині неї подрібнюються на матеріал кілець. Симуляція також підтримує пари місяців-пастухів: два малих місяці, що обрамляють вузьке кільце, обмінюються моментом імпульсу з частинками кільця, утримуючи кільце чітко звуженим — механізм, що стоїть за структурою F-кільця Сатурна.

Що далі

Хвиля 73 — спецвипуск WebGL/GLSL: усі п'ять симуляцій використовують власні шейдери, raymarching або GPGPU-техніки. Далі на черзі: raymarching 3D-фрактала Mandelbulb з оцінювачем відстані, SDF губки Менгера з розмірністю Хаусдорфа, вкладення параболоїда Флемма для кротовини Морріса-Торна, сферичний добуток суперформи Гіліса та GPGPU-симуляція на 250 000 частинок з ping-pong render targets.

← Девлог №92 Девлог №94 →