3. Аппроксимация граничных условий.
Решая методом сеток краевую задачу для дифференциального уравнения в частных производных, мы заменяем заданную область О с границей на которой заданы граничные условия, сеточной областью О с границей
состоящей из граничных узлов. Как правило, граничные узлы не будут находиться на Поэтому возникает задача замены граничных условий для дифференциального уравнения граничными условиями для разностного уравнения, составляемого только для внутренних узлов, даже в случае задачи Дирихле. При других типах краевых задач условия на границе будут содержать производные искомого решения, которые при переходе к разностным уравнениям должны быть заменены разностными отношениями. Таким образом, почти всегда приходится решать задачу аппроксимации граничных условий.
Остановимся сначала на задаче Дирихле, которую мы уже рассматривали в п. 1. Там был рассмотрен способ аппроксимации граничных условий, заключающийся в том, что значения искомого решения в граничных узлах мы задавали равными значениям заданной функции в точках ближайших к этим узлам. Иногда этот снос выполняют из точки ближайшей к данному граничному узлу, в направлении одной из осей координат. И в том и в другом случае мы вносим погрешность, величина которой зависит от близости границ Очевидно, что снесенное в граничный узел значение решения будет отличаться от значения истинного решения краевой задачи в этом узле на величину порядка расстояния этого узла от точки из которой происходит снос.
Только в том случае, когда все граничные узлы попадут на перенос граничных условий делать не нужно, и мы не вносим никакой дополнительной погрешности. Поэтому сетку целесообразно выбирать так, чтобы граница сеточной области О была бы возможно более близка к границе Для этого иногда целесообразно отказаться от квадратной сетки, а рассматривать прямоугольную сетку или треугольную сетку, или какую-либо другую. Если сетка уже выбрана, выполнен снос граничных условий и методом сеток найдено приближенное решение во всех внутренних узлах, то погрешность, полученная за счет сноса граничного условия, может быть уменьшена. Простейший способ уменьшения этой погрешности заключается в следующем.
По найденным значениям решения во внутренних узлах экстраполируем решение в точки границы из которых сносились граничные значения в граничные узлы. Находятся разности экстраполированных и заданных значений и в соответствии с ними вносятся поправки значений в граничных узлах. По этим поправкам находятся поправки решения во внутренних узлах путем решения соответствующих однородных разностных уравнений. Это требует повторных пересчетов.
На рис. 32 изображена геометрическая картина описанного процесса уточнения решения. На этом рисунке изображено сечение плоскостью параллельной оси и (в пространстве , пересекающейся с плоскостью по узловой линии, на которой
находится граничный узел Предположим, что в узел сносится значение граничной функции из точки где точка пересечения узловой линии с границей Пусть во внутренних узлах расположенных на узловой линии, найденные значения решения изображаются ординатами Экстраполируя по этим значениям в точку получим новое значение а, изображенное отрезком График интерполяционного многочлена изображен пунктирной линией. Разность экстраполированного значения и значения изображается отрезком Так как полученное экстраполяцией значение в больше то значение в граничном узле изменяем в сторону уменьшения, т. е. вносим поправку Находим поправки в каждом внутреннем узле путем решения однородных разностных уравнений с граничными условиями, равными соответствующим поправкам, внесенным в значения в граничных узлах, и, прибавляя эти поправки к ранее найденным значениям в соответствующих узлах, найдем новое приближение к искомому решению (отрезки ). Снова выполняем экстраполяцию и т. д.
Рис. 32.
Рис. 33.
Этого пересчета можно избежать, заранее составляя для значений функции в граничных узлах особые уравнения, отличные от уравнений во внутренних узлах. Достаточно удобный для практики способ составления этих уравнений предложил Коллатц. Каждому граничному узлу А (рис. 33) соответствует точка В, лежащая на пересечении границы с прямой, принадлежащей сети (узловая прямая), удаленная от А на расстояние а также ближайший к А внутренний узел сетки С, лежащий на продолжении отрезка (предполагается, что сетка достаточно мелкая). Тогда для узла А можно написать уравнение
Это уравнение означает, что значение получается линейной интерполяцией значений Получаемая при этом погрешность будет порядка
Используя при составлении уравнения для значения а в граничном узле большее количество узлов, можно получить более точную аппроксимацию.
Рис. 34.
Рис. 35.
Например, Микеладзе при решении задачи Дирихле для уравнения Пуассона предлагает следующие уравнения для определения значения в граничном узле 0:
(см. рис. 34)
(см. рис. 35)
Порядок погрешности будет в этом случае
Такого типа формулы могут быть получены с помощью второго способа аппроксимации дифференциального уравнения разностным, описанного в п. 2.
Рассмотрим теперь аппроксимацию других граничных условий, встречающихся при решении краевых задач для эллиптического дифференциального уравнения второго порядка. Наиболее общий вид линейных граничных условий следующий:
где заданные функции точки границы производная по нормали определенного направления (например, по внутренней нормали), причем предполагается, что При получим задачу Дирихле, при получим задачу Неймана. В зависимости от на различных кусках границы условия могут быть разные (на одних кусках заданы значения решения, на других кусках — значения нормальной производной, на третьих кусках — их линейная комбинация с переменными