Содержание

§ 10. Дифференциальные уравнения в частных производных на регулярных сетках

Введение

Эти уравнения являются обобщением ОДУ на многомерное пространство: в уравнении присутствуют производные сразу по нескольким аргументам функции. Методы, предназначенные для решения ОДУ, здесь не применимы, поскольку интегрировать уравнение нужно сразу по нескольких аргументам, а из получившегося уравнения выразить решение в явном виде не представляется возможным. Тем не менее, для ДУЧП были разработаны свои численные методы решения, которые коллективно называются разностные схемы.

Разностная схема это запись ДУЧП, в которой все производные заменены на их разностные аналоги, которые мы изучили в предыдущем разделе. За кажущейся простотой скрывается нетривиальное требование сходимости разностной схемы к точному решению уравнения при стремлении размера сетки к нулю. Часто можно лишь проверить готовую схему на сходимость, а составить схему так, чтобы она заведомо сходилась, можно лишь эмпирическим путем. Также для различных уравнений подходят различные схемы; можно без большого преувеличения сказать, что схемы уникальны для каждого уравнения.

Уравнение диффузии

Рассмотрим, как строится разностная схема на примере уравнения диффузии (теплопроводности).

Tt=k2T.T_t = \mathcal{k} \nabla^2 T.

Здесь TT — это температура некоторого объекта, а k\mathcal{k} — коэффициент температуропроводности этого объекта. В одномерном случае уравнение принимает вид

Tt=kTxx.T_t = \mathcal{k} T_{xx}.

Теперь запишем все производные этого уравнения с помощью конечных разностей. Для производной по времени будем использовать разность вперед первого порядка точности, а для пространственной производной — центральную разность второго порядка точности.

T(t+Δt,x)=T(t,x)+kΔt(Δx)2(T(t,xΔx)2T(t,x)+T(t,x+Δx)).T(t+\Delta t,x) = T(t,x) + \mathcal{k} \frac{\Delta t}{(\Delta x)^2} (T(t,x-\Delta x) - 2T(t,x) + T(t,x+\Delta x)).

Сокращенно это можно записать как

Ti+1,j=Ti,j+kΔt(Δx)2(Ti,j12Ti,j+Ti,j+1).T_{i+1,j} = T_{i,j} + \mathcal{k} \frac{\Delta t}{(\Delta x)^2} (T_{i,j-1} - 2T_{i,j} + T_{i,j+1}).

Теперь проверим устойчивость схемы методом фон Неймана. Для того чтобы разностная схема была устойчива, необходимо, чтобы абсолютное значение отношения амплитуды решения убывало со временем:

Ai+1Ai.\left|A_{i+1}\right| \leq |A_{i}|.

Для того чтобы вычислить амплитуду решения, представим его в виде ряда Фурье. Ряд Фурье — это представление функции в виде суммы гармоник различных фаз и амплитуд.

T(t,x)=n=An(t)exp(iλnx).T(t,x) = \sum\limits_{n=-\infty}^{\infty} A_{n}(t) \exp(i \lambda_n x).

Подставим это выражение в разностную схему и уберем знак суммы, поскольку это линейное уравнение.

Ai+1exp(iλx)=Aiexp(iλx)+AikΔt(Δx)2(exp(iλ(xΔx))2exp(iλx)+exp(iλ(x+Δx))).A_{i+1}\exp(i \lambda x) = A_{i}\exp(i \lambda x) + A_{i} \mathcal{k} \frac{\Delta t}{(\Delta x)^2} (\exp(i \lambda (x - \Delta x)) -2 \exp(i \lambda x) + \exp(i \lambda (x + \Delta x))).

Делим обе части уравнения на Aiexp(iλx)A_{i}\exp(i \lambda x) и получаем

Ai+1Ai=1+kΔt(Δx)2(exp(iλ(Δx))2+exp(iλΔx)).\frac{A_{i+1}}{A_{i}} = 1 + \mathcal{k} \frac{\Delta t}{(\Delta x)^2} (\exp(i \lambda (-\Delta x)) -2 + \exp(i \lambda \Delta x)).

Упрощаем уравнение, используя тригонометрические равенства.

