Текст подпрограммы и версий ( Фортран )
adp8r.zip   adp8d.zip   adp8c.zip
Тексты тестовых примеров ( Фортран )
tadp8r.zip   tadp8d.zip   tadp8c.zip
Текст подпрограммы и версий ( Си )
adp8r_c.zip   adp8d_c.zip   adp8c_c.zip
Тексты тестовых примеров ( Си )
tadp8r_c.zip   tadp8d_c.zip   tadp8c_c.zip
Текст подпрограммы и версий ( Паскаль )
adp8r_p.zip   adp8e_p.zip   adp8c_p.zip
Тексты тестовых примеров ( Паскаль )
tadp8r_p.zip   tadp8e_p.zip   tadp8c_p.zip

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

Назначение

Вычисление определителя матрицы на основе преобразований вращения.

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

Матрица А размера N на N с помощью преобразований вращения R21, R31, ..., RNN приводится к верхней треугольной матрице:

     RNN ... R21*A = L  . 

Определитель матрицы А вычисляется как произведение диагональных элементов матрицы L и записывается в виде:

     det A = D1*2D2,  где  0.0625 ≤ D1 < 1.

В.В.Воеводин, Вычислительные основы линейной алгебры, М., "Наука", 1977.

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

    SUBROUTINE  ADP8R (A, D1, D2, N) 

Параметры

A - вещественный двумерный массив размера N на N, в котором задается исходная матрица;
D1 - вещественная переменная, в которой запоминается мантисса определителя;
D2 - целая переменная, в которой запоминается двоичный порядок определителя;
N - заданный порядок исходной матрицы (тип: целый).

Версии

ADP8D - вычисление определителя матрицы, заданной с удвоенной точностью, на основе преобразований вращения.
ADP8C - вычисление определителя комплексной матрицы на основе преобразования вращения.

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

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

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

  1. 

В подпрограмме АDР8D массив А и переменная D1 имеют тип DОUВLЕ РRЕСISIОN.

  2.  В подпрограмме АDР8С массив А и переменная D1 имеют тип СОМРLЕХ.

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

          DIMENSION A(3, 3)
          DATA  A /0.6, 0.8, 0., 0.4, 2.2, 0., 2.6, 6.8, 0.6/
          N = 3
          CALL  ADP8R (A, D1, D2, N)

Результат:

          D1 = 0.6,   D2 = 0,
    т.е.  det A = 0.6*20 = 0.6