![]() |
Комплексное число λ и комплексный вектор z называются собственной парой комплексной матрицы A, если они удовлетворяют следующему условию: Az = λz. В случае, если комплексная матрица A является эрмитовой, у неё есть N вещественной собственных чисел (не обязательно различных) и N соответствующих им собственных векторов, образующих ортонормированный собственный базис (в случае матрицы общего вида собственные векторы не ортогональны, причем их может быть и меньше, чем N). Более подробно см. описание аналогичной подпрограммы для вещественных симметричных матриц.
Этот алгоритм находит все собственные числа (и, по запросу, собственные векторы) эрмитовой матрицы. Получаемая алгоритмом матрица приводится ортогональным преобразованием к вещественной трехдиагональной форме, после чего вызывается алгоритм, решающий эту же задачу для трехдиагональных матриц.
Алгоритм является итеративным, и, теоретически, может не сойтись. В таком случае он вернет False. Однако, на практике подобный вариант развития событий очень маловероятен - сходимость алгоритма очень хорошая, он справляется с большинством из тех матриц, которые обычно возникают в реальных задачах.
Этот алгоритм использует программы из библиотеки LAPACK 3.0
| C++ | evd subpackage | |
| C# | evd subpackage |
This article is intended for personal use only.
Исходный код на C#
Исходный код на C++
Исходный код на C++, использующий библиотеки MPFR/GMP.
Исходный код GMP доступен на сайте gmplib.org. Исходный код MPFR доступен на сайте www.mpfr.org.
Исходный код на Free Pascal.
Исходный код на Delphi.
Исходный код на VB.NET.
Исходный код на VBA.
Исходный код на Python (CPython и IronPython).
|
ALGLIB® - numerical analysis library, 1999-2012. |