Ai+1Ai=14kΔt(Δx)2sin2λΔx2\frac{A_{i+1}}{A_{i}} = 1 - 4 \mathcal{k} \frac{\Delta t}{(\Delta x)^2} \sin^2\frac{\lambda \Delta x}{2}

Для того чтобы разностная схема была устойчива, должно быть выполнено условие

G=14kΔt(Δx)2sin2λΔx21.|G| = \left| 1 - 4 \mathcal{k} \frac{\Delta t}{(\Delta x)^2} \sin^2\frac{\lambda \Delta x}{2} \right| \leq 1.

Неравенство G1G \leq 1 выполняется всегда, а неравенство G1G \geq -1 выполняется, когда

kΔt(Δx)212.\mathcal{k} \frac{\Delta t}{(\Delta x)^2} \leq \frac{1}{2}.

Итого, мы выяснили, что разностная схема устойчива, если шаг по времени много меньше шага по пространству. Это условие можно легко запрограммировать, чтобы запретить запуск программы с шагами по времени и пространству, которые этому условию не удовлетворяют.

Мы составили для ДУЧП разностную схему, но для решения реальной задачи распространения тепла в некотором объекте, у нас не хватает начальных и граничных условий. Под начальными условиями понимается некоторое исходное состояние системы. В нашем случае это температура в каждой точке сетки. Это распределение может быть любым, и за продолжительное время температура должна стать одинаковой в каждой точке. Например, можно взять начальное распределение

T(0,x)=exp(x).T(0,x) = \exp(x).

Граничными условиями называются дополнительные условия в конкретных областях сетки (как правило, на границах). Эти условия необязательны для этой задачи. Если их нет, то нам надо как-то вычислить производную по пространству на границе сетки. Как правило, на границе вместо центральной разности используется разность вперед или назад, однако использование центральной разности в тестовых целях также допускается: при этом надо обнулить все точки, которые выходят за границу. В окончательных версиях программ, конечно, используют разности вперед и назад.

Отличие разностных схем от дифференциальных уравнений

В рассмотренном ранее ДУЧП все производные были заменены на их разностные аналоги, другими словамия, все бесконечно малые были заменены на конечные величины. Влияние такой замены можно описать математически. Для этого разложим в ряд Тейлора Ti+1,j,Ti,j1,Ti,j+1T_{i+1,j},T_{i,j-1},T_{i,j+1} в окрестности точки, которая соответствует индексам (i,j)(i,j), и получим

Ti+1,j=Ti,j+Ti,jtΔt+122Ti,jt2(Δt)2+O((Δt)3),Ti,j+1=Ti,j+Ti,jxΔx+122Ti,jx2(Δx)2+O((Δx)3),Ti,j1=Ti,jTi,jxΔx+122Ti,jx2(Δx)2+O((Δx)3).T_{i+1,j} = T_{i,j} + \frac{\partial T_{i,j}}{\partial t} \Delta t + \frac{1}{2}\frac{\partial^2 T_{i,j}}{\partial t^2} (\Delta t)^2 + O((\Delta t)^3), \\ T_{i,j+1} = T_{i,j} + \frac{\partial T_{i,j}}{\partial x} \Delta x + \frac{1}{2}\frac{\partial^2 T_{i,j}}{\partial x^2} (\Delta x)^2 + O((\Delta x)^3), \\ T_{i,j-1} = T_{i,j} - \frac{\partial T_{i,j}}{\partial x} \Delta x + \frac{1}{2}\frac{\partial^2 T_{i,j}}{\partial x^2} (\Delta x)^2 + O((\Delta x)^3).

Теперь подставим получившиеся выражения в разностную схему и получим

Ti,jtΔt+122Ti,jt2(Δt)2=kΔt(Δx)22Ti,jx2(Δx)2+O((Δt)3)+O((Δx)3).\frac{\partial T_{i,j}}{\partial t} \Delta t + \frac{1}{2}\frac{\partial^2 T_{i,j}}{\partial t^2} (\Delta t)^2 = \mathcal{k} \frac{\Delta t}{(\Delta x)^2} \frac{\partial^2 T_{i,j}}{\partial x^2} \left(\Delta x\right)^2 + O((\Delta t)^3) + O((\Delta x)^3).

Преобразуя, получаем исходное уравнение с дополнительным слагаемым в правой части:

