Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 3 часа [ Летнее время ]


Принципы построения разностных схем для уравнений в частных производных

Принципы построения разностных схем
для уравнений в частных производных


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


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


\mathcal{L}\,u=f,
(8.9)

где {u} — искомая функция, определенная на множестве \overline{D}= D\cup \gamma;~ D — область пространства независимых переменных с границей \Gamma;~f — заданная функция, \mathcal{L} — линейный дифференциальный оператор. Предполагается, что все производные, входящие в дифференциальное уравнение, перенесены в левую часть, а остальные функции образуют правую часть; дополнительные условия (начальные и краевые) также включены в оператор \mathcal{L} и правую часть f. Например, начально-краевая задача для уравнения переноса (8.5) запишется в виде (8.9), если положить


\mathcal{L}\,u= \begin{cases}u_t+u_x,& 0<x<L,~ 0<t<T,\\ u(x,0),& 0 \leqslant x \leqslant L,\\ u(0,t),& 0<t \leqslant T;\end{cases}\quad f=\begin{cases}0,& 0<x<L,~ 0<t<T,\\ \psi(x),& 0 \leqslant x \leqslant L,\\ \varphi(t),& 0<t \leqslant T.\end{cases}

Для численного решения задачи вводится сетка D_h=\{M_k\} — конечное множество точек M_h (узлов сетки), принадлежащих \overline{D}, плотность размещения которых характеризуется параметром h — шагом сетки. В общем случае h — вектор, компонентами которого являются шаги по всем независимым переменным решаемой задачи, с длиной |h|. Обычно сетка задается так, что при |h|\to0 множество D_h стремится заполнить множество \overline{D}= D\cup \Gamma.


Для определенности далее рассматривается некоторая дифференциальная задача с двумя независимыми переменными x и t. Для простоты изложения будем предполагать, что множество D представляет собой прямоугольник длины L и высоты T, ограниченный отрезками прямых, параллельных осям Ox и Ot (рис. 8.3), т.е. задана двумерная прямоугольная сетка D_h= \{x_i, t^n\}, где x_{i}=ih,~ 0 \leqslant i \leqslant I; t^n=n\tau,~ 0 \leqslant n \leqslant N; N,\,I — целые положительные числа; h,\,\tau — величины шагов по пространству и времени (для простоты принимаются постоянными); I\,h=L,~ N\,\tau=T. Такая сетка называется равномерной (регулярной). Здесь можно положить |h|= \sqrt{h^2+\tau^2} или |h|= \sqrt{h^2+\tau}. Узлы, принадлежащие промежуткам \{0 \leqslant x \leqslant L,\, t=0\}, \{x=0,\, 0 \leqslant t \leqslant T\}, \{x=L,\, 0 \leqslant t \leqslant T\}, \{t=T,\, 0<x<T\}, называются граничными, а остальные -внутренними. Слоем \{x_{i},t^n\},~ i=0,\ldots,I-1 называется множество всех узлов сетки, имеющих одну и ту же временную координату t^n.


Двумерная прямоугольная сетка

Функции, определенные в точках сетки D_{h}, называются сеточными. Введем сеточную функцию u_{h}= \bigl\{u_{i}^n= u(x_{i}, t^n),\, 0 \leqslant i \leqslant I,\, 0 \leqslant n \leqslant N\bigr\}, которая является сеточным представлением решения исходной (дифференциальной) задачи или точным решением дифференциальной задачи в узлах сетки. Как правило, вычислить uh не удается, поэтому находят другую сеточную функцию \widehat{u}_h\cong u_h приближенно совпадающую с точным решением в узлах сетки. Она вычисляется как решение разностной схемы


\mathcal{L}_h\, \widehat{u}_h=f_h,
(8.10)

