Главная       Скачать       Коммерческая поддержка       FAQ       Forum       О нас       Английская версия

Получение собственных чисел и векторов эрмитовой матрицы с использованием бисекции и обратной итерации

Комплексное число λ и комплексный вектор z называются собственной парой комплексной матрицы A, если они удовлетворяют следующему условию: Az = λz. В случае, если матрица A размером NxN эрмитова, у неё есть N собственных чисел (не обязательно различных) и N соответствующих им собственных векторов, образующих ортонормированный собственный базис (в общем случае собственные векторы не ортогональны, причем их может быть и меньше, чем N).

Для эрмитовой матрицы A может быть поставлена как задача поиска всех собственных чисел и векторов (называемых спектром матрицы A), так и задача поиска не всего спектра, а лишь его части. В последнем случае можно использовать метод бисекции, позволяющий найти собственные числа, лежащие в указанном интервале (или собственные числа с указанными номерами), после чего при помощи метода обратной итерации получить по собственным числам соответствующие им собственные векторы. Если ищется только малая часть полного спектра матрицы, то достигается значительная экономия скорости по сравнению с QL/QR алгоритмом. Более подробно см. описание аналогичной подпрограммы для вещественных симметричных матриц.

Описание подпрограммы

Для поиска собственных чисел (и соответствующих векторов), лежащих в указанном полуинтервале (A, B] можно использовать подпрограмму HMatrixEVDR. Подпрограмма HMatrixEVDI позволяет найти собственные пары с указанными порядковыми номерами (при этом спектр упорядочен в порядке возрастания собственных чисел).

Следует отметить, что алгоритм эффективен только при поиске малой части собственных пар. Если требуется найти все собственные числа (или значительное их число), то более эффективен именно QL/QR алгоритм.

Этот алгоритм перенесен из библиотеки LAPACK 3.0

Manual entries

C++ evd subpackage   
C# evd subpackage   

This article is intended for personal use only.

Скачать ALGLIB

C#

Исходный код на C#

Downloads page

 

C++

Исходный код на C++

Downloads page

 

C++, арифметика высокой точности

Исходный код на C++, использующий библиотеки MPFR/GMP.

Исходный код GMP доступен на сайте gmplib.org. Исходный код MPFR доступен на сайте www.mpfr.org.

Downloads page

 

FreePascal

Исходный код на Free Pascal.

Downloads page

 

Delphi

Исходный код на Delphi.

Downloads page

 

VB.NET

Исходный код на VB.NET.

Downloads page

 

VBA

Исходный код на VBA.

Downloads page

 

Python

Исходный код на Python (CPython и IronPython).

Downloads page

 

 

ALGLIB® - numerical analysis library, 1999-2017.
ALGLIB is registered trademark of the ALGLIB Project.