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

Приведение квадратной матрицы к верхней форме Хессенберга

Квадратная матрица A может быть представлена в виде A = Q·H·Q T, где Q - ортогональная матрица, а H - матрица в верхней форме Хессенберга.

Матрица в верхней форме Хессенберга имеет следующий вид (крестиками помечены ненулевые элементы):

Как и другие алгоритмы ортогональной факторизации (например, алгоритмы QR и LQ-разложения), этот алгоритм использует последовательность элементарных отражений для преобразования матрицы A. Преобразования применяются к матрице слева и справа, последовательно устраняя элементы.

В результаты работы подпрограммы RMatrixHessenberg матрица A замещается матрицей H и последовательностью преобразований отражения, хранящейся в упакованной форме. Форма, в которой хранятся преобразования, и параметры подпрограммы подробно описаны в комментариях к ней. Во многом прослеживается аналогия с QR-разложением, которое использует нижнюю часть матрицы R для хранения матрицы Q.

Как и в случае с QR-разложением, представлены подпрограммы для "распаковки" матриц Q и H: RMatrixHessenbergUnpackQ и RMatrixHessenbergUnpackH. Первая подпрограмма позволяет получить матрицу Q, вторая подпрограмма позволяет получить матрицу H.

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

Manual entries

C++ ortfac subpackage   
C# ortfac 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-2012.
ALGLIB is registered trademark of the ALGLIB Project.