в некотором смысле соответствующей задаче (8.9). Здесь \mathcal{L}_h — разностный оператор, аппроксимирующий линейный дифференциальный оператор \mathcal{L} (он формируется в результате аппроксимации частных производных, входящих в \mathcal{L}, соответствующими конечно-разностными соотношениями); f_h — сеточная функция, возникающая в результате замены правой части уравнения (8.9) значениями в узлах сетки. Таким образом, под разностной схемой понимается совокупность разностных уравнений, аппроксимирующих основное дифференциальное уравнение во всех внутренних узлах сетки и дополнительные условия (начальные и краевые) — в граничных узлах. Разностную схему по аналогии с дифференциальной задачей будем называть разностной задачей.


Обозначим линейное нормированное пространство, образованное совокупностью функций \widehat{u}_h, определенных на D_h, через U_h, а пространство, образованное совокупностью функций f_h, через F_h. Пусть в этих пространствах введены нормы \|\cdot\|_{U_h},\|\cdot\|_{F_h}. Если при |h|\to0 выполняется условие


\bigl\|\widehat{u}_h-u_h\bigr\|_{U_h}\to0,
(8.11)

то решение разностной задачи сходится к решению дифференциальной, а разностная схема называется сходящейся. Если существуют такие постоянные p>0,~ C>0, не зависящие от |h|, что выполняется неравенство \bigl\|\widehat{u}_h-u_h\bigr\|_{U_h} \leqslant C\,|h|^p, то схема имеет p-й порядок сходимости (порядок точности).


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


Функция \delta f_h в выражении \mathcal{L}_hu_h= f_h+\delta f_h, получающаяся в результате подстановки сеточного представления u_h в разностную схему (8.10), называется погрешностью аппроксимации.


Разностная задача (8.10) аппроксимирует дифференциальную задачу (8.9) на решении u(x,t), если \|\delta f_h\|_{F_h}\to0 при |h|\to0. Если существуют такие постоянные k>0,\, M>0, не зависящие от |h|, что выполняется неравенство


\|\delta f_h\|_{F_h}\leqslant M\cdot |h|^k,
(8.12)

то разностная схема имеет k-й порядок аппроксимации.


Одновременное выполнение условия \|\delta f_h\|_{F_h}= O(\tau^p+ h^q) означает, что схема имеет p-й порядок аппроксимации по времени и q-й по пространству. В случае трех независимых переменных аналогичное условие имеет вид \|\delta f_h\|_{F_h}= O(\tau^p+ h_x^q+ h_y^r).


Разностная схема называется устойчивой, если существует постоянная K>0, не зависящая от |h|, что при любых f_h\in F_h справедливы условия:

1) разностная схема (8.10) имеет единственное решение;

2) \|\widehat{u}_h\|_{U_h} \leqslant K\cdot \|f_h\|_{F_h}.


Замечания


1. Свойство устойчивости какой-либо задачи означает, что при небольшом изменении исходных данных решение изменяется мало. Таким образом, для исследования устойчивости необходимо рассматривать уравнение, которому удовлетворяет погрешность, возникающая в результате возмущения исходных данных. Однако в случае линейного оператора структура уравнения для погрешности та же, что и исходного уравнения (8.9). Действительно, рассмотрим уравнение \mathcal{L}_h \widehat{z}_h= \widetilde{f}_h, отличающееся от (8.10) правой частью. Вычитая его из (8.10), получаем уравнение \mathcal{L}_h \varepsilon_h= \delta f_h, описывающее изменение пофешности \varepsilon_h= \widehat{u}_h-\widehat{z}_h в силу наличия возмущения \delta f_n=f_h-\widetilde{f}_h, правой части. Тогда если выполнено условие 2) определения устойчивости, то одновременно \|\varepsilon_h\|_{U_h} \leqslant K\,\|\delta f_h\|_{F_k} и, следовательно, \|\varepsilon_h\|_{U_h}\to 0 при \|\delta f_h\|_{F_k}\to 0. Это означает, что задача устойчива.


