Участник:KibAndrey/Ортогонализация Грама-Шмидта: различия между версиями
Amelie (обсуждение | вклад) |
Amelie (обсуждение | вклад) |
||
Строка 37: | Строка 37: | ||
</math> | </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}}</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> | :<math> proj_{\mathbf{b_j}}\mathbf{a_{j}}=\frac{(\mathbf{aj},\mathbf{bj})}{|\mathbf{b_j}|}. </math> | ||
Иногда полученные векторы нормируются сразу после их нахождения и находится система ртонормированных векторов <math>\mathbf{e_1},\mathbf{e_2},...,\mathbf{e_n}</math>. | Иногда полученные векторы нормируются сразу после их нахождения и находится система ртонормированных векторов <math>\mathbf{e_1},\mathbf{e_2},...,\mathbf{e_n}</math>. | ||
− | В этом случае <math>\mathbf|{e_i}|=1</math>, что существенно упрощает вычисления алгоритма. | + | В этом случае <math>\mathbf|{\mathbf{e_i}}|=1</math>, что существенно упрощает вычисления алгоритма. |
+ | |||
Cуществует также модифицированная версия алгоритма, однако в данном описании разобран только классический алгоритм ортогонализации Грама-Шмидта. | Cуществует также модифицированная версия алгоритма, однако в данном описании разобран только классический алгоритм ортогонализации Грама-Шмидта. | ||
Версия 06:02, 19 сентября 2016
Ортогонализация Грама-Шмидта | |
Последовательный алгоритм | |
Последовательная сложность | [math]O(n^3)[/math] |
Объём входных данных | [math][/math] |
Объём выходных данных | [math][/math] |
Параллельный алгоритм | |
Высота ярусно-параллельной формы | [math][/math] |
Ширина ярусно-параллельной формы | [math][/math] |
Основные авторы описания: А.В.Кибанов, Т.З.Аджиева
Содержание
- 1 ЧАСТЬ. Свойства и структура алгоритма
- 1.1 Общее описание алгоритма
- 1.2 Математическое описание алгоритма
- 1.3 Вычислительное ядро алгоритма
- 1.4 Макроструктура алгоритма
- 1.5 Схема реализации последовательного алгоритма
- 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 ЧАСТЬ. Свойства и структура алгоритма
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]
Иногда полученные векторы нормируются сразу после их нахождения и находится система ртонормированных векторов [math]\mathbf{e_1},\mathbf{e_2},...,\mathbf{e_n}[/math]. В этом случае [math]\mathbf|{\mathbf{e_i}}|=1[/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)