Метод Якоби

Нахождение собственных значений и собственных векторов матрицы методом Якоби

В линейной алгебре задача нахождения собственных значений и соответствующих им собственных векторов является одной из важнейших. Она находит применение в физике (колебания систем), инженерии, экономике, компьютерной графике и машинном обучении (например, в методе главных компонент PCA).

Метод Якоби (также известный как метод вращений Якоби) — это надежный и точный численный алгоритм для вычисления полного спектра (всех собственных значений и векторов) симметричной матрицы. Если вам необходимо быстро получить результат, вы можете воспользоваться нашим удобным онлайн-калькулятором, а ниже представлено подробное описание теории и алгоритма.

Суть метода вращений Якоби

Алгоритм основан на свойстве симметричных матриц: они всегда могут быть диагонализированы с помощью ортогонального преобразования подобия. Грубо говоря, метод Якоби «вращает» матрицу в многомерном пространстве до тех пор, пока все её внедиагональные элементы не станут пренебрежимо малыми (близкими к нулю).

Это достигается за счет последовательного применения элементарных ортогональных матриц вращения (матриц Якоби). В результате итерационного процесса исходная матрица $A$ преобразуется в диагональную матрицу $D$:

D = VT * A * V

Где:

  • D — диагональная матрица, элементы на главной диагонали которой являются искомыми собственными значениями.
  • V — результирующая матрица вращений, столбцы которой являются собственными векторами, соответствующими этим значениям.
  • VT — транспонированная матрица V.

Подробный алгоритм метода Якоби

Для реализации метода необходимо выполнить следующие шаги:

  1. Подготовка: Задать исходную симметричную матрицу $A$ размерностью $n \times n$. Определить требуемую точность вычислений $\epsilon$ (epsilon) — критерий остановки алгоритма (например, $10^{-6}$).
  2. Инициализация матрицы векторов: Создать начальную матрицу собственных векторов $V$, приравняв её к единичной матрице $I$ размера $n \times n$.
  3. Итерационный процесс: Повторять цикл до тех пор, пока максимальный по модулю внедиагональный элемент матрицы $A$ не станет меньше $\epsilon$.
    • а) Поиск максимального элемента: Найти наибольший по абсолютному значению внедиагональный элемент $a_{ij}$ (где $i \neq j$). Обычно ищут в верхнем треугольнике матрицы, так как она симметрична.
    • б) Расчет угла вращения: Вычислить угол $\phi$ (phi), который обнулит элемент $a_{ij}$. Формула зависит от значений диагональных элементов $a_{ii}$ и $a_{jj}$:
      • Если $a_{ii} = a_{jj}$, то угол $\phi = \pi / 4$ (или $45^\circ$).
      • В общем случае используется формула:
        tg(2φ) = 2 * aij / (aii - ajj)

        Отсюда находится $\phi$, а затем $\cos(\phi)$ и $\sin(\phi)$.

    • в) Создание матрицы вращения P: Конструируется матрица $P$, идентичная единичной, за исключением четырех элементов:
      Pii = cos(φ)
      Pjj = cos(φ)
      Pij = -sin(φ)
      Pji = sin(φ)
      
    • г) Обновление матриц: Выполнить преобразование текущей матрицы $A$ и накопление векторов в матрицы $V$:
      Anew = PT * Aold * P
      Vnew = Vold * P
      

      Примечание: На практике полные матричные умножения не проводят, а используют оптимизированные формулы для пересчета только изменяемых строк и столбцов.

  4. Финализация: После завершения цикла (когда внедиагональные элементы подавлены):
    • Элементы на главной диагонали матрицы $A$ — это вычисленные **собственные значения**.
    • Столбцы матрицы $V$ — это соответствующие им **собственные векторы**.

Пример вычисления собственных значений и векторов

Рассмотрим применение одной итерации метода для симметричной матрицы 3×3:

    | 4  -2   2 |
A = | -2  5   0 |
    | 2   0   6 |

Ход решения:

  1. Начальная матрица собственных векторов $V = I$.
  2. Выбираем максимальный внедиагональный элемент. В данном случае это $a_{01} = -2$ (или $a_{10}$, или $a_{02}$). Выберем позицию $(0, 1)$, то есть $i=0, j=1$.
  3. Элементы $a_{00} = 4$, $a_{11} = 5$.
  4. Вычисляем угол $\phi$:
    tg(2φ) = 2 * (-2) / (4 - 5) = -4 / -1 = 4

    Отсюда $2\phi = \text{arctg}(4) \approx 1.3258$ рад.

    φ ≈ 0.6629 рад.

    Вычисляем: $c = \cos(\phi) \approx 0.7882$, $s = \sin(\phi) \approx 0.6154$.

  5. Строим матрицу вращения $P_{01}$:
           |  0.7882  -0.6154   0 |
    P01 =  |  0.6154   0.7882   0 |
           |  0        0        1 |
    
  6. Обновляем матрицу A ($A_{1} = P^T A P$):
           |  2.438   0       1.576 |
    A1 ≈ |  0       6.562   1.231 |
           |  1.576   1.231   6     |
    

    Заметьте, элементы $a_{01}$ и $a_{10}$ стали нулевыми.

  7. Обновляем матрицу V ($V_{1} = V P = P$ на первой итерации).
  8. Процесс повторяется. Теперь максимальный элемент $a_{02} = 1.576$. Выполняется вращение в плоскости $(0, 2)$, обнуляя этот элемент, но при этом элемент $a_{01}$ снова может стать ненулевым (но меньшим, чем был).

После достаточного количества итераций (сходимости) диагональ матрицы $A$ примет вид искомых собственных значений, а столбцы $V$ — векторов. Для данной матрицы точные собственные значения: $\lambda \approx [8.27, 4.41, 2.32]$. Столбцы матрицы $V$ будут соответствовать этим значениям.

Преимущества и ограничения метода

  • Преимущества: Высокая точность, гарантированная сходимость для симметричных матриц, находит сразу весь спектр (все значения и векторы), алгоритм численно устойчив.
  • Недостатки: Является итерационным, поэтому может быть медленнее прямых методов (например, QR-алгоритма) для очень больших матриц. Применим *только* к симметричным (или эрмитовым в комплексном случае) матрицам.

Заключение

Метод Якоби — это классический, надежный численный алгоритм линейной алгебры. Понимание принципа последовательных вращений для подавления внедиагональных элементов позволяет эффективно решать задачи спектрального анализа. Наш онлайн-калькулятор реализует этот алгоритм с высокой точностью, избавляя вас от рутинных пересчетов матриц.

Другие калькуляторы