Ti,jt=k2Ti,jx2122Ti,jt2Δt+O((Δt)3)+O((Δx)3).\frac{\partial T_{i,j}}{\partial t} = \mathcal{k} \frac{\partial^2 T_{i,j}}{\partial x^2} - \frac{1}{2}\frac{\partial^2 T_{i,j}}{\partial t^2} \Delta t + O((\Delta t)^3) + O((\Delta x)^3).

Это и есть дифференциальное уравнение, точное решение которого совпадает с точным решением разностного уравнения. В данном уравнении появилось дополнительное слагаемое, однако, оно стремится к нулю при шаге по времени, стремящемся к нулю. В других уравнениях могут появляться слагаемые, которые не затухают с уменьшением шага, и такие проверки помогают их найти.

Объяснение уравнения теплопроводности

Как было получено уравнение теплопроводности? Известно, что в физике уравнения являются символьной записью результатов экспериментов. Это означает, что все уравнения должны иметь интуитивную интерпретацию, основанную на наблюдениях за окружающим миром. Процесс распространения тепла в некотором объекте можно описать простым принципом: изменение температуры в отдельно взятой точке объекта по времени попропорционально разности температуры в этой точке и средней температуры окружающих точек. Другими словами, температура в точке стремится к средней температуре окружающих точек. Математически это можно записать как

Ti+1,jTi,jизменение температуры по времени=α(Ti,j+1+Ti,j12Ti,j)разница температур.\underbrace{T_{i+1,j} - T_{i,j}}_{\text{изменение температуры по времени}} = \alpha\underbrace{\left(\frac{T_{i,j+1} + T_{i,j-1}}{2} - T_{i,j}\right)}_{\text{разница температур}}.

После перестановок формула принимает знакомый вид

Ti+1,j=Ti,j+α2(Ti,j12Ti,j+Ti,j+1).T_{i+1,j} = T_{i,j} + \frac{\alpha}{2} \left(T_{i,j-1} -2 T_{i,j} + T_{i,j+1}\right).

В этой формуле шаг по времени и шаг по пространству включены в коэффициент α\alpha. Условие устойчивости теперь можно перефразировать: абсолютное изменение температуры по времени в отдельно взятой точке не должно превышать абсолютной разности температуры в этой точке и средней температуры окружающих точек.

Определения

В предыдущем разделе мы познакомились с методами решения ДУЧП на примере уравнения теплопроводности. Здесь мы рассмотрим основные определения, классификацию уравнений, а также определим, какое место в этой классификации занимает расмотренное ранее уравнение.

Маршевой (эволюционной) задачей называется задача, в которой решение ищется в незамкнутой области. Для того чтобы область была незамкнута, достаточно, чтобы одна из переменных не была ограничена сверху или снизу. Такая переменная называется маршевой. В расмотренной ранее задаче с уравнением теплопроводности и начальными условиями маршевой переменной является время. Решение таких задач строится путем моделирования физического процесса от начального момента времени до некоторого конечного, в котором нам нужно узнать значение искомой функции.

Явным разностным уравнением является уравнение, в котором значение искомой функции при значении маршевой переменной t+Δtt + \Delta t явно выражается через значения этой функции при значении маршевой переменной tt. В случае, когда время является маршевой переменной, это означает, что последующие во времени значения искомой функции опререляются через предыдущие. Иначе, уравнение является неявным.

Для явных уравнений на каждом шаге новое значение искомой функции вычисляется по явной формуле, а для неявных необходимо решить систему уравнений. Разностное уравнение теплопроводности является явным.

Начальными условиями называются дополнительные уравнения, которые включаются в решаемую задачу и которые задают значение искомой функции, которое соответствует начальному значению маршевой переменной. В случае времени это значение функции в начальный момент времени. Как правило, начальные условия — это формулы или константы, а не полноценные уравнения.

Граничными условиями называются дополнительные уравнения, которые включаются в решаемую задачу и которые задают значение искомой функции на границах области, в которой ищется решение. Граничные условия, как правило, записываются в виде уравнений. Если это уравнение содержит только искомую функцию, то это условие Дирихле. Если это уравнение содержит только производную функции, то это условие фон Неймана. Если же уравнение содержит и то, и другое, то это смешанное условие (или смешанная задача).

