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

Участник:KibAndrey/Ортогонализация Грама-Шмидта

Материал из Алговики
Перейти к навигации Перейти к поиску


Ортогонализация Грама-Шмидта
Последовательный алгоритм
Последовательная сложность [math]O(n^3)[/math]
Объём входных данных [math][/math]
Объём выходных данных [math][/math]
Параллельный алгоритм
Высота ярусно-параллельной формы [math][/math]
Ширина ярусно-параллельной формы [math][/math]


Основные авторы описания: А.В.Кибанов, Т.З.Аджиева


1 ЧАСТЬ. Свойства и структура алгоритма

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

1.2 Математическое описание алгоритма

Исходные данные: [math]k[/math] векторов [math]\mathbf{a_1},\mathbf{a_2},...,\mathbf{a_n}[/math] длины [math]n[/math] [math]\left(\alpha_{ij}\right.[/math], [math]j=1,2,...,n[/math], — координаты вектора [math]\left.\mathbf{a_i}\right)[/math] .

Вычисляемые данные:

[math]k[/math] ортогональных векторов [math]\mathbf{b_1},\mathbf{b_2},...,\mathbf{b_n}[/math] длины [math]n[/math], причем [math]\mathbf{b_1}=\mathbf{a_1}[/math] либо

[math]k[/math] ортонормированных векторов [math]\mathbf{e_1},\mathbf{e_2},...,\mathbf{e_n}[/math] длины [math]n[/math], причем [math]\mathbf{e_1}=\frac{\mathbf{a_1}}{|\mathbf{a_1}|}[/math]

Формулы процесса ортогонализации:

[math] \begin{align} \mathbf{b_{1}} & =\mathbf{a_{1}}, \\ \mathbf{b_{2}}& =\mathbf{a_{2}}-proj_{\mathbf{b_1}}\mathbf{a_{1}}, \\ & ...\\ \mathbf{b_{{i} }} & = \mathbf{a_{i}}-\sum\limits_{j=1}^{i-1} proj_{\mathbf{b_j}}\mathbf{a_{j}},\\ & ...\\ \mathbf{b_{n}} & =\mathbf{ a_{n}}-\sum\limits_{j=1}^{n-1} proj_{\mathbf{b_j}}\mathbf{a_{j}},\\ \end{align} [/math]

Здесь [math]proj_{\mathbf{b_j}}\mathbf{a_{j}}[/math], для [math]j=1,...,n-1[/math] — проекция вектора [math]\mathbf{a_{j}}[/math] на направление вектора [math]\mathbf{b_{j}}[/math]. Это число, равное по величине проекции вектора [math]\mathbf{a_{j}}[/math] на ось, проходящую через вектор [math]\mathbf{b_j}[/math]. Формула для ее вычисления, полученная из определения скалярного произведения:

[math] proj_{\mathbf{b_j}}\mathbf{a_{j}}=\frac{(\mathbf{aj},\mathbf{bj})}{|\mathbf{b_j}|}. [/math]

Иногда полученные векторы нормируются сразу после их нахождения. Cуществует также модифицированная версия алгоритма, однако в данном описании разобран только классический алгоритм ортогонализации Грама-Шмидта.

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

Анализ математических формул процесса ортогонализации Грама-Шмидта показывает, что алгоритм имеет три вычислительных ядра.

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

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

[math] \begin{align} a_{1} & =b_{1}, \\ \beta_{ij} & = \frac{(a_{i},b_j)}{(b_j,b_j)}=-\frac{(a_i,b_j)}{|b_j|^2}, \quad i \in [2, n], \quad j \in [1, n] ,\\ \end{align} [/math]


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

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

1.8 Ресурс параллелизма алгоритма

1.9 Входные и выходные данные алгоритма

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

2 ЧАСТЬ Программная реализация алгоритма

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

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

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

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

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

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

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

3 Литература

[1] Zur Theorie der linearen und nichtlinearen Integralgleichungen, 1. Teil: Entwicklung willkürlicher Funktionen nach Systemen vorgeschriebener. – Mathematische Annalen, 63 (1907), pp. 433–476

[2] Meyer C. D. Matrix analysis and applied linear algebra. – Siam, 2000. – Т. 2.

[3] Википедия [Электронный ресурс]. Тема: Процесс_Грама_―_Шмидта – Электрон. дан. – URL [1] (дата обращения 18.09.2016)