Текст подпрограммы и версий ( Фортран ) agg2c.zip |
Тексты тестовых примеров ( Фортран ) tagg2c.zip |
Текст подпрограммы и версий ( Си ) agg2c_c.zip |
Тексты тестовых примеров ( Си ) tagg2c_c.zip |
Текст подпрограммы и версий ( Паскаль ) agg2c_p.zip |
Тексты тестовых примеров ( Паскаль ) tagg2c_p.zip |
Вычисление всех собственных значений и собственных вектоpов в обобщенной проблеме Ax = λBx для двух комплексных матриц с помощью LZ - алгоpитма.
Подпрограмма AGG2C вычисляет все собственные значения и собственные векторы обобщенной проблемы Ax = λBx для комплексных матриц A, B размера N на N с помощью LZ - алгоpитма.
Информация о вычисленных собственных значениях выдается в вектоpах ALFA и BETA длины N, причем k - ое собственное значение λk определяется по формуле:
λk = ALFA(k) / BETA(k), при BETA(k) ≠ 0, (1) λk = ∞ , при BETA(k) = 0, λk = любое число , при ALFA(k) = BETA(k) = 0.
Вычисленные собственные векторы запоминаются в столбцах матрицы V.
R.S.Martin, J.H.Wilkinson, The Modified L*R - Algorithm for Complex Hessenberg Matrices, Numer. Math. 12, 1968.
C.B.Moler, G.B.Stewart, An Algorithm for the Generalized Matrix Eigenvalue Problems, SIAM J. Numer.Anal., 10, 1973.
SUBROUTINE AGG2C (A, B, V, ALFA, BETA, N, IERR)
Параметры
A, B - | комплексные двумерные массивы размера N на N, содержащие исходные матрицы; |
V - | комплексный двумерный масив размера N на N, содержащий вычисленные собственные векторы; |
ALFA - BETA | комплексные векторы длины N, B которых содержится информация о вычисленных собственных значениях; при этом собственные значения определяются формулой (1); |
N - | порядок исходных матриц (тип: целый); |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; значение IERR полагается равным номеpу собственного значения, для вычисления которого потребовалось более 30 итераций; при этом собственные значения с индексами IERR + 1, ..., N вычислены правильно, а с индексами 1, ..., IERR и соответствующие собственные векторы не вычисляются. |
Версии : нет
Вызываемые подпрограммы
AFG3C - | приведение пары комплексных матриц к веpхнему почти треугольному и к веpхнему треугольному виду с помощью LZ - алгоpитма. |
AGT2C - | вычисление всех собственных значений и собственных вектоpов обобщенной проблемы AV - 1x = BV - 1x для комплексных веpхней почти треугольной матрицей A, верхней треугольной матрицей B и произвольной невырожденной матрицей V с помощью LR - алгоритма. |
UTAG10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы AGG2C. |
Замечания по использованию
Исходные матрицы A и B не сохраняются. |
DIMENSION A(3, 3), B(3, 3), V(3, 3), ALFA(3), BETA(3) COMPLEX A, B, V, ALFA, BETA 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 CALL AGG2C (A, B, V, ALFA, BETA, N, IERR) Результаты: IERR = 0 | 2.79963-3.65018*i | ALFA = | 0.42142+0.54945*i | | -1.09877+0.0*i | | -1.05899-1.84748*i | BETA = | -0.15941+0.27809*i | | -2.19753+0.0*i | | -0.25205+0.19169*i | | -0.25205-0.19169*i | | 0.00 + 0.00*i | | -0.08799-0.72598*i | V = | -0.08799+0.72598*i | | 0.00 + 0.00*i | | 1.00000+0.0*i | | 1.00000+0.0*i | | 1.0+0.0*i | Собственные значения λk = ALFA(k) / BETA(k) λ1 = 0.8333 + 1.993*i λ2 = 0.8333 - 1.993*i λ3 = 0.500 + 0.0*i Собственные векторы: | -0.25205+0.19169*i | x1 = | -0.08799-0.72598*i | | 1.00000+0.0*i | | -0.25205-0.19169*i | x2 = | -0.08799+0.72598*i | | 1.00000+0.0*i | | 0.0+0.0*i | x3 = | 0.0+0.0*i | | 1.0+0.0*i |