Используя эти определения, можно сказать, что задача, которую мы решили в предыдущем разделе, это маршевая задача с явным разностным уравнением теплопроводности и начальными условиями.

Уравнение переноса

Это уравнение описывает перемещение жидкости или газа, а также перенос его свойств (температуры, влажности, солености и т.п.) за счет этого перемещения.

ρt+(ρυ)=0.\rho_t + \nabla\cdot(\rho \vec\upsilon) = 0.

Здесь ρ\rho — это плотность жидкости, а υ\vec\upsilon — это вектор скорости жидкости. В такой записи это уравнение называется уравнением непрерывности. Оно показывает, что масса жидкости, которая покинула некоторый конечный объем, равна массе жидкости, которая прибыла в этот объем: закон сохранения массы для конечного объема. В одномерном случае уравнение принимает вид

ρt+υρx=0\rho_t + \upsilon\rho_x = 0

Запишем разностное уравнение, используя разность вперед по времени и центральную разность по пространству.

ρi+1,j=ρi,jυΔt2Δx(ρi,j+1ρi,j1).\rho_{i+1,j} = \rho_{i,j} - \upsilon\frac{\Delta t}{2\Delta x} (\rho_{i,j+1} - \rho_{i,j-1}).

Проверим уравнение на устойчивость с помощью метода фон Неймана.

Ai+1exp(iλx)=Aiexp(iλx)AiυΔt2Δx(exp(iλ(x+Δx))exp(iλ(xΔx)))Ai+1Ai=1υΔtΔxisin(λΔx)11+υ2(Δt)2(Δx)2sin2(λΔx)1A_{i+1}\exp(i\lambda x) = A_i\exp(i\lambda x) - A_i\upsilon\frac{\Delta t}{2\Delta x} (\exp(i\lambda (x+\Delta x)) - \exp(i\lambda (x-\Delta x))) \Rightarrow \\ \left|\frac{A_{i+1}}{A_i}\right| = \left|1 - \upsilon\frac{\Delta t}{\Delta x} i\sin(\lambda\Delta x)\right| \leq 1 \Rightarrow \\ 1 + \upsilon^2\frac{(\Delta t)^2}{(\Delta x)^2} \sin^2(\lambda\Delta x) \leq 1

Получившееся условие выполняется только в тривианльных случаях (когда скорость равна нулю): наше уравнение безусловно неустойчиво.

Проверим уравнение на сходимость с помощью рядов Тейлора. Раскладываем в ряд Тейлора исходную функцию в окрестности точки, соответствующей индексам (i,j)(i,j).

ρi+1,j=ρi,j+ρtΔt+122ρt2(Δt)2+O((Δt)3),ρi,j+1=ρi,j+ρxΔx+122ρx2(Δx)2+O((Δx)3),ρi,j1=ρi,jρxΔx+122ρx2(Δx)2+O((Δx)3).\rho_{i+1,j} = \rho_{i,j} + \frac{\partial \rho}{\partial t} \Delta t + \frac{1}{2} \frac{\partial^2 \rho}{\partial t^2} (\Delta t)^2 + O((\Delta t)^3), \\ \rho_{i,j+1} = \rho_{i,j} + \frac{\partial \rho}{\partial x} \Delta x + \frac{1}{2} \frac{\partial^2 \rho}{\partial x^2} (\Delta x)^2 + O((\Delta x)^3), \\ \rho_{i,j-1} = \rho_{i,j} - \frac{\partial \rho}{\partial x} \Delta x + \frac{1}{2} \frac{\partial^2 \rho}{\partial x^2} (\Delta x)^2 + O((\Delta x)^3).

Подставляем получившиеся выражения в разностное уравнение.

ρtΔt+122ρt2(Δt)2=υΔt2Δx2Δxρxρt+υρx=122ρt2Δt.\frac{\partial \rho}{\partial t} \Delta t + \frac{1}{2} \frac{\partial^2 \rho}{\partial t^2} (\Delta t)^2 = -\upsilon\frac{\Delta t}{2\Delta x}2\Delta x\frac{\partial \rho}{\partial x} \Rightarrow \\ \frac{\partial \rho}{\partial t} + \upsilon\frac{\partial \rho}{\partial x} = -\frac{1}{2} \frac{\partial^2 \rho}{\partial t^2} \Delta t.

