Чому плівові фільми зазвичай плоскі
Занурте дротяну петлю в мильний розчин і витягніть її: плівка, що перекинута через петлю, не є випадковою поверхнею, а мінімальною поверхнею для цього периметру. Напруга поверхні робить це фізично можливим - енергія плівки пропорційна її площі, і фізична система, залишена на самоті, схиляється до конфігурації з найнижчою енергією - але та сама форма також є відповіддю на чисто геометричне питання, яке було сформульовано Джозефом Платтеу у 19 столітті: проблема Платтеу запитує, якщо дано замкнений контур в просторі, то яка поверхня з мінімальною площею його покриває?
Нульове середнє кривизна – місцева сигнатура
Поверхня, яка мінімізує площу за заданих меж, повинна мати нульове середнє кривизну в кожній внутрішній точці – середнє значення двох основних кривин (максимального та мінімального вигину в перпендикулярних напрямках) має скасовуватися. Це не означає, що поверхня плоска; це означає, що вона викривлена однаково і протилежно в двох напрямках, як сідло, тому будь-яка невелика деформація, яка змушує поверхню зміщуватися в одному напрямку, точно компенсується протилежною кривизною в перпендикулярному напрямку, зберігаючи площу без значних змін на першому порядку. Поверхні, що мають цю властивість у всіх точках, називаються мінімальними поверхнями, а мильний розчин – це спосіб природи знайти таку для будь-якої межі з дроту, в яку ви опускаєте дріт.
Висотовий приближеність та рівняння Лапласа
Для миларя, який може бути записаний як однозначна висота h(x,y) над плоским опорним планом — хороше наближення, коли межа не змушує плівку складатися назад, — умова нульової кривизни стає спрощеною для малих нахилів, і вона відповідає рівнянню Лапласа:
∇²h = ∂²h/∂x² + ∂²h/∂y² = 0
Це саме той самий рівняння, яке регулює стабільний розподіл тепла та електричний потенціал у зоні без джерел — математичне випадкове збігшення, а не фізичне, але корисне: будь-який числовий метод, побудований для одного рівняння Лапласа, безпосередньо переноситься на інші. Гранична умова полягає в тому, що висота дроту навколо його краю однакова у всіх точках; рівняння стверджує, що внутрішня висота у кожній точці дорівнює середньому значенню її безлічі сусідів, без будь-яких локальних горбів або западин.
∇²h = ∂²h/∂x² + ∂²h/∂y² = 0
Розв’язання за допомогою релаксації
Розділіть висотний полігон на сітку та рівняння Лапласа стає надзвичайно простим для виконання: кожен внутрішній сітчастий пункт збігається зі середнім значенням чотирьох сусідніх йому точок. Почніть із будь-якої початкової оцінки (наприклад, плоскої поверхні на нульовій висоті, з межами вже закріпленими у формі петлі дроту), повторюйте перегляд сітки та замінюйте кожну внутрішню висоту середнім значенням її верхньої/нижньої/лівої/правильної сусідів:
for (let iter = 0; iter < N_ITERS; iter++) { for (let y = 1; y < H - 1; y++) { for (let x = 1; x < W - 1; x++) { if (isBoundary(x, y)) continue; h[y][x] = 0.25 * (h[y-1][x] + h[y+1][x] + h[y][x-1] + h[y][x+1]); } } } Це релаксація Jacobi, найпростіший член родин ітераційних розв’язників для рівнянь Лапласа та Пуассона. Вона повільно збігається (кількість проходів, необхідних для цього, приблизно зростає квадратом ширини сітки), але є простим для паралелізації та чисельно стійкою, тому її природно обирають для інтерактивної демонстрації, яка перемальовує кожен кадр - кожен кадр просто виконує невелику кількість додаткових проходів, щоб поверхня помітно розслабилася до мінімальної форми протягом декількох секунд, а не миттєво переходить туди.
for (let iter = 0; iter < N_ITERS; iter++) {
for (let y = 1; y < H - 1; y++) {
for (let x = 1; x < W - 1; x++) {
if (isBoundary(x, y)) continue;
h[y][x] = 0.25 * (h[y-1][x] + h[y+1][x] + h[y][x-1] + h[y][x+1]);
}
}
}
Ізолінії та збіжна залишкова помилка
Два погляди роблять процес релаксації зрозумілим. Ізолінії (контурні лінії сталої висоти) перетворюють поле висот на щось схоже на топографічну карту – на справжній мінімальній поверхні контури просторові розсіюються плавно, без різких заломів, оскільки залом означав би локально сконцентровану кривизну. Умову нульової середньої кривизни забороняє. Залишкова помилка – середнє абсолютне відхилення висоти кожної точки від її середньої висоти сусідів, обчислена по всій сітці – вимірює, наскільки поточний стан відрізняється від точного задоволення рівнянням Лапласа; вона починається великою для будь-якого початкового припущення та геометрично зменшується до нуля під час ітерацій релаксації, надаючи прямий, видимий показник збіжності.
Поза височинними полями: катаноїди, келіхоїди та справжні 3D плівки
Височинне маніпулювання працює лише тоді, коли плівка ніколи не завішується. Справжні мильні плівки між більш складними каркасами - наприклад, дві паралельні кільця - утворюють справжні мінімальні поверхні 3D, такі як катаноїд, поверхня обертання гіперболічного косинусоїдальної кривої, які не можуть бути записані як функція з однією змінною. Для цього потрібне повне параметричне або мережеве рішення мінімальної поверхні замість простого 2D-розслаблення сітки, але вони задовольняють той самий точний локальний умову нульового середнього кривизни - розслаблення височинного поля на цій сторінці є найпростішим випадком великої родини чисельних методів мінімальної поверхні, які використовуються в архітектурі (розробка натягнутих дахів), біології (моделювання клітинних мембран) та комп’ютерній графіці.
Frequently asked questions
Чому пінлива оболонка набуває саме тієї форми?
Напруга поверхні надає плівці потенціальну енергію, пропорційну її площі поверхні, і плівка фізично прагне досягти найнижчої енергетичної конфігурації, яка є мінімальною площею поверхні, що простягається через межу її дротяної рамки. Це та сама форма, яка відповідає проблемі Плоте, чисто математичному питанню пошуку мінімальної площі поверхні для заданого криволінійного обризу.
Що означає нульова кривина?
У кожній точці мінімальної поверхні дві основні кривини (наскільки гостро викривляється поверхня в двох перпендикулярних напрямках максимального і мінімального викривлення) рівні та протилежні за знаком, отже їхнє середнє значення дорівнює нулю. Поверхня все ще викривлена – часто у формі сиділа або седлова форма – але вона викривляється однаково в обох напрямках, але з протилежним знаком.
Чому симуляція розслаблення потребує часу на встановлення замість того, щоб одразу перейти до відповіді?
Це пов'язано з використанням методу Якобі, ітеративного методу, який оновлює кожен пункт лише за допомогою поточних значень сусідніх пунктів. Кожен прохід поширює інформацію на одну комірку сітки далі, тому для поширення зміни вздовж одного краю та її встановлення по всій поверхні потрібно приблизно стільки ж проходів, скільки комірок у сітці.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Soap Film і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Soap Film