11.4. Аппроксимация производных
Для метода конечных
разностей, рассматриваемого в следующем
разделе, потребуются аппроксимации
значений производных в узлах равномерной
сетки. Введем такую сетку на отрезке
:
.
Обозначим для краткости:
.
Для нахождения
значений производных воспользуемся
разложениями функции
в ряд Тейлора:
(11.18)
Используя выражения (11.18), можно построить разные приближенные формулы для производных. Из первого разложения можно получить следующую формулу для первой производной:
.
(11.19)
Эта формула называется правой производной и имеет первый порядок точности. Более подробно:
.
Здесь –
некоторая точка в интервале
.
Аналогично из второго разложения (11.18) найдем формулу для левой производной, также имеющей первый порядок точности:
.
(11.20)
Вычитая из первого разложения (11.18) второе, получим формулу центральной производной:
.
(11.21)
Формула центральной производной имеет второй порядок точности:
.
(11.22)
Сложив оба разложения (11.18), найдем аппроксимационную формулу для второй производной:
.
(11.23)
Формула для второй производной имеет второй порядок точности:
.
(11.24)
Найдем также более точную “одностороннюю” аппроксимацию первой производной. Для этого воспользуемся разложениями:
Вычтя из первой
формулы вторую и выделив из полученного
выражения
,
получим аппроксимационную формулу,
имеющую второй порядок точности:
.
(11.25)
В частности, в левой граничной точке отрезка имеем:
.
(11.26)
11.5. Метод конечных разностей
Вновь рассматриваем решение линейной краевой задачи для уравнения второго порядка:
, (11.27)
. (11.28)
Ищем решение дифференциального уравнения в узлах сетки с постоянным шагом:
Обозначим:
– значения соответствующих функций в
точке xi.
В узлах сетки вместо производных, входящих в уравнение (11.27), подставим приближенные формулы (11.21), (11.23):
, .
Получим систему уравнений:
.
(11.29)
Производные,
входящие в краевые условия, также заменим
подходящими аппроксимационными
формулами. В итоге получим систему
линейных алгебраических уравнений
относительно значений неизвестной
функции в узлах сетки
.
Таким образом, решение краевой задачи
для дифференциального уравнения сводим
к решению системы алгебраических
уравнений.
Рассмотрим вначале простые примеры.
Пример 11.7. Рассмотрим решение краевой задачи:
.
В примере 11.5. эта задача была решена методом редукции к задаче Коши. Решим теперь эту задачу методом конечных разностей.
Сетка включает
только три точки:
,
и неизвестным является только значение
.
Подставив в дифференциальное уравнение
аппроксимации производных, получим
уравнение для нахождения
:
.
Подставив сюда
все известные значения, найдем:
.
Вспомним, что точное значение равно
.
Пример 11.8. Методом конечных разностей найдем решение краевой задачи:
.
Эта задача также
решалась ранее методом редукции к задаче
Коши (см. пример 11.6). Требуется найти
всего лишь одно значение
.
Подставив в дифференциальное уравнение
аппроксимации производных, получим
уравнение для нахождения
:
.
Подставив сюда
все известные значения, найдем:
.
Вспомним, что точное значение равно
.
Вернемся теперь к более общему случаю. Пусть требуется найти решение краевой задачи в узлах сетки Систему алгебраических уравнений (11.29) приведем к виду
(11.30)
где
,
,
.
Рассмотрим вначале случай краевых условий, не включающих значений производных:
.
(11.31)
В
этом случае значения
известны, и для нахождения неизвестных
имеем систему линейных алгебраических
уравнений с трехдиагональной матрицей:
.
(11.32)
Решая
эту систему методом прогонки, исключим
нижнюю диагональ матрицы системы. Для
удобства в первом уравнении введем
новые обозначения:
.
Затем последовательно вычислим
коэффициенты:
В итоге приведем систему к виду:
После
этого проведем обратную прогонку –
вычисление значений
.
Из последнего уравнения найдем
.
Аналогично вычислим
.
На этом заканчиваются вычисления в случае простых краевых условий (11.31).
Рассмотрим теперь задачу с краевыми
условиями, включающими значения
производных (11.28). В этом случае необходимо
использовать формулы для аппроксимации
производных также и в краевых условиях.
В левом краевом условии, в точке
,
применим формулу
(11.26):
.
Получим уравнение:
(11.33)
В краевом условии в точке
используем аппроксимационную формулу
центральной производной
.
Получим уравнение:
(11.34)
Уравнения (11.33), (11.34) следует добавить к
системе уравнений (11.32). В результате
получим систему из
уравнений относительно неизвестных
.
В новой системе нарушен трехдиагональный
характер матрицы системы. Система
имеет почти трехдиагональную матрицу;
лишние ненулевые компоненты находятся
только в первой и последней строках
матрицы, соответствующих уравнениям
(11.33) и (11.34).
Приведем
матрицу системы к трехдиагональному
виду. Вначале исключим из уравнения
(11.33) слагаемое
.
Для этого, умножим первое из уравнений
(11.30)
на
и прибавим полученное к уравнению
(11.33). Приведем тем самым уравнение
(11.33) к виду:
,
(11.35)
где
Далее,
исключим слагаемое
в последнем из уравнений (11.30)
.
Для этого умножим данное уравнение на
и
вычтем из него уравнение (11.34). Получим
в результате:
(11.36)
Уравнение (11.34) можно теперь исключить из дальнейшего рассмотрения. Объединив уравнение (11.35) и систему (11.30) с измененным последним уравнением, получим систему с трехдиагональной матрицей:
.
Для решения полученной системы уравнений используется метод прогонки. Приводим систему к виду:
.
Для этого последовательно вычисляем коэффициенты:
,
,
,
,
,
.
На этом заканчивается этап прямой прогонки. Далее следует этап обратной прогонки – последовательное вычисление значений неизвестных:
На этом заканчиваются вычисления в случае общих краевых условий (11.28).
Рассмотрим более подробно уравнение
.
Для данного уравнения система разностных уравнений принимает вид:
Если
при этом
,
то в матрице этой системы диагональные
элементы преобладают: в каждой строке
модуль диагонального элемента больше
суммы модулей остальных элементов. В
этом случае решение системы линейных
алгебраических уравнений существует
и единственно.
Теорема о порядке точности метода конечных разностей.
Если в краевой задаче
функции
и
дважды непрерывно дифференцируемы и
при
,
то разностное решение равномерно
сходится к точному с погрешностью
при
.
Доказательство.
При сделанном предположении имеет непрерывную четвертую производную. Тогда для погрешности аппроксимации справедливо соотношение
.
Следовательно, точное решение удовлетворяет разностному уравнению
или
Если из этого уравнения вычтем уравнение
,
То
получим уравнение для погрешности
:
Выберем
такую точку
,
где
достигает максимума; очевидно, что это
не граничная точка. Учитывая условие
,
сравним в этой точке модули правой и
левой частей уравнения:
.
Заменив
в правой части
на
,
мы только усилим неравенство. После
сокращений получим:
.
Теорема доказана.
Замечание.
Утверждение теоремы справедливо также
для разностного решения уравнения
общего вида
;
в этом случае только усложняются выкладки
при доказательстве.
Теорема дает мажорантную оценку погрешности метода конечных разностей. При некоторых дополнительных ограничениях можно получить асимптотическую оценку вида
,
где
– некоторая функция. Из наличия
асимптотической оценки следует
возможность применения правила Рунге
для апостериорной оценки погрешности
и уточнения решения. Обозначим:
– точное
решение краевой задачи в точке
,
– приближенное
решение, полученное методом конечных
разностей на сетке с шагом
,
– приближенное
решение, полученное на сетке с шагом
,
– уточненное
решение в точке
.
Тогда по первой формуле Рунге с учетом второго порядка метода погрешность решения с шагом оценивается по формуле:
.
(11.37)
Уточненное решение может быть найдено в соответствии со второй формулой Рунге:
(11.38)
Пример 11.9. Методом конечных разностей найдем решение краевой задачи:
.
В
примере (11.8) было найдено решение этой
задачи с шагом приращения аргумента
.
Это решение равно
.
Уменьшим теперь шаг вдвое, найдем оценку
погрешности и уточним решение по правилу
Рунге.
Подставив в дифференциальное уравнение аппроксимационные формулы для производных, получим алгебраическое уравнение:
.
Нам
требуется найти решение в узлах сетки:
.
Учитывая краевые условия:
– придем к системе уравнений:
Подставив
сюда значения
и
,
получим систему с численными коэффициентами,
решение которой в среде Mathcad
показано на рис. 11.3. Обозначим далее:
– решение дифференциального уравнения с шагом ,
– решение
с шагом
,
– оценка
погрешности решения
,
– уточненное
решение,
– точное решение краевой задачи.
Результаты
расчетов приведены в таблице. Для точки
оценка погрешности решения равна
.
Для точек
и
оценка погрешности, полученная с помощью
линейной интерполяции, равна
.
Вычитая оценки погрешности из решения
с шагом
,
найдем уточненное решение
.
Результаты расчетов приведены в таблице.
Для сравнения приведены точные значения
.
Видим, что
применение правила Рунге заметно
повышает точность результатов.
Таблица к примеру 11.9
x |
y(x) |
|
|
|
|
|
– |
|
|
|
|
|
|
|
|
|
|
|
– |
|
|
|
|
