Уровень алгоритма

Прогонка, точечный вариант: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Строка 33: Строка 33:
\vdots \\
\vdots \\
b_{n} \\
b_{n} \\
\end{bmatrix}
</math>
Часто, однако, при изложении сути метода прогонки<ref>Самарский А.А., Николаев Е.С. Методы решения сеточных уравнений. М.: Наука, 1978.</ref> элементы правой части и матрицы системы обозначают по-другому, например СЛАУ может иметь вид
:<math>
A = \begin{bmatrix}
c_{0} & -b_{0}  & 0      &  \cdots & \cdots & 0 \\
-a_{1} & c_{1}  & -b_{1} &  \cdots & \cdots & 0 \\
0      &  -a_{2} & c_{2} &  \cdots & \cdots & 0 \\
\vdots & \vdots & \ddots & \ddots & \ddots & 0 \\
0 & \cdots & \cdots & -a_{n-2} & c_{n-2}  & -b_{n-2} \\
0 & \cdots & \cdots & 0 & -a_{n-1}  & c_{n-1} \\
\end{bmatrix}\begin{bmatrix}
x_{0} \\
x_{1} \\
\vdots \\
x_{n-1} \\
\end{bmatrix} = \begin{bmatrix}
f_{0} \\
f_{1} \\
\vdots \\
f_{n-1} \\
\end{bmatrix}
\end{bmatrix}
</math>
</math>

Версия от 13:52, 10 июля 2015


Прогонка для трёхдиагональной матрицы, точечный вариант
Последовательный алгоритм
Последовательная сложность [math]\displaystyle{ O(n) }[/math]
Объём входных данных [math]\displaystyle{ 4n-2 }[/math]
Объём выходных данных [math]\displaystyle{ n }[/math]
Параллельный алгоритм
Высота ярусно-параллельной формы [math]\displaystyle{ O(n) }[/math]
Ширина ярусно-параллельной формы [math]\displaystyle{ 2 }[/math]


Основные авторы описания: А.В.Фролов


Свойства и структура алгоритмов

Общее описание алгоритма

Прогонка - один из вариантов метода исключения неизвестных в приложении к решению СЛАУ[1][2] вида [math]\displaystyle{ Ax = b }[/math], где

[math]\displaystyle{ A = \begin{bmatrix} a_{11} & a_{12} & 0 & \cdots & \cdots & 0 \\ a_{21} & a_{22} & a_{23}& \cdots & \cdots & 0 \\ 0 & a_{32} & a_{33} & \cdots & \cdots & 0 \\ \vdots & \vdots & \ddots & \ddots & \ddots & 0 \\ 0 & \cdots & \cdots & a_{n-1 n-2} & a_{n-1 n-1} & a_{n-1 n} \\ 0 & \cdots & \cdots & 0 & a_{n n-1} & a_{n n} \\ \end{bmatrix}, x = \begin{bmatrix} x_{1} \\ x_{2} \\ \vdots \\ x_{n} \\ \end{bmatrix}, b = \begin{bmatrix} b_{1} \\ b_{2} \\ \vdots \\ b_{n} \\ \end{bmatrix} }[/math]

Часто, однако, при изложении сути метода прогонки[3] элементы правой части и матрицы системы обозначают по-другому, например СЛАУ может иметь вид

[math]\displaystyle{ A = \begin{bmatrix} c_{0} & -b_{0} & 0 & \cdots & \cdots & 0 \\ -a_{1} & c_{1} & -b_{1} & \cdots & \cdots & 0 \\ 0 & -a_{2} & c_{2} & \cdots & \cdots & 0 \\ \vdots & \vdots & \ddots & \ddots & \ddots & 0 \\ 0 & \cdots & \cdots & -a_{n-2} & c_{n-2} & -b_{n-2} \\ 0 & \cdots & \cdots & 0 & -a_{n-1} & c_{n-1} \\ \end{bmatrix}\begin{bmatrix} x_{0} \\ x_{1} \\ \vdots \\ x_{n-1} \\ \end{bmatrix} = \begin{bmatrix} f_{0} \\ f_{1} \\ \vdots \\ f_{n-1} \\ \end{bmatrix} }[/math]

Математическое описание

Вычислительное ядро алгоритма

Макроструктура алгоритма

Описание схемы реализации последовательного алгоритма

Последовательная сложность алгоритма

Информационный граф

Описание ресурса параллелизма алгоритма

Описание входных и выходных данных

Свойства алгоритма

Программная реализация алгоритмов

Особенности реализации последовательного алгоритма

Описание локальности данных и вычислений

Возможные способы и особенности реализации параллельного алгоритма

Масштабируемость алгоритма и его реализации

Динамические характеристики и эффективность реализации алгоритма

Выводы для классов архитектур

Существующие реализации алгоритма

Литература

  1. ↑ Воеводин В.В. Вычислительные основы линейной алгебры. М.: Наука, 1977.
  2. ↑ Воеводин В.В., Кузнецов Ю.А. Матрицы и вычисления. М.: Наука, 1984.
  3. ↑ Самарский А.А., Николаев Е.С. Методы решения сеточных уравнений. М.: Наука, 1978.