Текст подпрограммы и версий ( Фортран ) afg3c.zip |
Тексты тестовых примеров ( Фортран ) tafg3c.zip |
Текст подпрограммы и версий ( Си ) afg3c_c.zip |
Тексты тестовых примеров ( Си ) tafg3c_c.zip |
Текст подпрограммы и версий ( Паскаль ) afg3c_p.zip |
Тексты тестовых примеров ( Паскаль ) tafg3c_p.zip |
Приведение пары комплексных матриц к верхней почти треугольной форме элементарными преобразованиями с помощью LZ - алгоритма.
Для заданных комплексных матриц А и В размера N*N вычисляются такие элементарные матрицы L и Z размера N*N, что матрица LАZ является верхней почти треугольной, а матрица LВZ - верхней треугольной.
В результате работы подпрограммы АFG3С матрица LАZ помещается на место матрицы А, матрица LВZ - на место матрицы В. Левостороннее преобразование L не сохраняется, правостороннее преобразование Z по желанию пользователя может сохраняться.
R.S.Мartin, J.Н.Wilkinson, Tне Мodified LR - Аlgorithm for Сomplex Нessenberg Мatrices, Numer.Мath., 12, 1968.
С.В.Мoler, G.W.Stewart, Аn Аlgorithm for тне Generalized Мatrix Еigenvalue Рrodlems, SIАМ J. Numer. Аnal., 10, 1973.
SUBROUTINE AFG3C (A, B, Z, N, M)
Параметры
A, B - | комплексные двумерные массивы размера N*N, в которых задаются исходные матрицы А и В; в результате работы подпрограммы в массивы А и В записываются соответственно верхняя почти треугольная матрица LАZ и верхняя треугольная матрица LВZ; |
Z - | комплексный двумерный массив размера N*N, который содержит вычисленное правостороннее преобразование Z; если преобразование не нужно, то параметр Z в подпрограмме не используется; |
N - | заданный порядок матриц А, В и Z (тип: целый); |
M - | задает режим работы подпрограммы (тип: целый); причем |
М = 0 - | если преобразование Z сохраняется, |
М = 1 - | если преобразование Z не сохраняется. |
Версии: нет
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
Матрица преобразования Z необходима для вычисления собственных векторов обобщенной проблемы Аx = λВx по правилу x = Zy, где y - собственные векторы обобщенной проблемы LАZy =λLВZy . | |
2. | Если матрица преобразования Z не нужна, т.е. когда М = 1, то в качестве фактического параметра Z можно использовать параметр А. |
DIMENSION A(3, 3), B(3, 3), Z(3, 3) COMPLEX A, B, Z DATA A / (1., 0.), (-10., 0.), (5., 0.), (0.5, 0.), (2., 0.), * (1., 0.), 2* (0., 0.), (0.5, 0.) / DATA B / (0.5, 0.), (3., 0.), (4., 0.), (0., 0.), (3., 0.), * (0.5, 0.), 2* (0., 0.), (1., 0.) / N = 3 M = 0 CALL AFG3C (A, B, Z, N, M) Результаты: | 5.00000 + 0.0 i 1.03125 + 0.0 i 0.50000 + 0.0 i | A = |-13.75000 + 0.0 i 1.22056 + 0.0 i -0.37500 + 0.0 i | | 0.0 + 0.0 i 0.40455 + 0.0 i -0.07273 + 0.0 i | | 4.00000 + 0.0 i 0.56250 + 0.0 i 1.00000 + 0.0 i | B = | 0.0 + 0.0 i 2.57812 + 0.0 i -0.75000 + 0.0 i | | 0.50000 + 0.0 i 0.0 + 0.0 i -0.14545 + 0.0 i | | 1.0 + 0.0 i 0.0 + 0.0 i 0.0 + 0.0 i | Z = | 0.0 + 0.0 i 1.0 + 0.0 i 0.0 + 0.0 i | | 0.0 + 0.0 i 0.06250 + 0.0 i 1.0 + 0.0 i |