Метод прогонки. Метод прогонки относится к прямым (точным) методам решения систем линейных алгебраических уравнений (СЛАУ). Прямые методы позволяют найти точное решение системы после конечного числа арифметических операций, каждая из которых выполняется точно, то есть в предположении отсутствия округлений. Пусть дана система 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.