Uploaded by anmstaff

МетодПрогонки-Теория-и-Алгоритм

advertisement
Метод прогонки.
Метод прогонки относится к прямым (точным) методам решения
систем линейных алгебраических уравнений (СЛАУ). Прямые методы
позволяют найти точное решение системы после конечного числа
арифметических операций, каждая из которых выполняется точно, то есть в
предположении отсутствия округлений.
Пусть дана система n линейных алгебраических уравнений с n
неизвестными A · X = B, где A – квадратная матрица [n  n] коэффициентов
aij, i = 1..n, j = 1..n при неизвестных, B – вектор-столбец [n  1] свободных
членов bi, X – вектор-столбец [n  1] неизвестных xi.
СЛАУ является совместной, если она имеет хотя бы одно решение, и
несовместной (противоречивой), если она не имеет решений. Совместная
система называется определенной, если она имеет единственное решение, и
неопределенной, если более одного решения.
Согласно теореме Кронекера-Капелли, СЛАУ совместна тогда и только
тогда,
когда
ранг
расширенной
матрицы
(A | B),
образованной
присоединением к матрице A вектора свободных членов B, равен рангу
матрицы A. Совместная СЛАУ имеет единственное решение тогда и только
тогда, когда ранг матрицы A равен числу неизвестных, то есть r(A) = n. Если
же r(A) < n, то СЛАУ имеет бесконечное множество решений.
Следствие: решение СЛАУ существует и единственно тогда и только
тогда, когда det(A) ≠ 0.
Метод прогонки применим в том случае, когда матрица A –
трехдиагональная.
Развернутая запись системы с трехдиагональной матрицей A имеет
вид: αi · xi–1 – βi · xi + γi · xi+1 = δi, α1 = γn = 0, i = 1, …, n.
Такой системе соответствует расширенная матрица:
A̅ =
–β1
α2
0
…
0
γ1
–β2
α3
…
0
0
γ2
–β3
…
0
0
0
γ3
…
0
…
…
…
…
…
0
0
0
…
αn
0
0
0
…
–βn
δ1
δ2
δ3
…
δn
.
Если к СЛАУ с трехдиагональной матрицей применить алгоритм
прямого хода метода Гаусса, то вместо матрицы A̅ получится матрица Â
следующего вида:
 =
1
0
0
…
0
–P1
1
0
…
0
0
–P2
1
…
0
0
0
–P3
…
0
…
…
…
…
…
0
0
0
…
0
0
0
0
…
1
Q1
Q2
Q3
…
Qn
.
В процессе прямого хода метода прогонки вычисляются прогоночные
коэффициенты Pi, Qi по следующим рекуррентным формулам:
Pi = γi / (βi – αi · Pi–1), i = 1, …, n – 1;
Qi = (αi · Qi–1 – δi ) / (βi – αi · Pi–1), i = 1, …, n.
Используя прогоночные коэффициенты Pi, Qi, искомые неизвестные
можно вычислить в процессе обратного хода метода прогонки по
рекуррентной формуле: xn = Qn, xi = Pi · xi+1 + Qi, i = n – 1, …, 1.
Расчеты прямого хода начинаются со значений P0 и Q0, которые нам
неизвестны. Однако в формулах прямого хода перед P0 и Q0 стоит множитель
α1, который равен нулю. Поэтому можно взять P0 = Q0 = 0. Расчеты обратного
хода при i = n начинаются со значения xn+1. Поскольку перед xn+1 стоит
множитель Pn = γn = 0, то можно взять xn+1 = 0.
Алгоритм метода прогонки для следующего представления системы:
b1 · x1
a2 · x1
…
0
…
0
0
c1 · x2
b2 · x2
…
0
…
0
0
0
c2 · x3
…
0
…
0
0
…
…
…
…
…
…
…
0
0
…
ai · xi–1
…
0
0
0
0
…
bi · xi
…
0
0
0
0
…
ci · xi+1
…
0
0
…
…
…
…
…
…
…
0
0
…
0
…
an–1 · xn–2
0
0
0
…
0
…
bn–1 · xn–1
an · xn–1
0
0
…
0
…
cn–1 · xn
bn · xn
=
=
=
=
=
=
=
d1
d2
…
di
…
dn–1
dn
Прямой ход метода прогонки состоит в вычислении прогоночных
коэффициентов αi и βi, где i – номер строки матрицы. Этот этап выполняется
при i = 1,…,n строго по возрастанию значения i.
В первой строке матрицы (i = 1) используются формулы:
y1 = b1; α1 = –c1 / y1; β1 = d1 / y1.
Для строк от i = 2 до i = n – 1 используются рекуррентные формулы:
yi = bi + ai · αi–1; αi = –ci / yi; βi = (di – ai · βi–1) / yi.
При i = n прямой ход метода прогонки завершается вычислением:
yn = bn + an · αn–1; βn = (dn – an · βn–1) / yn.
После этого выполняется обратный ход метода прогонки, в процессе
которого вычисляются неизвестные xi. Этот этап выполняется при i = n,…,1
строго по убыванию значения i.
Для последней строки матрицы (i = n) имеем xn = βn.
Для всех остальных строк от i = n – 1 до i = 1 применяется формула
xi = αi · xi+1 + βi.
Download