2. Свойство устойчивости связано с понятием норм, вводимых в пространствах U_h,\,F_h. Возможны случаи, когда условие 2) будет выполняться для одних норм и не выполняться для других. Если это условие не выполняется ни при каком разумном выборе норм, то схема неустойчива.

Разностные схемы, устойчивые при любом соотношении шагов h и \tau, называются абсолютно устойчивыми.

Разностные схемы, неустойчивые при любом соотношении шагов h и \tau, называются абсолютно неустойчивыми.

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

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


Теорема. Пусть дифференциальная задача (8.9) поставлена корректно, разностная схема (8.10) устойчива, аппроксимирует дифференциальную задачу (8.9) и имеет k-й порядок аппроксимации. Тогда решение разностной задачи сходится к решению дифференциальной задачи, причем порядок точности совпадает с порядком аппроксимации.


Установить устойчивость разностной схемы с использованием определения на практике затруднительно. Поэтому предложен ряд методов, позволяющих получить необходимые (иногда необходимые и достаточные) условия устойчивости разностных схем: спектральный признак устойчивости, метод гармоник Фурье, принцип максимума, метод операторных неравенств. В данной книге эти методы не рассматриваются.


Схема называется явной, если оператор \mathcal{L} аппроксимируется с использованием известных значений функции \widehat{u}(x_{i},t^n) на n-м слое, а аппроксимирующее уравнение содержит только одно неизвестное значение функции на следующем (n+1)-м слое, которое нетрудно выразить явно. Схема называется неявной, если оператор аппроксимируется с использованием нескольких неизвестных значений искомой функции на (n+1) -м слое. Узлы сетки D_h, значения в которых используются при аппроксимации оператора \mathcal{L}, образуют шаблон. При изображении шаблона светлыми кружочками обозначаются узлы, соответствующие всем слоям с известными значениями функции, а зачерненными — узлы с неизвестными значениями функции, подлежащими определению. Шаблон, содержащий p узлов, называется p-точечным.


Получим некоторые разностные формулы для аппроксимации частных производных первого и второго порядков, входящих в уравнения видов (8.3),(8.4) и в соответствующие дифференциальные задачи, рассмотренные далее.


Пусть имеется функция u(x,y), имеющая непрерывные производные по всем переменным до (k+1)-го порядка включительно. Выберем узел (xhtn) сетки D_h. Сначала рассмотрим разности в направлении x. Применим формулу Тейлора разложения функции u(x,t^n) одной переменной x в окрестности выбранного узла (x_{i},t^n).


При k=1 имеем


u(x_{i}+h,t^n)= u(x_{i},t^n)+ u_x(x_{i},t^n)+ u_{xx}(\xi_1,t^n)\frac{h^2}{2},\quad \xi_1\in (x_{i},x_{i}+h),
(8.13)

u(x_{i}-h,t^n)= u(x_{i},t^n)-u_x(x_{i},t^n)+ u_{xx}(\xi_2,t^n)\frac{h^2}{2},\quad \xi_2\in (x_{i}-h,x_{i}).
(8.14)

Из (8.13) следует u_x(x_{i},t^n)= \frac{u(x_{i}+h,t^n)-u(x_{i},t^n)}{h}-u_{xx}(\xi_1,t^n)\frac{h}{2}. Очевидно, справедлива оценка


\left|-u_{xx}(\xi_1,t^n)\frac{h}{2}\right| \leqslant \frac{h}{2}\cdot \max_{x\in[x_{i},x_{i}+h]}\bigl|u_{xx}(\xi_1,t^n)\bigr|= \frac{h}{2}\cdot M_2,

где M_2= \max_{x\in[x_{i},x_{i}+h]}\bigl|u_{xx}(\xi_1,t^n)\bigr|. Отсюда получаем формулу (аппроксимационный оператор)


\widehat{u}_x(x_{i},t^n)= \frac{u(x_{i}+h,t^n)-u(x_{i},t^n)}{h}\,,\quad \left(\frac{h}{2}\,M_2\right)
(8.15)