Из получившихся результатов делаем вывод, что разностное уравнение сходится к дифференциальному, но оно безусловно неустойчиво.

Как же сделать его устойчивым? Заменим центральную разность на разность назад.

ρi+1,j=ρi,jυΔtΔx(ρi,jρi,j1).\rho_{i+1,j} = \rho_{i,j} - \upsilon\frac{\Delta t}{\Delta x} (\rho_{i,j} - \rho_{i,j-1}).

Проверим на устойчивость с помощью метода фон Неймана.

Ai+1exp(iλx)=Aiexp(iλx)AiυΔtΔx(exp(iλx)exp(iλ(xΔx)))Ai+1Ai=1υΔtΔx+υΔtΔx(cos(λΔx)isin(λΔx))1υΔtΔx(υΔtΔx1)(cos(λΔx)+1)00υΔtΔx1.A_{i+1}\exp(i\lambda x) = A_i\exp(i\lambda x) - A_i\upsilon\frac{\Delta t}{\Delta x} (\exp(i\lambda x) - \exp(i\lambda (x-\Delta x))) \Rightarrow \\ \left|\frac{A_{i+1}}{A_i}\right| = \left|1 - \upsilon\frac{\Delta t}{\Delta x} + \upsilon\frac{\Delta t}{\Delta x} \left(\cos(\lambda\Delta x) - i\sin(\lambda\Delta x)\right)\right| \leq 1 \Rightarrow \\ \upsilon\frac{\Delta t}{\Delta x} \left(\upsilon\frac{\Delta t}{\Delta x} - 1\right) (\cos(\lambda\Delta x) + 1) \leq 0 \Rightarrow \\ 0 \leq \upsilon\frac{\Delta t}{\Delta x} \leq 1.

Это условие выполняется для положительной υ\upsilon. Если же скорость отрицательная, то для устойчивости необходимо использовать разность вперед по пространству.

Теперь проверим сходимость с помощью рядов Тейлора.

ρtΔt+122ρt2(Δt)2=υΔtΔx(Δxρx12(Δx)22ρx2)ρt+υρx=122ρt2Δt+12υΔx2ρx2.\frac{\partial \rho}{\partial t} \Delta t + \frac{1}{2} \frac{\partial^2 \rho}{\partial t^2} (\Delta t)^2 = -\upsilon\frac{\Delta t}{\Delta x}\left(\Delta x\frac{\partial \rho}{\partial x} - \frac{1}{2}(\Delta x)^2\frac{\partial^2 \rho}{\partial x^2}\right)\Rightarrow \\ \frac{\partial \rho}{\partial t} + \upsilon\frac{\partial \rho}{\partial x} = -\frac{1}{2} \frac{\partial^2 \rho}{\partial t^2} \Delta t + \frac{1}{2}\upsilon\Delta x \frac{\partial^2 \rho}{\partial x^2}.

Делаем вывод, что разностное уравнение сходится к дифференциальному при уменьшении размеров шагов по времени и по пространству.

Итого получается следующее разностное уравнение.

