Текст подпрограммы и версий ( Фортран )
afj0r.zip , afj0d.zip
Тексты тестовых примеров ( Фортран )
tafj0r.zip , tafj0d.zip
Текст подпрограммы и версий ( Си )
afj0r_c.zip , afj0d_c.zip
Тексты тестовых примеров ( Си )
tafj0r_c.zip , tafj0d_c.zip
Текст подпрограммы и версий ( Паскаль )
afj0r_p.zip , afj0e_p.zip
Тексты тестовых примеров ( Паскаль )
tafj0r_p.zip , tafj0e_p.zip

Подпрограмма:  AFJ0R

Назначение

Приведение матрицы Якоби к симметрической трехдиагональной матрице преобразованием подобия.

Математическое описание

Пусть Т - матрица Якоби, т.е. трехдиагональная матрица, произведения пар внедиагональных элементов которой все неотрицательны и равны нулю только тогда, когда оба сомножителя равны нулю.

Подпрограмма АFJ0R приводит матрицу Т к симметричной матрице Н преобразованием подобия Н = D - 1ТD , где D - диагональная матрица. При этом используются лишь внедиагональные элементы матрицы Т, поскольку диагональные элементы матриц Т и Н совпадают.

Использование

    SUBROUTINE  AFJ0R (B, C, N, IERR) 

Параметры

B - вещественный вектор длины N, содержащий в последних N - 1 компонентах наддиагональные элементы матрицы Якоби Т; на выходе подпрограммы в последних N - 1 компонентах вектора в запоминаются вычисленные наддиагональные элементы матрицы Н;
C - вещественный вектор длины N, в последних N - 1 компонентах которого содержатся поддиагональные элементы исходной матрицы Якоби; на выходе подпрограммы на месте вектора с запоминаются вычисленные диагональные элементы диагональной матрицы D;
N - заданный порядок исходной матрицы Якоби Т (тип: целый);
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом:
IЕRR=66 - если не все попарные произведения соответствующих элементов побочных диагоналей исходной матрицы неотрицательны;
IЕRR=67 - если имеется равное нулю произведение соответствующих элементов побочных диагоналей, причем сомножители равны нулю неодновременно;
IЕRR=68 - если матрица Н получена, но матрица преобразования D не вычислена, т.к. она или обратная к ней матрица алгоритмически вырождена.

Версии

AEJ0D - приведение матрицы Якоби, заданной с двойной точностью, к симметрической трехдиагональной матрице преобразованием подобия.

Вызываемые подпрограммы

UTAF12 - подпрограмма выдачи диагностических сообщений при работе подпрограмм АFJ0R и АFJ0D.

Замечания по использованию

  В подпрограмме АFJ0D параметры В, С должны иметь тип DОUВLЕ РRЕСISIОN.

Пример использования

      DIMENSION  B(5), C(5)
      DATA  B /0., 1., 1., -4., -4./,  C /0., 4., 16., -4., -4./
      N = 5
      CALL  AFJ0R (B, C, N, IERR)

Результаты:

      B  =   (0., 2., 4., 4.), 
      C  =   (1., 2., 8., -8., 8.), 

      IERR  =  0