Алгоритм Ланцоша с выборочной ортогонализацией: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Нет описания правки
Нет описания правки
Строка 10: Строка 10:
     <math>for\, i=1\,\, to\, \, j-1\, \, do: </math>
     <math>for\, i=1\,\, to\, \, j-1\, \, do: </math>
         <math>if\,  \beta_j|v_i(j)| \leqslant \sqrt{\varepsilon}\|T_j\| </math>
         <math>if\,  \beta_j|v_i(j)| \leqslant \sqrt{\varepsilon}\|T_j\| </math>
             <math>z = z-(y^T_{i,j},z)y_{i,j} </math>
             <math>z = z-(y^T_{i,j},z)y_{i,j} </math>, где <math>y_{i,j} = Q_jv_i</math>  
     <math>\beta_{j}=\|z\|_2 </math>
     <math>\beta_{j}=\|z\|_2 </math>
     <math>q_{j+1}=z/\beta_{j}, </math>
     <math>q_{j+1}=z/\beta_{j}, </math>
      
     Вычисляем собственные значения и собственные векторы полученной матрицы <math>T_j</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>.

Версия от 23:49, 6 декабря 2016

Файл:Symbol wait.svgЭта работа прошла предварительную проверку
Дата последней правки страницы:
06.12.2016
Данная работа соответствует формальным критериям.
Проверено ASA.


[math]\displaystyle{  \beta_0=0,q_0=0 }[/math]
[math]\displaystyle{  q_{1} = \frac{b_{j}}{\|b\|_2} }[/math], где [math]\displaystyle{  \|b\|_2 = \sqrt{\sum\limits_{j=1}^{n} b_j^2} }[/math]
[math]\displaystyle{  for\, j=1\,\, to\, \, k\, \, do: }[/math]
    [math]\displaystyle{ z=Aq_j,   }[/math]
    [math]\displaystyle{ \alpha_j=q_j^Tz,  }[/math]
    [math]\displaystyle{ z=z-\alpha_jq_j-\beta_{j-1}q_{j-1},   }[/math]
    [math]\displaystyle{ for\, i=1\,\, to\, \, j-1\, \, do:  }[/math]
        [math]\displaystyle{ if\,  \beta_j|v_i(j)| \leqslant \sqrt{\varepsilon}\|T_j\|  }[/math]
            [math]\displaystyle{ z = z-(y^T_{i,j},z)y_{i,j}  }[/math], где [math]\displaystyle{ y_{i,j} = Q_jv_i }[/math] 
    [math]\displaystyle{ \beta_{j}=\|z\|_2  }[/math]
    [math]\displaystyle{ q_{j+1}=z/\beta_{j},  }[/math]
    Вычисляем собственные значения и собственные векторы полученной матрицы [math]\displaystyle{ T_j }[/math].