которая аппроксимирует частную производную их с первым порядком аппроксимации на двухточечном шаблоне. Она называется правой разностью. Аналогично из (8.14) получается формула


\widehat{u}_x(x_{i},t^n)= \frac{u(x_{i},t^n)-u(x_{i}-h,t^n)}{h}\,,
(8.16)

также аппроксимирующая частную производную u_x с первым порядком аппроксимации на двухточечном шаблоне. Она называется левой разностью.


Получим еще одну формулу для аппроксимации частной производной их. При k=2 из формулы Тейлора (В. 16)–(В. 18) получаем


u(x_{i}+h,t^n)= u(x_{i},t^n)+ u_x(x_{i},t^n)h+ u_{xx}(x_{i},t^n)\frac{h^2}{2}+ u_{xxx}(\xi_1,t^n)\frac{h^3}{6}\,,~ \xi_1\in (x_{i},x_{i}+h),
(8.17)

u(x_{i}-h,t^n)= u(x_{i},t^n)-u_x(x_{i},t^n)h+ u_{xx}(x_{i},t^n)\frac{h^2}{2}-u_{xxx}(\xi_2,t^n)\frac{h^3}{6}\,,~ \xi\in (x_{i}-h,x_{i}).
(8.18)

Вычитая (8.18) из (8.17), имеем


u(x_{i}+h,t^n)-u(x_{i}-h,t^n)= 2u_x(x_{i},t^n)h+ \bigl[u_{xxx}(\xi_1,t^n)+ u_{xxx}(\xi_2,t^n)\bigr] \frac{h^3}{6}\,.

Но, согласно утверждению В.1, существует точка \xi\in (x_{i}-h,x_{i}+h), что \frac{u_{xxx}(\xi_1,t^n)+ u_{xxx}(\xi_2,t^n)}{2}=u_{xxx}(\xi,t^n). Поэтому


u_x(x_{i},t^n)= \frac{u(x_{i}+h,t^n)-u(x_{i}-h,t^n)}{2h}-u_{xxx}(\xi,t^n)\frac{h^2}{6},\quad \xi\in (x_{i}-h,x_{i}+h),

или


\widehat{u}_x(x_{i},t^n)= \frac{u(x_{i}+h,t^n)-u(x_{i}-h,t^n)}{2h}\quad \left(\frac{h^2}{6}\,M_3\right)\!.
(8.19)

где M_3= \max_{x\in [x_{i}-h,x_{i}+h]}\bigl|u_{xxx}(\xi,t^n)\bigr|. Эту формулу называют центральной разностью, которая аппроксимирует частную производную u_x со вторым порядком аппроксимации на трехточечном шаблоне. Обозначая u(x_{i},t^n)=u_{i}^n, u(x_{i}+h,t^n)=u_{i+1}^n, u(x_{i}-h,t^n)=u_{i-1}^n, перепишем (8.15), (8.16), (8.19) в форме


\widehat{u}_x(x_{i},t^n)= \frac{u_{i+1}^n-u_{i}^n}{h}\,,
(8.20)

\widehat{u}_x(x_{i},t^n)= \frac{u_{i}^n-u_{i-1}^n}{h}\,,
(8.21)

\widehat{u}_x(x_{i},t^n)= \frac{u_{i+1}^n-u_{i-1}^n}{h}\,.
(8.22)

Теперь получим формулы для аппроксимации производных второго порядка. При А: = 3 формула Тейлора (В. 16)–(В. 18) имеет вид


\begin{gathered}u(x_{i}+h,t^n)= u(x_{i},t^n)+ u_x(x_{i},t^n)h+ u_{xx}(x_{i},t^n) \frac{h^2}{2}+ u_{xxx}(x_{i},t^n) \frac{h^3}{6}+ u_{xxxx}(\xi_1,t^n) \frac{h^4}{24}\,,\\ \xi_1\in (x_{i},x_{i}+h),\end{gathered}
(8.23)