{ρi+1,j=ρi,jυΔtΔx(ρi,jρi,j1)if υ>0,ρi+1,j=ρi,jυΔtΔx(ρi,j+1ρi,j)if υ<0.\begin{cases} \rho_{i+1,j} = \rho_{i,j} - \upsilon\frac{\Delta t}{\Delta x} (\rho_{i,j} - \rho_{i,j-1}) \qquad \text{if } \upsilon > 0, \\ \rho_{i+1,j} = \rho_{i,j} - \upsilon\frac{\Delta t}{\Delta x} (\rho_{i,j+1} - \rho_{i,j}) \qquad \text{if } \upsilon < 0. \end{cases}

Как было получено уравнение переноса? Перенос жидкости или какого-либо ее свойства можно описать так: изменение массы в некотором объеме равно количеству массы, пришедшей из соседних объемов или ушедшей в соседние объемы посредством напраленного движения жидкости. Математически это можно записать как

mi+1,jmi,jизменение массы по времени=α(mi,j1mi,j)обмен массой с левой ячейкой.\underbrace{m_{i+1,j} - m_{i,j}}_{\text{изменение массы по времени}} = \underbrace{\alpha (m_{i,j-1}-m_{i,j})}_{\text{обмен массой с левой ячейкой}}.

Здесь предполагается, что масса движется только в одну сторону, поэтому из одной соседней ячейки она выходит, а в другую наоборот входит.

🌊🌊🌊

Итого, мы узнали, что ДУЧП является обобщением ОДУ на многомерное пространство. ДУЧП решаются путем преобразования в разностную схему. Разностная схема должна сходиться к исходному уравнению, что можно проверить, разложив в ряд Тейлора значения искомой функции в разных точках и удостоверившись, что остаточные члены стремятся к нулю при стремлении к нулю размера сетки. Разностная схема должна быть устойчива, что можно проверить методом фон Неймана, удостоверившись, что амплитуда решения уменьшается со временем. Также разностные схемы являются интуитивной записью физических законов, в которых бесконечно малые величины заменены на конечные величины. Физическая интуиция также позволяет объяснить условия устойчивости разностной схемы законами сохранения, которые должны соблюдаться в природе.

Уравнение переноса и диффузии можно записать как одно уравнение, и в таком виде оно является левой частью уравнения Навье—Стокса, которое описывает движение жидкости.

Задания

Уравнение переноса1 балл

Решите одномерное уравнение переноса для следующих начальных и граничных условий.

ρ(0,x)=exp(x2),ρ(t,xmin)=ρ(t,xmax).\rho(0,x) = \exp(-|x|^2), \\ \rho(t,x_\text{min}) = \rho(t,x_\text{max}).

Уравнение диффузии2 балла

Решите двухмерное (x и y) уравнение диффузии для следующих начальных и граничных условий.

ρ(0,x,y)=exp((x2+y2)),ρ(t,xmin,y)=ρ(t,xmax,y),ρ(t,x,ymin)=ρ(t,x,ymax).\rho(0,x,y) = \exp(-(x^2+y^2)), \\ \rho(t,x_\text{min},y) = \rho(t,x_\text{max},y), \\ \rho(t,x,y_\text{min}) = \rho(t,x,y_\text{max}). \\

Уравнение переноса-диффузии3 балла

Решите двухмерное (x и y) уравнение конвекции-диффузии (сумма уравнений переноса и диффузии) для следующих начальных и граничных условий.

ρ(0,x,y)=exp((x2+y2)),ρ(t,xmin,y)=ρ(t,xmax,y),ρ(t,x,ymin)=ρ(t,x,ymax).\rho(0,x,y) = \exp(-(x^2+y^2)), \\ \rho(t,x_\text{min},y) = \rho(t,x_\text{max},y), \\ \rho(t,x,y_\text{min}) = \rho(t,x,y_\text{max}). \\

Видео

2023

  • 00:00 Введение.
  • 02:47 Уравнение диффузии: разностная схема.
  • 10:47 Уравнение диффузии: проверка на устойчивость.
  • 18:45 Уравнение диффузии: проверка на сходимость.
  • 24:17 Уравнение диффузии: физическая интуиция.
  • 32:03 Начальные и граничные условия, терминология.
  • 35:49 Уравнение переноса: схема, устойчивость и сходимость.
  • 44:47 Уравнение переноса: физическая интуиция.
  • 47:01 Заключение.
  • 50:08 Задания.
Запись лекции 21.04.2023.

2022

  • 00:00:00 Введение.
  • 00:02:32 Уравнение диффузии: разностная схема.
  • 00:10:45 Уравнение диффузии: проверка на устойчивость.
  • 00:21:03 Уравнение диффузии: проверка на сходимость.
  • 00:31:05 Уравнение диффузии: физическая интуиция.
  • 00:44:06 Начальные и граничные условия, терминология.
  • 00:52:50 Уравнение переноса: схема, устойчивость и сходимость.
  • 01:06:00 Уравнение переноса: физическая интуиция.
  • 01:16:05 Видео с объяснение уравнения теплопроводности.
  • 01:16:49 Заключение.
  • 01:19:40 Задания.
Запись лекции 21.04.2022.

Доска

2023

partial-differential-equations-regular-2023 thumbnail.
Запись доски 21.04.2023.

2022

partial-differential-equations-regular thumbnail.
Запись доски 21.04.2022.