Ця симуляція візуалізує фазовий простір двовимірної динамічної системи повністю на GPU за допомогою GLSL-шейдера в стилі лінійно-інтегральної конволюції (LIC): доменно-викривлений шум розмазується вздовж локального напрямку векторного поля, утворюючи плинні лінії течії замість дискретних стрілок. Колір кодує локальну швидкість |(f, g)|, а м'яке сяйво позначає нерухомі точки, де швидкість зникає. Вбудовано п'ять систем — налаштовувана лінійна матриця 2×2, осцилятор ван дер Поля, згасаючий маятник, хижак-жертва Лотки-Вольтери та осцилятор Дюффінга з подвійною ямою — кожна демонструє різний тип довгострокової поведінки, від спіралей і сідел до справді нелінійного граничного циклу.
Поле швидкостей (dx/dt, dy/dt) = (f(x,y), g(x,y)), обчислене в кожному пікселі, візуалізоване як анімовані лінії течії, колір яких переходить від синього до блакитного, жовтого й червоного зі зростанням швидкості. Нерухомі точки, де поле дорівнює нулю, м'яко сяють. Для лінійної системи живий показник класифікує рівновагу — сідло, вузол, спіраль чи центр — напряму зі сліду й визначника матриці.
Оберіть систему зі списку, потім перетягуйте Параметр a і Параметр b, щоб змінити її динаміку: для лінійного випадку вони переводять рівновагу між стійкими/нестійкими спіралями, вузлами, сідлом і центром; для ван дер Поля параметр a — це нелінійне загасання μ; для маятника — це загасання та рушійний момент; для Лотки-Вольтери — темпи росту жертв і смертності хижаків; для Дюффінга — загасання. Швидкість потоку керує тим, як швидко анімуються лінії течії, а «Скинути» відновлює типові параметри обраної системи.
Осцилятор ван дер Поля, винайдений у 1920-х роках для моделювання ламкових радіосхем, встановлюється на граничний цикл — єдину замкнену петлю, на яку траєкторії накручуються як зсередини, так і ззовні. Жодна лінійна система, як би ви не налаштовували її матрицю, не може відтворити таку поведінку: граничні цикли — це справді нелінійне явище, і рівняння ван дер Поля стало одним із засадничих прикладів у вивченні самопідтримуваних коливань.
Фазовий портрет — це зображення простору станів динамічної системи, що показує, як розвивається з часом кожна можлива початкова точка. У цій симуляції кожна точка площини має вектор швидкості (dx/dt, dy/dt), визначений рівняннями обраної системи, а плинні лінії течії — це рендеринг цього векторного поля методом лінійно-інтегральної конволюції: шум розмазується вздовж локального напрямку течії, тож ви бачите загальний патерн руху одним поглядом, а не стежите за однією траєкторією за раз.
Для лінійної системи з матрицею [[a, b], [-b, a]] слід дорівнює T = 2a, а визначник D = a² + b². Якщо D < 0, початок координат — сідло (нестійке в одному напрямку, стійке в іншому); якщо D > 0 і T² < 4D — це спіраль, стійка при T < 0 і нестійка при T > 0; якщо D > 0 і T² > 4D — це вузол; а якщо T = 0 при D > 0 — це центр, оточений замкненими орбітами. Панель показників обчислює цю класифікацію наживо, коли ви рухаєте повзунки.
Стандартний загасаючий лінійний осцилятор завжди спірально сходить до єдиної точки рівноваги й лишається там. Рівняння ван дер Поля ẋ = y, ẏ = μ(1−x²)y − x має загасання, що змінює знак залежно від амплітуди: воно підживлює малі коливання й гасить великі, тож траєкторії як зсередини, так і ззовні сходяться до однієї й тієї самої замкненої орбіти, що зветься граничним циклом. Ця самокоригувальна амплітуда коливань — причина, чому модель ван дер Поля використовують для опису серцебиття, ламкових радіосхем та інших самопідтримуваних осциляторів.
Рівняння Лотки-Вольтери ẋ = a·x − x·y, ẏ = x·y − b·y моделюють пару хижак-жертва: жертви (x) зростають експоненційно з темпом a за відсутності хижаків, а хижаки (y) вимирають із темпом b без жертв для харчування. Замкнені орбіти, що оточують точку співіснування (b, a), означають, що популяції циклічно коливаються, а не встановлюються на фіксоване значення — зростання жертв підживлює зростання хижаків, які потім виснажують жертв, що морить голодом хижаків, і цикл повторюється, ніколи не сходячись до рівноваги.
Система Дюффінга ẋ = y, ẏ = −b·y + x − x³ описує рух у потенціалі з подвійною ямою, фізично подібно до кульки, що може влаштуватися в одній із двох западин, розділених горбом. Кубічний доданок −x³ створює дві симетричні стійкі рівноваги при x = ±1 (кожна є спіраллю, коли загасання b > 0) та нестійке сідло в початку координат, що розділяє їхні басейни притягання, тож на яку саме спіраль потрапить траєкторія, чутливо залежить від її початкового положення відносно сідла.