Текст подпрограммы и версий ( Фортран ) afh5r.zip , afh5d.zip |
Тексты тестовых примеров ( Фортран ) tafh5r.zip , tafh5d.zip |
Текст подпрограммы и версий ( Си ) afh5r_c.zip , afh5d_c.zip |
Тексты тестовых примеров ( Си ) tafh5r_c.zip , tafh5d_c.zip |
Текст подпрограммы и версий ( Паскаль ) afh5r_p.zip , afh5e_p.zip |
Тексты тестовых примеров ( Паскаль ) tafh5r_p.zip , tafh5e_p.zip |
Приведение вещественной симметричной матрицы, заданной в компактной форме, к симметричной трехдиагональной матрице с помощью ортогонального преобразования подобия.
Подпрограмма АFН5R осуществляет приведение вещественной матрицы А порядка N к симметричной трехдиагональной матрице Т с помощью следующей последовательности ортогональных преобразований подобия
Ai = Pi*Ai-1*Pi , i = 1, 2, ..., N-2 , где А0 = А , Рi = I - uiuiT / hi , hi = uiTui / 2 ,
а векторы ui ∈ ЕN выбираются таким образом, чтобы последние i строк и столбцов матрицы Аi имели бы трехдиагональную структуру. При этом у векторов ui отличными от нуля являются только компоненты с номерами 1, 2, ..., N - 1 . I - единичная матрица порядка N .
Информация о выполненых преобразованиях, а именно векторы ui, порождающие матрицы отражения Рi, запоминается и впоследствии может быть использована для восстановления собственных векторов исходной матрицы.
Уилкинсон, Райнш. Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра. М.: Машиностроение, 1976.
SUBROUTINE AFH5R (N, NV, A, D, E, E2)
Параметры
N - | порядок исходной матрицы (тип: целый); |
NV - | длина вектора А, указанная при описании этого вектора в вызывающей подпрограмме, причем NV ≥ N (N + 1) / 2 (тип: целый); |
A - | вещественный вектор длины NV, в первых N (N + 1) / 2 компонентах которого задается исходная симметричная матрица в компактной форме; в результате работы подпрограммы вектор А содержит информацию о векторах ui, i = 1, 2, ..., N - 2, при этом на месте внедиагональных элементов (N - i + 1) - й строки исходной матрицы запоминаются ненулевые элементы вектора ui, а на месте диагонального элемента (N - i + 1) - й строки - величина √ h i (см. математическое описание); |
D - | вещественный вектор длины N, содержащий на выходе из подпрограммы диагональные элементы трехдиагональной матрицы; |
E - | вещественный вектор длины N, содержащий на выходе из подпрограммы в последних N - 1 компонентах поддиагональные элементы трехдиагональной матрицы, Е (1) = 0; |
E2 - | вещественный вектор длины N на выходе из подпрограммы Е2 (I) = (Е (I))2 , I = 1, 2, ..., N. |
Версии
AFH5D - | приведение симметричной матрицы, заданной в компактной форме с удвоенной точностью, к симметричной трехдиагональной форме с помощью ортогонального преобразования подобия. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
Фактические параметры, соответствующие формальным параметрам Е и Е2 могут совпадать, при этом будут получены только сами поддиагональные элементы без их квадратов. | |
2. | В подпрограмме АFН5D параметры А, D, Е, Е2 имеют тип DОUВLЕ РRЕСISIОN. |
DIMENSION A (10), D (4), E (4), E2 (4) DATA A /1., 0., 2., -1., 0., 1., 4., 2*0., 2./ CALL AFH5R (4, 10, A, D, E, E2) Результаты: A = (0., 0., 0., -1., 1., 1., 4., 0., 4., 4.)T D = (2., 1., 1., 2.)T E = (0., 0., -1., -4.)T E2 = (0., 0., 1., 16.)T Это означает, что | 2 0 0 0 | | 0 1 -1 0 | T = | 0 -1 1 -4 | | 0 0 -4 2 | Pi = I - uiuiT / hi , i = 1, 2 , где u1 = (4., 0., 4., 0.)T , √ h 1 = 4 u2 = (-1., 1., 0., 0.)T , √ h 2 = 1