Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование в Excel.doc
Скачиваний:
21
Добавлен:
03.05.2019
Размер:
1.48 Mб
Скачать

4.6.3. Метод прогонки

При большом n непосредственное решение систем (4.58) или (4.60) становится очень громоздким. Для решения систем такого вида был разработан специальный метод, который получил название метода прогонки. Пусть имеем систему (4.58). Рассмотрим первое из n-1 уравнений

(Yi+2-2Yi+1+Yi )/h2+Pi(Yi+1-Yi )/h+giYi=Fi; (i=1, 2 ,..., n-1).

После преобразований получаем:

Yi+2+(-2+hPi)Yi+1+(1-hPi+h2 gi)Yi=h2 Fi.

(4.62)

Введем обозначения:

Mi=-2+hPi; Ki=1-hPi+h2gi, (i=0, 1, 2,..., n-2).

(4.63)

Выполняем замены в (4.62):

Yi+2+MiYi+1+KiYi=h2Fi.

(4.64)

Решив (4.64) относительно Yi+1, получим:

Yi+1=h2Fi/Mi -Yi+2/Mi - KiYi/ Mi

(4.65)

Нетрудно убедиться в том, что, исключив Yi из (4.65) с помощью краевых условий системы (4.58), получим это уравнение в виде:

Yi+1=Ci(Di –Yi+2) (i=0, 1, 2,..., n-2),

(4.66)

где Ci, Di - некоторые коэффициенты.

Пусть, например, i=0; тогда (4.65) примет вид:

Y1=h Fi/M0 -Y2/M0 - K0Y0/M0 .

(4.67)

Из краевого условия A0Y0+A1( Y1-Y0 )/h =A найдем Y0:

Y0 =Ah/(A0-h)-A1Y1/(A0h-A1)

и подставим его в (4.67). После преобразований получим:

Обозначим:

(4.68)

Из (4.66) можно записать:

Yi=Ci-1(Di-1-Yi+1).

Подставляя это выражение в (4.64), получим:

Yi+2+MiYi+1+KiCi-1(Di-1-Yi+1)=h2Fi.

Откуда:

Yi+1=[h2Fi-KiCi-1Di-1]/[Mi-KiCi-1]

(4.69)

Приравнивая (4.66) и (4.69), получим рекуррентные формулы для определения Ci и Di:

Ci=1/(Mi-KiCi-1); Di=hFi-KiCi-1Di-1,

(4.70)

где i=1, 2, ..., n-2; Ci, Di- прогоночные коэффициенты. Метод прогонки состоит из двух этапов: прямого и обратного хода. На первом этапе (прямой ход) на основе (4.68) находятся коэффициенты C0 и D0. После этого, последовательно используя рекуррентные формулы (4.70), получают значения Ci и Di (i=1, 2, ..., n-2). Второй этап (обратный ход) начинается с определения Yn. Используя второе краевое условие (4.58) и формулу (4.66) при i=n-2, запишем систему уравнений:

B0Yn+B1(Yn-Yn-1)/h=B; Yn-1=Cn-2(Dn-2-Yn).

(4.71)

Решив эту систему относительно Yn, получим:

Yn=[B1Cn-2Dn-2 + Bh]/[B1(1+Cn-2)+B0h].

(4.72)

Подставив в (4.72) уже найденные прямым ходом Сn-2, Dn-2, находим Yn. После этого вычисляем Yn-1, Yn-2, Yn-3, ..., Y1, последовательно используя рекуррентную формулу (4.66):

Yn-1=Cn-2(Dn-2-Yn); Yn-2=Cn-3(Dn-3-Yn-1); ..............; Y1=C0(D0-Y2).

(4.73)

Значение Y0 находим по формуле, которая была получена из первого краевого условия (4.58):

Y0=(A1Y1-Ah)/(A1-A0h).

(4.74)