Собственные вектора и значения матриц
Страница 4. Готовые прикладные пакеты для решения проблем собственных векторов и значений


 

Готовые прикладные пакеты для решения проблем собственных векторов и значений

Скорее всего, вы уже поняли, что разрешение проблемы собственных векторов и значений является весьма трудным делом. Это так. Это один из немногих разделов в этой книге, где мы не рекомендуем избегать пользования готовыми прикладными пакетами. С другой стороны, целью этой главы является дать некоторое представление о том, что может делаться внутри подобных готовых программ, так что вы можете делать осмысленный выбор между ними и собственными, а также осмысленно диагностировать проблему, когда что-либо идет не так.

Почти все готовые программы, использующиеся сейчас, восходят к алгоритмам, опубликованным в Handbook for Automatic Computation, by Wilkinson & Reinsch, Vol. II, Linear Algebra [2]. Эта великолепная подборка работ различных авторов является своего рода Библией в данной области. Общедоступным пакетом, осуществляющим алгоритмы из этой книги на Фортране, является EISPACK [3]. Программы в этой главе нашей книги являются переводами программ из Handbook или EISPACK, так что понимание приведет вас в значительной мере к пониманию того, как эти канонические пакеты составляются.

Пакеты IMSL [4] и NAG [5] также воспроизводят в основном алгоритмы из Handbook, на Фортране.

"Хороший пакет" по проблеме собственных векторов должен быть представлен отдельными программами, либо отдельными путями цепочек программ для каждой из следующих задач:

  • все собственные значения, без собственных векторов;
  • все собственные значения и некоторые собственные векторы;
  • все собственные значения и векторы.
Целью этого разделения является экономия компьютерного времени и ресурсов; нет смысла вычислять собственные векторы, если они не нужны. Часто интересуются только векторами, соответствующими самым большим собственным значениям, или самым большим по модулю, или только отрицательным. В этом случае метод, который используется для вычисления "некоторых" собственных векторов, обычно более эффективен, чем метод для всех, если вам нужно не более четверти от общего количества.

Хороший пакет также представляет отдельные пути решения для следующих типов матриц:

  • действительная, симметричная, трехдиагональная;
  • действительная, симметричная, ленточная (ненулевыми являются только несколько диагоналей, примыкающих к главной);
  • действительная, симметричная;
  • действительная, несимметричная;
  • комплексная, эрмитова;
  • комплексная, неэрмитова.
Опять, целью этого разделения является экономия времени и ресурсов с помощью использования наименее генерализированной процедуры.

В настоящей главе мы представим программы для следующих случаев:

  • все вектора и значения для действительной, симметричной, трехдиагональной матрицы;
  • все вектора и значения для действительной симметричной матрицы;
  • все вектора и значения для комплексной эрмитовой матрицы;
  • все вектора и значения для действительной несимметричной, матрицы.

Также будет рассмотрено, каким образом получить некоторые собственные векторы несимметричной матрицы методом обратной итерации.

 
« Предыдущая статья   Следующая статья »