ГоловнаСтаттіРівняння тепла

Рівняння тепла: Розв'язування диференціальних рівнянь з використанням кінцевих різниць

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

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Закон збереження енергії у прихованому вигляді

Рівняння теплопровідності описує, як температура поширюється через матеріал, коли ви перестаєте звертати увагу на окремі молекули та починаєте розглядати це як безперервний простір. Воно випливає з двох ідей, об'єднаних разом. Закон Фурье стверджує, що тепловий потік пропорційний градієнту температури: тепло тече від гарячого до холодного, швидше там, де градієнт крутіший. Закон збереження енергії говорить, що температура в точці змінюється лише тоді, коли більше тепла надходить, ніж виходить. Об'єднавши ці дві ідеї, отримуємо єдику часткову диференціальну рівняння, з коефіцієнтом теплопровідності α = k/(ρc) об’єднуючи провідність k, щільність ρ та питому теплоємність c в одне число.

∂u/∂t = α ( ∂²u/∂x² + ∂²u/∂y² )  ← 2D тепло рівняння u(x,y,t) = поле температури α = k / (ρ c) = коефіцієнт теплопровідності Це той самий рівняння, що регулює розповсюдження чорнила у воді та поширення забруднювача в атмосфері — дифузія та теплопровідність є однією й тією ж математикою з різними мітками на осях.

∂u/∂t = α ( ∂²u/∂x² + ∂²u/∂y² )    ← 2D heat equation
u(x,y,t)  = temperature field
α = k / (ρ c)  = thermal diffusivity

Преобразование производных в соседних элементах

Компьютер не может напрямую оценить производную, поэтому симуляция располагает сеткой над пластиной и заменяет каждую производную разностью между соседними ячейками. Стандартная центральная аппроксимация второго порядка производной в одном направлении составляет ((u[i+1] − 2u[i] + u[i−1]) / Δx²); добавьте то же самое в другом направлении, и вы получите правило обновления, которое заставляет каждую ячейку двигаться к среднему значению своих четырех соседей, взвешенному по степени отклонения от него.

next[i][j] = cur[i][j] + α * dt * (
  (cur[i+1][j] - 2*cur[i][j] + cur[i-1][j]) / dx2 +
  (cur[i][j+1] - 2*cur[i][j] + cur[i][j-1]) / dy2
)   // explicit FTCS scheme, one full grid pass per frame
жива демонстрація · пов'язана симуляція● LIVE

Чому розмір кроку не може бути випадковим

Ця явна схема (FTCS – forward-time, centred-space) є дешевою, але не завжди безпечною. Аналіз стабільності фон Неймана – перевірка того, як кожен частотний режим помилки росте з одного кроку до іншого – показує, що схема залишається обмеженою лише якщо α·dt·(1/dx² + 1/dy²) не перевищує однієї половини. Якщо dt збільшити за ці межі, сітка не просто трохи помиляється, вона коливається та розбіжчася протягом кількох кадрів, оскільки dx вже зведений до квадрата в знаменнику: зменшення розміру комірки на чотири рази змушує крок часу зменшитися у чотири рази. Імплицитні схеми, такі як Crank–Nicolson, розв'язують лінійну систему на кожному кроці замість прямого читання сусідів, що коштує дорожче за крок, але повністю усуває межу стабільності, дозволяючи великим крокам часу залишатися добре поведеними.

Тимчасовий проти стаціонарного стану

Запуск правила оновлення вперед у часі дає тимчасове рішення — плиту охолоджується та нагрівається як джерела тепла вмикаються. Залишаючи її достатньо довго з фіксованими температурами меж, поле перестає змінюватися і задовольняє рівняння Лапласа, ∇²u = 0: стаціонарний стан. До нього можна дійти двома способами — або відрегулювати тимчасове рівняння до тих пір, поки воно не припинить рухатися, що може зайняти тисячі кадрів, або розв’язати стаціонарне рівняння безпосередньо за допомогою методу релаксації, такого як Гаусова-Сідель або метод успішного перерозподілу, який ітерується виключно в просторі та збігається набагато швидше, коли важливим є лише кінцева картина.

Межі впливу: де визначається температура

Встановлення фіксованої температури – гарячого або холодного місця – закріплює температуру клітини на кожному кроці – це так звана Директивна умова (Dirichlet condition). Інше, як ізольований край, змушує градієнт через нього дорівнювати нулю – це Неumann condizione – таким чином тепло відбивається назад усередину, не виходячи. Реальні стіни поєднують обидва ці варіанти, втрачаючи тепло пропорційно різниці температур із зовнішнім повітрям, що відповідає Robin умовам – тим, які насправді керують радіатори та вікна.

Frequently asked questions

Чому симуляція вибухає в шум, якщо я занадто сильно збільшую швидкість слайдера?

Розв'язувач використовує явну схему кінцевих різниць, яка стабільна лише тоді, коли розмір кроку часу залишається нижчим за поріг, встановлений розміром комірки та дифузійністю (умова стабільності фон Неймана). Перетнеться цей поріг, і помилка округлення буде зростати на кожному кроці замість зменшуватися, перетворюючи плавне поле на шум у вигляді сітки за кілька кадрів.

У чому різниця між сталим станом та режимом транзиєного?

Режим транзиєного розв’язує повну часову залежність рівняння крок за кроком, показуючи поширення тепла кадр за кадром. Сталий стан замість цього безпосередньо вирішує ∇²u = 0 методом релаксації, переходячи безпосередньо до температурного графіка, в який би осіла плита, якщо чекати нескінченно з тими ж граничними умовами.

Чому джерела тепла розповсюджуються у вигляді кіл замість квадратів, навіть на сітці, що має форму квадрата?

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

Спробуйте наживо

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

▶ Відкрити симуляцію Heat Equation

Що ви знайшли?

Додати кроки відтворення (опційно)