\begin{gathered}u(x_{i}-h,t^n)= u(x_{i},t^n)-u_x(x_{i},t^n)h+ u_{xx}(x_{i},t^n) \frac{h^2}{2}-u_{xxx}(x_{i},t^n) \frac{h^3}{6}+ u_{xxxx}(\xi_2,t^n) \frac{h^4}{24}\,,\\ \xi_2\in (x_{i}-h, x_{i}),\end{gathered}
(8.23)

Сложим (8.23) и (8.24):


u(x_{i}+h,t^n)+u(x_{i}-h,t^n)= 2u(x_{i},t^n)+ u_{xx}(x_{i},t^n)h^2+ \bigl[u_{xxxx}(\xi_1, t^n)+ u_{xxxx}(\xi_2,t^n)\bigr] \frac{h^4}{24}\,.

Поскольку, согласно утверждению В.1, \frac{u_{xxxx}(\xi_1, t^n)+ u_{xxxx}(\xi_2,t^n)}{2}= u_{xxxx}(\xi, t^n), где \xi\in (x_{i}-h, x_{i}+h), то перепишем полученное равенство в виде


u_{xx}(x_{i},t^n)= \frac{u(x_{i}+h,t^n)-2u(x_{i},t^n)+ u(x_{i}-h,t^n)}{h^2}-u_{xxxx}(\xi,t^n)\frac{h^2}{12}

или окончательно


\widehat{u}_{xx}(x_{i},t^n)= \frac{u(x_{i}+h,t^n)-2u(x_{i},t^n)+ u(x_{i}-h,t^n)}{h^2}\quad \left(\frac{h^2}{12}\,M^4\right)\!,
(8.25)

где M_4= \max_{x\in [x_{i}-h, x_{i}+h]} \bigl|u_{xxxx}(x,t^n)\bigr|. Формула (8.25), называемая центральной разностью второго порядка, аппроксимирует u_{xx} со вторым порядком аппроксимации и может быть записана аналогично (8.20)–(8.22):


\widehat{u}_{xx}(x_{i},t^n)= \frac{u_{i+1}^n-2u_{i}^n+u_{i-1}^n}{h^2}\,.
(8.26)

Так же получаются разности в узле (x_{i},t^n) в направленииt\colon


\widehat{u}_{t}(x_{i},t^n)= \frac{u(x_{i},t^n+\tau)-u(x_{i},t^n)}{\tau},\qquad \widehat{u}_{t}(x_{i},t^n)= \frac{u_{i}^{n+1}-u_{i}^n}{\tau}\,,
(8.27)

\widehat{u}_{t}(x_{i},t^n)= \frac{u(x_{i},t^n)-u(x_{i},t^n-\tau)}{\tau},\qquad \widehat{u}_{t}(x_{i},t^n)= \frac{u_{i}^{n}-u_{i}^{n-1}}{\tau}\,,
(8.28)

\widehat{u}_{t}(x_{i},t^n)= \frac{u(x_{i},t^n+\tau)-u(x_{i},t^n-\tau)}{2\tau},\qquad \widehat{u}_{t}(x_{i},t^n)= \frac{u_{i}^{n+1}-u_{i}^{n-1}}{2\tau}\,,
(8.29)

\widehat{u}_{tt}(x_{i},t^n)= \frac{u(x_{i},t^n+\tau)-2u(x_{i},t^n)+ u(x_{i},t^n-\tau)}{\tau^2},\quad \widehat{u}_{tt}(x_{i},t^n)= \frac{u_{i}^{n+1}-2u_{i}^n+u_{i}^{n-1}}{\tau^2}\,.
(8.30)

