Текст подпрограммы и версий ( Фортран ) aeb2r.zip , aeb2d.zip |
Тексты тестовых примеров ( Фортран ) taeb2r.zip , taeb2d.zip |
Текст подпрограммы и версий ( Си ) aeb2r_c.zip , aeb2d_c.zip |
Тексты тестовых примеров ( Си ) taeb2r_c.zip , taeb2d_c.zip |
Текст подпрограммы и версий ( Паскаль ) aeb2r_p.zip , aeb2e_p.zip |
Тексты тестовых примеров ( Паскаль ) taeb2r_p.zip , taeb2e_p.zip |
Вычисление собственных значений вещественной симметрической ленточной матрицы, принадлежащих заданному интервалу, их номеров и соответствующих собственных векторов.
Симметричная ленточная матрица приводится ортогональными преобразованиями Гивенса к трехдиагональной форме, которая используется для вычисления методом бисекций собственных значений, принадлежащих данному интервалу, их номеров и соответствующих собственных векторов с помощью метода обратных итераций.
Дж.Х.Уилкинсон, Агебраическая проблема собственных значений, "Наука", М., 1970.
SUBROUTINE AEB2R ( N, NC, MM, M, RLB, RUB, A, EV, V, IRAB, RAB1, RAB2, IERR)
Параметры
N - | порядок исходной матрицы (тип: целый); |
NC - | заданное число кодиагоналей исходной матрицы, включая главную диагональ (тип: целый); |
MM - | оценка сверху числа собственных значений исходной матрицы, принадлежащих заданному интервалу (тип: целый); если фактическое число собственных значений М, принадлежащих заданному интервалу, больше, чем ММ, то собственные значения не вычисляются; |
M - | целая переменная, в которой запоминается вычисленное число собственных значений, принадлежащих заданному интервалу; |
RLB - RUB | заданные нижняя и верхняя границы интервала собственных значений (тип: вещественный); если RLВ > RUВ, то собственные значения не вычисляются; |
A - | вещественный двумерный массив размера N*NC, в котором задается исходная симметричная ленточная матрица в компактной форме; |
EV - | вещественный вектор длины ММ, содержащий вычисленные в возрастающем порядке собственные значения; |
V - | вещественный двумерный массив размерности N на ММ, содержащий в своих первых М столбцах вычисленные ортонормированные собственные векторы; |
IRAB - | целый вектор длины ММ, содержащий индексы расположенных в возрастающем порядке М вычисленных собственных значений; |
RAB1 - | вещественный двумерный массив размерности N*NC, используемый как рабочий; |
RAB2 - | вещественный вектор длины N * (2*NС+4), используемый как рабочий; |
IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом значение IЕRR |
- равно 3*N+1, если значение ММ меньше истинного числа собственных значений М на интервале; | |
- равно - К, если для вычисления собственного вектора с индексом К не нашлось ни одного начального вектора, обеспечивающего приемлемое приближение; при этом компоненты этого собственного вектора полагаются равными нулю. Если таких собственных векторов несколько, то значение IЕRR равно индексу последнего из них. |
Версии
AEB2D - | вычисление собственных значений вещественной симметрической ленточной матрицы, принадлежащих заданному интервалу, их номеров и соответствующих собственных векторов с двойной точностью. |
Вызываемые подпрограммы
UTAE10 - | подпрограмма выдачи диагностических сообщений при работе подпрограмм АЕВ2R, AEB2D. |
Замечания по использованию
Подпрограммы АЕВ2R, AEB2D не сохраняют исходную ленточную матрицу, но в последних двух столбцах массива А запоминается ее трехдиагональная форма. | |
В подпрограмме AEB2D параметры A, EV, V, RAB1, RAB2, RLB, RUB имеют тип DОUВLЕ РRЕСISIОN . |
DОUВLЕ РRЕСISIОN A, EV, V, RAB1, RAB2, RLB, RUB DIMENSION A(7, 3), EV(7), V(7, 7), IRAB(7), RAB1(7, 3), RAB2(70) DO 1 I = 1, 7 A(I, 3) = 10.D0**(7-I) A(I, 2) = 10.D0 1 A(I, 1) = 1.D0 N = 7 NC = 3 MM = 7 RLB = -6.D0 RUB = 10.D0**7 CALL AEB2D (N, NC, MM, M, RLB, RUB, A, EV, V, * IRAB, RAB1, RAB2, IERR) Результаты:
Собственные значения в интервале (-6.D0, 10.D0**7)
| -5.67228961584D+00 | | 1.55306282219D+01 | | 1.01029236853D+02 | EV = | 1.00010120030D+03 | | 1.00000101020D+04 | | 1.00000001010D+05 | | 1.00000000011D+06 |
Собственные векторы, соответствующие вычисленным в интервале ( - 6.D0, 10.D0**7) собственным значениям:
| -0.4602311D-11 | | 1.0165937D-11 | | 6.1941045D-10 | | 3.2304868D-09 | | 4.5962454D-06 | | -1.0198015D-05 | V1 = | -1.0790686D-04 | , V2 = | -2.2101839D-04 | , | -4.4909463D-02 | | 1.0403192D-01 | | 5.5756761D-01 | | -8.2263142D-01 | | -8.2891585D-01 | | -5.5897666D-01 | | -8.7876556D-11 | | 1.2133718D-09 | | -1.2077304D-07 | | -9.9880319D-06 | | 8.9075420D-05 | | -1.1122780D-03 | V3 = | 1.1174350D-02 | , V4 = | 9.9993692D-01 | , | -9.9349727D-01 | | 1.1120421D-02 | | -1.1133146D-01 | | 1.1224759D-03 | | -2.1061961D-02 | | 2.2365282D-05 | | -1.0089779D-06 | | 1.1111235D-05 | | -1.1112329D-04 | | -9.9999999D-01 | | 9.9999937D-01 | | -1.1111211D-04 | V5 = | 1.1112103D-03 | , V6 = | -1.0112234D-05 | , | 1.0213258D-04 | | -2.1244794D-09 | | 2.1347731D-07 | | -0.1013453D-11 | | 1.0427767D-08 | | -3.1713216D-12 | | 1.0000000D+00 | | 1.1111122D-05 | | 1.0102132D-06 | V7 = | 2.1234289D-11 | , | 0.1010306D-11 | | -2.1027951D-16 | | -3.1713216D-14 | IERR = 0