85819 (612585), страница 2
Текст из файла (страница 2)
1.2 Метод прогонки решения разностной задачи для уравнений параболического типа
Рассмотрим частный случай задачи, поставленной в предыдущем разделе. В области
найти решение уравнения
110\* MERGEFORMAT (.)
с граничными условиями
111\* MERGEFORMAT (.)
и начальным условием
. 112\* MERGEFORMAT (.)
Рассмотрим устойчивую вычислительную схему, для которой величина
не является ограниченной сверху, а, значит, шаг по оси
и
может быть выбран достаточно крупным. Покроем область
сеткой
Запишем разностное уравнение, аппроксимирующее дифференциальное уравнение (1.10) во всех внутренних узлах слоя
. При этом будем использовать следующие формулы:
,
.
Эти формулы имеет погрешность
. В результате уравнение (1.10) заменяется разностным:
113\* MERGEFORMAT (.)
Перепишем (1.13) в виде:
. 114\* MERGEFORMAT (.)
Данная вычислительная схема имеет следующую конфигурацию:
115\* MERGEFORMAT (.)
116\* MERGEFORMAT (.)
Система (1.14) – (1.16) представляет собой разностную задачу, соответствующую краевой задаче (1.10) – (1.12).
За величину
мы положили
.
(1.14) – (1.16) есть система линейных алгебраических уравнений с 3-диагональной матрицей, поэтому ее резонно решать методом прогонки, так как он в несколько раз превосходит по скорости метод Гаусса.
. 117\* MERGEFORMAT (.)
Здесь
,
– некоторые коэффициенты, подлежащие определению. Заменив в (1.17)
на
будем иметь:
. 118\* MERGEFORMAT (.)
Подставив уравнение (1.18) в (1.14) получим:
. 119\* MERGEFORMAT (.)
Сравнив (1.17) и (1.19) найдем, что:
120\* MERGEFORMAT (.)
Положим в (1.14)
и найдем из него
:
,
.
121\* MERGEFORMAT (.)
Заметим, что во второй формуле (1.21) величина
подлежит замене на
согласно первому условию (1.15).
С помощью формул (1.21) и (1.20) проводим прогонку в прямом направлении. В результате находим величины
Затем осуществляем обратный ход. При этом воспользуемся второй из формул (1.15) и формулой (1.17). Получим следующую цепочку формул:
122\* MERGEFORMAT (.)
Таким образом, отправляясь от начального слоя
, на котором известно решение, мы последовательно можем найти значения искомого решения во всех узлах стеки.
Итак, мы построили неявную схему решения дифференциальных уравнений параболического типа методом сеток.
1.3 Оценка погрешности и сходимость метода сеток
При решении задачи методом сеток мы допускаем погрешность, состоящую из погрешности метода и вычислительной погрешности.
Погрешность метода – это та погрешность, которая возникает в результате замены дифференциального уравнения разностным, а также погрешность, возникающая за счет сноса граничных условий с
на
.
Вычислительная погрешность – это погрешность, возникающая при решении системы разностных уравнений, за счет практически неизбежных машинных округлений.
Существуют специальные оценки погрешности для решения задач методом сеток. Однако эти оценки содержат максимумы модулей производных искомого решения, поэтому пользоваться ими крайне неудобно, однако эти теоретические оценки хороши тем, что из них видно: если неограниченно измельчать сетку, то последовательность решений будет сходиться равномерно к точному решению. Здесь мы столкнулись с проблемой сходимости метода сеток. При использовании метода сеток мы должны быть уверены, что, неограниченно сгущая сетку, можем получить решение, сколь угодно близкое к точному.
Итак, на примере решения краевой задачи для дифференциального уравнения параболического типа рассмотрим основные принципы метода сеток. Отметим, что если при решении разностной задачи небольшие ошибки в начальных и краевых условиях (или в промежуточных результатах) не могут привести к большим отклонениям искомого решения, то говорят, что задача поставлена корректно в смысле устойчивости по входным данным. Разностную схему называют устойчивой, если вычислительная погрешность неограниченно не возрастает. В противном случае схема называется неустойчивой.
1.4 Доказательство устойчивости разностной схемы
Пусть
есть решение уравнения (1.14), удовлетворяющее возмущенным начальным условиям
и граничным условиям
.
Здесь
– некоторые начальные ошибки.
Рассмотрим погрешность
.
Погрешность
будет удовлетворять уравнению
123\* MERGEFORMAT (.)
(в силу линейности уравнения (1.14)), а также следующими граничными и начальными условиями:
, 124\* MERGEFORMAT (.)
. 125\* MERGEFORMAT (.)
Частное решение уравнения (1.23) будем искать в виде
. 126\* MERGEFORMAT (.)
Здесь числа
и
следует подобрать так, чтобы выражение (1.26) удовлетворяло уравнению (1.23) и граничным условиям (1.24).
При целом
удовлетворяет уравнению (1.23) и условиям (1.24).
Подставим уравнение (1.26) в уравнение (1.24). При этом получим:
или
.
Выражение в квадратных скобках равно
.
Подставляя это выражение в предыдущее уравнение вместо выражения в квадратных скобках и проводя сокращения на
получим:
,
откуда находим
:
.
Таким образом, согласно уравнению (1.26), получаем линейно-независимые решения уравнения (1.23) в виде
Заметим, что это частное решение удовлетворяет однородным краевым условиям (1.24). Линейная комбинация этих частных решений также является решением уравнения (1.23):
, 127\* MERGEFORMAT (.)
причем
, определенное в выражении (1.27), удовлетворяет для любых
однородным граничным условиям (1.24). Коэффициенты
подбираются исходя из того, что
должны удовлетворять начальным условиям (1.25):
.
В результате получаем систему уравнений
,
содержащую
уравнений с
неизвестными
. Решая построенную систему определяем неизвестные коэффициенты
.
Для устойчивости исследуемой разностной схемы необходимо, чтобы при любых значениях коэффициентов
, определяемое формулой (1.27), оставалось ограниченной величиной при
. Для этого достаточно, чтобы для всех
выполнялось неравенство
. 128\* MERGEFORMAT (.)
Анализируя (1.28) видим, что это неравенство выполняется для любых значений параметра
. При этом при
или в крайнем случае, когда
,
остается ограниченным и при фиксированном
не возрастает по модулю. Следовательно мы доказали, что рассматриваемая разностная схема устойчива для любых значений параметра
.
2. Реализация метода
2.1 Разработка программного модуля
Поставлена цель: разработать программный продукт для нахождения приближенного решения параболического уравнения:
129\* MERGEFORMAT (.)
в области
,
удовлетворяющее условиям
130\* MERGEFORMAT (.)
Разобьем область
прямыми
где
– шаг по оси
,
– шаг по оси
.
Заменив в каждом узле производные конечно-разностными отношениями по неявной схеме, получим систему вида:
. 131\* MERGEFORMAT (.)
Преобразовав ее, получим:
, 132\* MERGEFORMAT (.)
где
В граничных узлах
133\* MERGEFORMAT (.)
В начальный момент
. 134\* MERGEFORMAT (.)
Эта разностная схема устойчива при любом
. Будем решать систему уравнений (1.32), (1.33) и (1.34) методом прогонки. Для этого ищем значения функции в узле
в виде
, 135\* MERGEFORMAT (.)
где
– пока неизвестные коэффициенты.
Аналогично
. 136\* MERGEFORMAT (.)
Подставив значение (1.35) в (1.32) получим:
.
Откуда
. 137\* MERGEFORMAT (.)
Из сравнения (1.35) и (1.37) видно, что
. 138\* MERGEFORMAT (.)
. 139\* MERGEFORMAT (.)
Для
из (1.32) имеем:
.
Откуда
или
.
Откуда, используя (1.35), получим:
, 140\* MERGEFORMAT (.)
. 141\* MERGEFORMAT (.)
Используя данный метод, мы все вычисления проведем в следующем порядке для всех
.
1) Зная значения функции
на границе (1.33), найдем значения коэффициентов
по (1.40) и
по (1.38) для всех
.
2) Найдем
по (1.41), используя для
начальное условие (1.34).
3) Найдем
по формулам (1.39) для
.
4) Найдем значения искомой функции на
слое, начиная с
:
2.2 Описание логики программного модуля
Листинг программы приведен в приложении 1. Ниже будут описаны функции программного модуля и их назначение.
Функция main() является базовой. Она реализует алгоритм метода сеток, описанного в предыдущих разделах работы.
Функция f (x, y) представляет собой свободную функцию двух переменных дифференциального уравнения (1.29). В качестве аргумента в нее передаются два вещественных числа с плавающей точкой типа float. На выходе функция возвращает значение функции
, вычисленное в точке
.
Функции mu_1 (t) и mu_2 (t) представляют собой краевые условия. В них передается по одному аргументу (t) вещественного типа (float).
Функция phi() является ответственной за начальный условия.















