Метод прогонки для краевых задач
.docxКраевые задачи для обыкновенного дифференциального уравнения 2-го порядка
Постановка задачи. На отрезке [a, b] требуется найти решение уравнения , удовлетворяющее краевым условиям
.
Пример: .
Вопрос о разрешимости краевой задачи не имеет универсального ответа не только в общем случае, но даже для линейных уравнений.
Пример:
N.
Эта задача имеет для каждого фиксированного два решения: y=0 и y=sin nx. Можно привести пример краевой задачи для линейного уравнения, не имеющей решения.
Вопрос о разрешимости краевой задачи для нелинейного дифференциального уравнения открыт до сих пор. Для линейных дифференциальных уравнений этот вопрос решен:
1) однородная задача
имеет не более конечного числа линейно-независимых решений;
2) неоднородная задача
разрешима тогда и только тогда, когда f(x), A, B удовлетворяют конечному числу условий ортогональности.
В дальнейшем будем предполагать, что решение краевой задачи существует и единственно.
Существует несколько способов решения краевых задач. Рассмотрим конечно-разностный или сеточный способ.
Разобьем промежуток [a; b] на n частей узловыми точками xi=a+ih, где – шаг вычислений, yi=y(xi). Построим конечно-разностную аппроксимацию неоднородной задачи:
. (1.9)
с краевыми условиями:
;
. (1.10)
Введем обозначения b0=A0·h-A1, c0=A1, d0=Ah, an=-B1, bn=B0·h +B1, dn=Bh, тогда уравнения запишутся:
b0y0+c0y1=d0 ;
anyn-1+bnyn=dn .
Для основного уравнения применим аппроксимацию
; ; тогда пренебрегая слагаемыми второго порядка при подстановке в уравнение, получим:
.
Будем считать, что pi=p(xi), qi=q(xi), fi=f(xi), тогда получим:
, обозначим
, , , .
Разностная аппроксимация для основного уравнения запишется так. Индекс i меняется от 0 до n, но при i=0 не определено i-1, а при i=n не определено i+1, значит, основное уравнение имеет смысл только при i=1,2,3…, n-1. Таким образом, получено n-1 уравнение, вместе с двумя уравнениями аппроксимации краевых условий получится система из n+1 уравнения, содержащая n+1 неизвестное: y0,y1…, yn. Решив эту систему, можно найти приближенные значения функции y=y(x) в узловых точках, т.е. получить сеточное решение краевой задачи (1.9)-(1.10).
Системы линейных алгебраических уравнений решают разными способами: по правилу Крамера, матричным методом через обратную матрицу, разложением матрицы на произведение двух треугольных, но самым рациональным является метод Гаусса, он требует наименьшего объема вычислений. Система, которую требуется решить, особенная – в каждом уравнении не более трех переменных. Для таких систем в 50-х гг. прошлого века советские математики предложили упрощенную схему метода Гаусса – метод прогонки.
Запишем всю систему уравнений
b0y0+c0y1 =d0;
a1y0+b1y1+c1y2 =d1;
a2y1+b2y2+c2y3= d2;
. . .
an-1yn-2+bn-1yn-1+cn-1yn=dn-1;
anyn-1+byn =dn.
Матрица такой системы состоит в основном из нулей, ненулевые элементы расположены только на главной диагонали и на двух линиях вдоль нее:
b0 c0 . . . . . . . .
a1 b1 c1 . . . . . .
. a2 b2 c2 . . . . . . . .
. . . . . . . .
.. . . an-1 bn-1 cn-1
. . . . . . an bn
Такие матрицы называются ленточными, или трехдиагональными. Именно для систем с такими матрицами и разработан метод прогонки. Как и метод Гаусса, он состоит из двух этапов – прямого хода и обратного хода.
Прямой ход. Из первого уравнения выразим y0 :
, где ; .
Подставим это выражение y0 во второе уравнение:
, теперь оно содержит две неизвестных, выразим y1
,
где ; .
Подставим выражение для y1 в следующее уравнение:
и выразим из него y2
, где ; .
Таким образом, можно выразить :
, где ; .
Продолжим вычислять значения пока не дойдем до последнего уравнения: , в этом уравнении всего одна неизвестная, найдем ее значение: .
Обратный ход. Зная yn, можно найти . Зная , можно найти . С каждым шагом узнаем значение новой переменной, номер которой на 1 меньше предыдущей. Так добираемся до y0. Все переменные найдены, задача решена.
Метод прогонки решения краевых задач является методом второго порядка точности. Основное достоинство метода – устойчивость. При оценке погрешности следует применять правило двойного пересчета Рунге.