Метод прогонки
Содержание:
Введение…………………………………………………………
- Суть метода прогонки…………………………………………………..4
- Теоретическая
часть.........................
.............................. ..........................5 - Виды прогонки…………………………………………………………
..7 - Теорема о корректности и устойчивости прогонки…………………..10
- Решение системы
методом прогонки. Код, реализующий метод
прогонки…………………………………………………………
………..12 - Трёхдиагональная матрица (матрица Якоби)…………………………15
Заключение……………………………………………………
Список литературы…………………………………
ВВЕДЕНИЕ
Прогонкой
называется модификация метода Гаусса
для решения систем линейных алгебраических
уравнений с трехдиагональной матрицей.
Если матрица системы обладает определенными
свойствами, то метод прогонки является
численно устойчивым и очень эффективным
методом, который позволяет практически
мгновенно решать одномерные краевые
задачи, одну из которых мы рассмотрели
в предыдущем разделе. Большинство корректно
поставленных физических задач приводит
к системе уравнений с хорошей матрицей,
и в этих случаях метод прогонки проявляет
слабую чувствительность как к погрешностям
задания начальных условий, так и к погрешностям
вычислительного характера.
1. Суть метода прогонки
Суть метода прогонки заключается в том, что, используя специфику структуры матрицы системы уравнений (наличие трех диагоналей), удается получить рекуррентные формулы для вычисления последовательности коэффициентов прогонки, которые позволяют на обратном ходу вычислить значения функции в узлах сетки. Рассматривая конечно-разностное уравнение для первой тройки узлов:
b1U1+c1U2=-a1U0,
видим, что оно связывает между собой два соседних значения U1, и U2. Перепишем его в виде:
d1U2+e=U1, (1)
где d1 и е1вычисляются по известным значениям. Наблюдательный читатель заметит, что это справедливо только для задач первого рода. Чуть позже мы получим общее решение. Теперь мы можем исключить £/, из уравнения для следующей тройки узлов:
a2U1+b2U2+c2U2=f2,
подставив значение U1 из уравнения (8). После этой процедуры последнее уравнение также может быть приведено к виду:
d3U3+e2=U2,
Подстановки
можно продолжать и дальше, но для
получения рекуррентного
di-1Ui+ei-1=Ui-1,
в уравнение
aiUi-1+biUi+ciUi+1=fi,
получим:
Ui=-[CiUi+1/(aidi-1+bi)]+[fi-
Это соотношение дает две рекуррентные формулы для коэффициентов:
di=-Ci/(ai*di-1+bi)
(3)
ei=(fi-ai*ei-1)/(aidi-1+bi) (4)
Цикл
вычисления последовательности коэффициентов
в соответствии с этими формулами носит
название прямого хода прогонки.
do=yo, eo=бo,
Цикл прямого хода повторяется N-1 раз. Последними будут вычислены коэффициенты dN-1 и eN-1, которые связывают функции в двух узлах вблизи правой границы:
Un-1=dn-1Un+en-1 (5)
Если на правой границе задано условие первого рода Un = с, то уже можно вычислить Un-1 и далее продолжать обратный ход прогонки при I = N - 1,..., 1, 0. Если условие более сложное, то надо рассмотреть уравнение (6), определяющее граничное условие на правой границе. Напомним его:
Un=ynUn-1+бn (6)
Соотношения (6) и (5) составляют систему из двух уравнений с двумя неизвестными. Используя определители, запишем ее решение.
Un-1=(en-1+бndn-1)/(1-yndn-1) (7)
Un=(бn+ynen-1)/(1-yndn-1)
Таким
образом, мы нашли значения в двух узлах,
лежащих вблизи правой границы расчетной
области. Теперь, используя формулу (2)
и уменьшая индекс i от N= 2 до 0, можно вычислить
все неизвестные £/.. Этот процесс носит
название обратного хода прогонки. Почему-то
в голову приходит лозунг нашего времени:
«Цели ясны, задачи определены.
2. Теоретическая часть
Пусть Ax=b, где A – трехдиагональная матрица. Матрица A=[aij] называется (2m+1) – диагональной, если aij=0 при |i-j|>m.
Для решения систем уравнений такого вида часто наиболее целесообразно применять метод Гаусса при естественном порядке исключения неизвестных. В случае, когда этот метод применяется для решения СЛАУ, его называют методом прогонки.
Получаем , используем метод прогонки, исходя из следующего рекуррентного соотношения: ,(2) получаем:
Эти формулы представляют собой прямой проход метода. Обратный проход:
Остальные xi находим из формулы (2).
Для применимости метода прогонки достаточно, чтобы матрица A была с диагональным преобладанием.
Алгоритм:
1. Вводим str/stlb – количество строк/столбцов, A – элементы расширенной матрицы
2. Проверяем матрицу на диагональное преобладание
3. Если матрица с диагональным преобладанием тогда п.4, иначе п.8
4. Выполняем прямой ход метода (формулы (3), (4)): c[1]:=A[1,2]/A[1,1]; d[1]:=A[1,stlb]/A[1,1];
c[i]:= (-A[i,i+1])/(A[i,i-1]*c[i-1]+
d[i]:= (A[i,stlb]-A[i,i-1]*d[i-1])/(
5. Далее обратный ход (формулы (2),(5)):
x[str]:=(A[str,stlb]-A[str,
x[i]:=c[i]*x[i+1]+d[i];
6. Выводим x;
7. Проверки на невязку;
8. Заканчиваем алгоритм.
В программе: A[i,i+1] = Bi, A[i,i] = Ci, A[i,i-1] = Ai, A[i,stlb] = bi, d[i] = ?i, c[i] = ?i, str = n.
Описание
входной информации: Str (Stlb) – количество
строк (столбцов) в расширенной матрице,
A [i, j] – матрица A (i – строки, j – столбцы)
3. Виды прогонки
Часто
возникает необходимость в
Рассмотрим
наиболее простой случай ленточных
систем, к которым, как увидим впоследствии,
сводится решение задач сплайн-интерполяции
функций, дискретизации краевых задач
для дифференциальных уравнений методами
конечных разностей, конечных элементов
и др. А именно, будем искать решение такой
системы, каждое уравнение которой связывает
три “соседних” неизвестных:
bixi-1+
где i=1,2,...,n;
b1=0,
dn=0. Такие уравнения называются
трехточечными разностными
уравнениями второго
порядка. Система (1) имеет трёхдиагональную
структуру, что хорошо видно из следующего,
эквивалентного (1), векторно-матричного
представления:
c1 d1 0 0 ... 0 0 0 x1 r1
b2 c2 d2 0 ... 0 0 0 x2 r2
0 b3 c3 d3 ... 0 0 0 x3 r3
. . . . ... . . . * ... = ...
0 0 0 0 ... bn-1cn-1 dn-1 xn-1 rn-1
0 0 0 0
... 0 bn
cn
xn
rn
Как
и в решении СЛАУ методом Гаусса,
цель избавится от ненулевых элементов
в поддиаганальной части
xi=
δixi+1+
λi (2)
т.е.
трехточечное уравнение второго порядка
(1) преобразуется в двухточечное уравнение
первого порядка (2). Уменьшим в связи (2)
индекс на единицу и полученое выражение
xi-1= δi-1xi+
λi-1
подставим в данное уравнение (1):
biδi-1 xi+ bi λi-1+ cixi+ dixi+1= ri
откуда
xi= -((di
/( ci+ biδi-1))
xi-1+(ri -
bi λi-1)/( ci
- bi δi-1)).
Последнее
равенство имеет вид (2) и будет
точно с ним совпадать, иначе
говоря, представление (2) будет иметь
место, если при всех i=1,2,…,n
выполняются рекуррентные соотношения
δi
= - di /( ci+
biδi-1) ,
λ i=(ri -
bi λi-1)/( ci
- bi δi-1) (3)
Легко
видеть, что, в силу условия b1=0,
процесс вычисления δi
, λi может быть начат со
значений
δ1
= - d1/ c1 , λ1
= r1/ c1
и продолжен
далее по формулам (3) последовательно
при i=2,3,...,n, причем при i=n,
в силу dn=0, получим
δn=0.Следовательно, полагая
в (2) i=n,будем иметь
xn
= λn =
(rn – bn
λn-1)/( cn – bn
δn-1)
(где λn-1 , δn-1 – уже известные с предыдущего шага числа). Далее по формулам (2) последовательно находятся xn-1 , xn-2 ,…, x1 при i=n-1, n-2,...,1 соответственно.
Таким образом, решение уравнений вида (1) описываем способом, называемым методом прогонки, сводится к вычислениям по трём простым формулам: нахождение так называемых прогоночных коэффициентов δi , λi по формулам (3) при i=1,2,…,n (прямая прогонка) и затем неизвестных xi по формуле (2) при i=n-1, n-2,...,1 (обратная прогонка).
Для успешного применения метода прогонки нужно, чтобы в процессе вычислений не возникало ситуаций с делением на нуль, а при больших размерностях систем не должно быть строгого роста погрешностей округлений.
Будем называть прогонку корректной, если знаменатели прогоночных коэффициентов (3) не обращаются в нуль, и устойчивой, если |δi|<1 при всех i€{1,2,...,n }.
Приведем
простые достаточные условия корректности
и устойчивости прогонки, которые во многих
приложениях метода автоматически выполняются.
4. Теорема о корректности и устойчивости прогонки
Пусть коэффициенты bi и di уравнения (1) при i=2,3,...,n-1 отличны от нуля и пусть
|ci|>|bi|+|d
Тогда
прогонка (3), (2) корректна
и устойчива (т.е. сi+biδi-1≠0,
|δi|<1).
Доказательство. Воспользуемся методом математической индукции для установления обоих нужных неравенств одновременно.
При i=1, в силу (4), имеем:
|c1|>|d1|≥0
- неравенство
нулю первой пары прогоночных коэффициентов,
а так же
|δ1|=|
Предположим,
что знаменатель (i-1)-x прогоночных
коэффициентов не равен нулю и что |δi-1|<1.
Тогда, используя свойства модулей, условия
теоремы и индукционные предположения,
получаем:
|сi+biδi-1|≥|ci| - |biδi-1|>|bi|+|di| - |bi|*|δi-1|= |di|+|bi|(1 - | δi-1|)> |di|>0
а с учетом этого
|δi|=|
Следовательно, сi+biδi-1 ≠0 и |δi|<1 при всех i€{1,2,...,n }, т.е. имеет место утверждаемая в данных условиях корректность и устойчивость прогонки. Теорема доказана.
Пусть
А – матрица коэффициентов
данной системы (1), удовлетворяющих
условиям теоремы, и пусть
δ1= - d1/ c1 , δi=|- di/ ci+biδi-1 (i=2,3,...,n-1), δn=0
- прогоночные коэффициенты, определяемые первой из формул (3), а
∆i= сi+biδi-1 (i=2,3,...,n)
-
знаменатели этих
c1 0 0 0 ... 0 0 0
b2 ∆2 0 0 ... 0 0 0
L= 0 b3 ∆3 0 ... 0 0 0
…………………………
0 0 0 0 ... bn-1 ∆n-1 0
0 0 0 0
... 0 bn
∆n
1 -δ1 0 0 ... 0 0 0
0 1 δ2 0 ... 0 0 0
U= 0 0 1 δ3 ... 0 0 0
…………………………
0 0 0 0 ... 0 1 -δn-1
0 0 0 0 ...
0 0 1
Единственное в силу утверждение теоремы LU-разложения матриц. Как видим, LU-разложение трехдиагональной матрицы А может быть выполнено очень простым алгоритмом, вычисляющем ∆i δi при возрастающих значениях i. При необходимости попутно может быть вычислен
det A = c1 ∏ ∆i .
i=2
В
заключение этого пункта заметим, что,
во-первых, имеются более слабые
условия корректности и устойчивости
прогонки, чем требуется в теореме условие
строгого диагонального преобладания
в матрице А. Во-вторых, применяется
ряд других, отличных от рассмотрения
нами правой прогонки, методов подобного
типа, решающих как поставленную здесь
задачу (1) для систем с трехдиагональными
матрицами (левая прогонка, встречная
прогонка, немонотонная, циклическая,
ортогональная прогонки и т.д.), так и для
более сложных систем с матрицами ленточной
структуры или блочно-матричной структуры
(например, матричная прогонка).
5. Решение системы методом прогонки. Код, реализующий метод прогонки
Часто
при решении задач
Метод прогонки является частным случаем метода Гаусса, и также состоит из прямого и обратного хода. Для решения системы, матрицу сначала нужно привести к двухдиагональной:
Поделив первую строку матрицы, приведенной выше, на -b1 очевидно, что:
и можно вывести формулу для прямого хода:
Затем необходимо выполнить обратный ход - найти вектор X, из последней строки преобразованной матрицы следует, что xn= Qn.
В тоже время остальные элементы вектора считаются по формуле:
Следует заметить, что метод устойчив если(следует из диагонального преобладания матрицы А):
и корректен,
если(иначе формулы прямого
Ниже представлен код, реализующий метод прогонки, принимает трехдиагональную матрицу a размерности N*N, и вектор правых частей b размерности N, результат возвращается в b:
void sweep(double a[N][N],double b[N])
{
int i;
double znam;
b[0]/=a[0][0];//Q1
a[0][1]/=-a[0][0];//P1
for(i=1;i < N-1;i++)
{
znam=-a[i][i]-a[i][i-1]*a[i-1]
a[i][i+1]/=znam; //Pi
b[i]=(a[i][i-1]*b[i-1]-b[i])/
}
//строка ниже для вычисления QN
b[N-1]=(a[N-1][N-2]*b[N-2]-b[
//обратный ход
for(i=N-2;i > -1;i--)
{
b[i]+=b[i+1]*a[i][i+1];
}
return;
}
Метод прогонки.Если матрица системы является разреженной, то есть содержит большое число нулевых элементов, то применяют еще одну модификацию метода Гаусса - метод прогонки. Рассмотрим систему уравнений с трехдиагональной матрицей:
Преобразуем первое уравнение системы к виду , где ,
Подставим полученное выражение во второе уравнение системы и преобразуем его к виду и т.д. На i-ом шаге уравнение преобразуется к виду , где , . На m-ом шаге подстановка в последнее уравнение выражения дает возможность определить значение :
. Значения остальных
Пример 4. Решение системы уравнений методом прогонки.
Прямой ход прогонки. Вычислим прогоночные коэффициенты:
, ,
,
, ,
,
Обратный ход прогонки. Находим значения неизвестных:
, , ,
Ответ: .
Прямые
(или точные) методы, позволяют найти
решение за определённое количество
шагов. Итерационные методы, основаны
на использовании повторяющегося процесса
и позволяют получить решение
в результате последовательных приближений.
6. Трёхдиагональная матрица (матрица Якоби)
Трёхдиагональной матрицей или матрицей Якоби называют матрицу следующего вида:
.
Системы линейных алгебраических уравнений с такими матрицами встречаются при решении многих задач математики и физики. Краевые условия x1 и xn, которые берутся из контекста задачи, задают первую и последнюю строки. Так краевое условие первого рода F(x = x1) = F1 определит первую строку в виде C1 = 1, B1 = 0, а условие второго рода dF / dx(x = x1) = F1 будет соответствовать значениям C1 = − 1, B1 = 1.
Метод прогонки
Для решения систем вида или, что то же самое,
используется метод прогонки, основанный на предположении, что искомые неизвестные связаны рекуррентным соотношением:
, где (2)
Используя это соотношение, выразим xi-1 и xi через xi+1 и подставим в уравнение (1):
,
где Fi — правая часть i-го уравнения. Это соотношение будет выполняться независимо от решения, если потребовать
Отсюда следует:
Из первого уравнения получим:
После нахождения прогоночных коэффициентов α и β, используя уравнение (2), получим решение системы. При этом,
Другим способом объяснения существа метода прогонки, более близким к терминологии конечно-разностных методов и объясняющим происхождение его названия, является следующий: преобразуем уравнение (1) к эквивалентному ему уравнению
(1')
c надиагональной матрицей
.
Вычисления
проводятся в два этапа. На первом
этапе вычисляются компоненты матрицы
и вектора
, начиная с
до
и

- Метод прогонки решения систем с трехдиагональными матрицами коэффициентов
- Метод проектирования в образовании
- Метод проектів або проектна технологія
- Метод проектів на уроках
- Метод проектов
- Метод проектов
- Метод проектов
- Метод последовательных уступок. Алгоритм метода
- Метод поточного сканирования. Суть метода, области применения
- Метод правового регулирования
- Метод правового регулирования государственного и муниципального управления
- Метод правового регулирования государственного и муниципального управления
- Метод пробных площадок в экологическом исследовании
- Метод прогнозирования