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

Собственные числа и собственные векторы трехдиагональной симметричной матрицы

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

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

Этот алгоритм находит собственные числа (и, опционально, собственные векторы) трехдиагональной симметричной матрицы. Также он используется при нахождении собственных пар произвольной симметричной матрицы, поскольку любая симметричная матрица может быть приведена к трехдиагональной ортогональным преобразованием подобия, не меняющим собственных чисел матрицы.

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

Подпрограмма SMatrixTDEVD находит собственные числа (и, если требуется, собственные векторы) трехдиагональной матрицы, заданной главной диагональю D и побочной диагональю E.

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

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

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

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.