Формулы (8.27),(8.28) аппроксимируют производную u_t с первым порядком аппроксимации, а (8.29),(8.30) аппроксимируют соответствующие производные со вторым порядком аппроксимации. Все вышеприведенные формулы записаны на n-м временном слое. При необходимости (например, при конструировании неявных схем) вместо n-го используется (n+1)-й и (n-1)-й временные слои.


Теперь получим выражения для аппроксимации смешанной производной. Применим (8.27) к оператору, заданному (8.15):


\begin{aligned}\frac{\partial }{\partial t}\! \left(\frac{\partial u(x_{i},t^n)}{\partial x}\right)&= \frac{1}{\tau}\! \left(\frac{u(x_{i}+h,t^n+\tau)-u(x_{i},t^n+\tau)}{h}-\frac{u(x_{i}+h,t^n)-u(x_{i},t^n)}{h}\right)=\\ &=\frac{u(x_{i}+h,t^n+\tau)-u(x_{i},t^n+\tau)-u(x_{i}+h,t^n)+ u(x_{i},t^n)}{h\,\tau} \end{aligned}

или

\widehat{u}_{xt}(x_{i},t^n)= \frac{u_{i+1}^{n+1}-u_{i}^{n+1}-u_{i+1}^{n}+ u_{i}^{n}}{h\,\tau}\,.
(8.31)

Получим еще одну формулу. Для этого применим (8.29) к функции, заданной (8.19):


\begin{aligned}\frac{\partial }{\partial t}\! \left(\frac{\partial u(x_{i},t^n)}{\partial x}\right)&= \frac{1}{2\tau}\! \left(\frac{u(x_{i}+h,t^n+\tau)-u(x_{i}-h,t^n+\tau)}{2h}-\frac{u(x_{i}+h,t^n-\tau)-u(x_{i}-h,t^n-\tau)}{2h}\right)=\\ &=\frac{u(x_{i}+h,t^n+\tau)-u(x_{i}-h,t^n+\tau)-u(x_{i}+h,t^n-\tau)-u(x_{i}+h,t^n-\tau)+u(x_{i}-h,t^n-\tau)}{4h\,\tau} \end{aligned}

или

\widehat{u}_{xt}(x_{i},t^n)= \frac{u_{i+1}^{n+1}-u_{i-1}^{n+1}-u_{i+1}^{n-1}+ u_{i-1}^{n-1}}{4h\,\tau}\,.
(8.32)

Можно показать, что (8.31) аппроксимирует производную u_{xt} с первым порядком, а (8.32) — со вторым порядком аппроксимации.


Замечания


1. Поскольку при численных расчетах вместо точного решения u(x_{i},t^n) в узлах (x_{i},t^n) известно не точное, а приближенное решение \widehat{u} (x_{i},t^n), то в формулах (8.20)-(8.22),(8.26)–(8.32) следует ставить знак ^ над {u}.

2. Здесь рассмотрены аппроксимационные формулы на равномерной сетке. С использованием (5.7),(5.10) можно построить аналогичные формулы при неравномерной сетке.


В заключение раздела сформулируем основные этапы решения задач с линейными дифференциальными уравнениями в частных производных разностными методами:

1. Выбрать сетку D_h, соответствующую расчетной области \overline{D}.

2. Заменить дифференциальные операторы в уравнении и дополнительных условиях разностными, а функции — их сеточными представлениями, т.е. построить разностную схему. Установить ее порядок аппроксимации.

3. Исследовать сходимость разностной схемы, проверив устойчивость схемы.

4. Задать величины шагов сетки по всем независимым переменным, обеспечивающие сходимость. Решить разностную задачу одним из известных методов. В результате находятся значения \widehat{u}(x_{i}, t^n) приближенного решения в узлах сетки.

Математический форум (помощь с решением задач, обсуждение вопросов по математике).
Кнопка "Поделиться"

Часовой пояс: UTC + 3 часа [ Летнее время ]


Яндекс.Метрика

Copyright © 2010-2019 MathHelpPlanet.com. All rights reserved