Алгоритм Ланцоша с выборочной ортогонализацией: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Qmakar (обсуждение | вклад) (Новая страница: «{{Assignment|ASA}} '''Алгоритм''' \beta_0 = 0,\; q_0 = 0») |
Qmakar (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
− | + | <math> \beta_0=0,q_0=0</math> | |
+ | <math> q_{1} = \frac{b_{j}}{\|b\|_2}</math>, где <math> \|b\|_2 = \sqrt{\sum\limits_{j=1}^{n} b_j^2}</math> | ||
+ | <math> for\, j=1\,\, to\, \, k\, \, do:</math> | ||
+ | <math>z_j = \sum\limits_{m=1}^{n} a_{jm} q_{i_m}, \; j = 1,\,\dots\,, n</math> #Считаем результат применения линейного оператора | ||
+ | <math>z&=Aq_j, </math> | ||
+ | <math>\alpha_j&=q_j^Tz, </math> | ||
+ | <math>z&=z-\alpha_jq_j-\beta_{j}q_{j-1}, </math> | ||
+ | <math>\beta_{j+1}&=||z|| </math> | ||
+ | <math>q_{j+1}&=z/\beta_{j+1}, </math> | ||
+ | <math> </math> | ||
+ | <math> </math> | ||
+ | <math> </math> | ||
+ | <math>A</math> к вектору <math>q_i</math>. | ||
− | \ | + | <math>i.2\, \alpha_i = \sum\limits_{j=1}^{n}q_{i_j} z_j</math> #Получаем результат скалярного произведения векторов <math>q_i</math> и <math>z</math>. |
+ | |||
+ | <math>i.3\, z_j = z_j - \alpha_i q_{i_j} - \beta_{i-1}q_{i-1_j}, \, j = 1,\,\dots\,, n</math> #Вычисляем линейную комбинацию векторов. | ||
+ | |||
+ | <math>i.4\, \beta_i = \|z\|_2 = \sqrt{\sum\limits_{j=1}^{n} z_j^2}</math> #Считаем норму вектора <math>z</math>. | ||
+ | |||
+ | <math>i.5</math> Проверка равенства <math>\beta_i == 0</math> # Если норма оказалась равной нулю, то завершаем итерации и переходим к вычислению собственных векторов и собственных значений полученной матрицы. В обратном случае, продолжаем выполнения итераций. | ||
+ | |||
+ | <math>i.6\, q_{i+1_j} = \frac{z_j}{\beta_i}, \; j = 1,\, \dots \,, n</math> #Нормируем вектор <math>z</math>. | ||
+ | |||
+ | <math>i.7\,</math> Если выполнили <math>k</math> итераций, то завершаем выполнение итераций, переходим к следующему шагу. Иначе начинаем последующую итерацию цикла. | ||
+ | |||
+ | <math>4.</math> Вычисляем собственные значения и собственные вектора полученной матрицы <math>T_k</math>. |
Версия 02:33, 7 декабря 2016
Эта работа прошла предварительную проверку Дата последней правки страницы: 07.12.2016 Данная работа соответствует формальным критериям. Проверено ASA. |
[math] \beta_0=0,q_0=0[/math] [math] q_{1} = \frac{b_{j}}{\|b\|_2}[/math], где [math] \|b\|_2 = \sqrt{\sum\limits_{j=1}^{n} b_j^2}[/math] [math] for\, j=1\,\, to\, \, k\, \, do:[/math] [math]z_j = \sum\limits_{m=1}^{n} a_{jm} q_{i_m}, \; j = 1,\,\dots\,, n[/math] #Считаем результат применения линейного оператора [math]z&=Aq_j, [/math] [math]\alpha_j&=q_j^Tz, [/math] [math]z&=z-\alpha_jq_j-\beta_{j}q_{j-1}, [/math] [math]\beta_{j+1}&=||z|| [/math] [math]q_{j+1}&=z/\beta_{j+1}, [/math] [math] [/math] [math] [/math] [math] [/math]
[math]A[/math] к вектору [math]q_i[/math].
[math]i.2\, \alpha_i = \sum\limits_{j=1}^{n}q_{i_j} z_j[/math] #Получаем результат скалярного произведения векторов [math]q_i[/math] и [math]z[/math].
[math]i.3\, z_j = z_j - \alpha_i q_{i_j} - \beta_{i-1}q_{i-1_j}, \, j = 1,\,\dots\,, n[/math] #Вычисляем линейную комбинацию векторов.
[math]i.4\, \beta_i = \|z\|_2 = \sqrt{\sum\limits_{j=1}^{n} z_j^2}[/math] #Считаем норму вектора [math]z[/math].
[math]i.5[/math] Проверка равенства [math]\beta_i == 0[/math] # Если норма оказалась равной нулю, то завершаем итерации и переходим к вычислению собственных векторов и собственных значений полученной матрицы. В обратном случае, продолжаем выполнения итераций.
[math]i.6\, q_{i+1_j} = \frac{z_j}{\beta_i}, \; j = 1,\, \dots \,, n[/math] #Нормируем вектор [math]z[/math].
[math]i.7\,[/math] Если выполнили [math]k[/math] итераций, то завершаем выполнение итераций, переходим к следующему шагу. Иначе начинаем последующую итерацию цикла.
[math]4.[/math] Вычисляем собственные значения и собственные вектора полученной матрицы [math]T_k[/math].