Текст подпрограммы и версий ( Фортран ) aeb5r.zip aeb5d.zip |
Тексты тестовых примеров ( Фортран ) taeb5r.zip taeb5d.zip |
Текст подпрограммы и версий ( Си ) aeb5r_c.zip aeb5d_c.zip |
Тексты тестовых примеров ( Си ) taeb5r_c.zip taeb5d_c.zip |
Текст подпрограммы и версий ( Паскаль ) aeb5r_p.zip , aeb5e_p.zip |
Тексты тестовых примеров ( Паскаль ) taeb5r_p.zip , taeb5e_p.zip |
Вычисление методом бисекции по заданным номерам группы подряд идущих собственных значений вещественной симметричной ленточной матрицы, заданной в компактной форме.
Пусть все собственные значения заданной симметричной ленточной матрицы порядка N занумерованы в порядке неубывания
λ1 ≤ λ2 ≤ ... ≤ λN-1 ≤ λN .
Подпрограмма АЕВ5R вычисляет группу подряд идущих собственных значений заданной матрицы по заданным номерам (задаются номера минимального и максимального собственных значений из искомой группы) с помощью метода бисекции, применяемого непосредственно к ленточной матрице.
Подпрограмма АЕВ5R позволяет вычислять различные собственные значения с различной точностью. Требуемая точность задается пользователем в специальном векторе.
Уилкинсон, Райнш. "Справочник алгоритмов на языке АЛГОЛ. Линейная алгебра". М.: "Машиностроение", 1976.
SUBROUTINE AEB5R (NM, N, M, B, L1, L2, EV, EPS, C)
Параметры
NM - | число строк двумерного массива B, указанное при описании этого массива в вызывающей подпрограмме (тип: целый); |
N - | порядок исходной матрицы, N ≤ NМ (тип: целый); |
M - | число нижних ненулевых кодиагоналей исходной матрицы, включая главную диагональ (тип: целый); |
B - | вещественный двумерный массив размерности NМ * М, в первых N строках которого задана исходная симметричная ленточная матрица в компактной форме (см. Организация Библиотеки. Способы представления матриц специального вида); |
L1, L2 - | заданные минимальный и максимальный номера искомых собственных значений (тип: целый); возможны оба варианта: L1 ≤ L2 и L1 ≥ L2 (см. описание параметра EV); |
EV - | вещественный вектор длины | L2 - L1 | + 1, содержащий на выходе из подпрограммы вычисленные собственные значения; при этом, если L1 < L2, то собственные значения располагаются в порядке неубывания, а если L2 < L1, то - в порядке невозрастания; |
EPS - | вещественный вектор длины | L2 - L1 | + 1, в компонентах которого пользователем задаются значения допустимых погрешностей для соответствующих вычисляемых собственных значений; |
C - | вещественный двумерный рабочий массив размерности M * min (2М - 1, N). |
Версии
AEB5D - | вычисление методом бисекции по заданным номерам группы подряд идущих собственных значений симметричной ленточной матрицы, заданной в компактной форме и с двойной точностью. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В подпpогpамме AEВ5D паpаметpы B, EV, EPS, C имеют тип DOUBLE PRECISION; | |
2. |
Подпpогpамма AEВ5R (AEB5D) сохpаняет исходный массив В; | |
3. |
При работе подпрограммы слишком малые компоненты вектора EPS будут увеличены; | |
4. |
Так как подпрограмма AEB5R применяет метод бисекции непосредственно к ленточной матрице, то ее рекомендуется использовать только, если ширина ленты невелика и число искомых собственных значений достаточно мало, точнее, если выполнно неравенство L N > 0.25 (M - 1) ∑ r i , i =1где L = | L2 - L1 | + 1, ri = - log2 (EPS ( I ) / || A || ), || A || - спектральная норма исходной матрицы А. В противном случае выгоднее исходную матрицу привести к трехдиагональному виду и применять метод бисекции к трехдиагональной матрице. |
DIMENSION B(5, 3), C(3, 5), EV(2), EPS(2) DATA B /2*0., 4., 0., 4., 0., 4*3., * 5., 3.25, 1., 4.25, 6./, EPS /2*1.E - 5/ N = 5 NM = 5 M = 3 L1 = 2 L2 = 3 CALL AEB5R (NM, N, M, B, L1, L2, EV, EPS, C) Результаты: EV = ( .10000000E+01, .20000000E+01 ) EPS = ( .10E-04, .10E-04 )