|
Текст подпрограммы и версий ( Фортран ) adt1r.zip adt1d.zip adt1c.zip |
Тексты тестовых примеров ( Фортран ) tadt1r.zip tadt1d.zip tadt1c.zip |
|
Текст подпрограммы и версий ( Си ) adt1r_c.zip adt1d_c.zip adt1c_c.zip |
Тексты тестовых примеров ( Си ) tadt1r_c.zip tadt1d_c.zip tadt1c_c.zip |
|
Текст подпрограммы и версий ( Пакаль ) adt1r_p.zip adt1e_p.zip adt1c_p.zip |
Тексты тестовых примеров ( Паскаль ) tadt1r_p.zip tadt1e_p.zip tadt1c_p.zip |
Вычисление определителя вещественной треугольной матрицы, заданной в компактной форме.
Для заданной в компактной форме вещественной треугольной матрицы А порядка N вычисляется определитель как произведение ее диагональных элементов и записывается в виде
det A = D1*10D2, где 1.0 ≤ D1 < 10.0.
Дж. Форсайт, М. Малькольм, К. Моулер. Машинные методы математических вычислений. М.: Мир, 1980.
SUBROUTINE ADT1R (A, N, DET1, DET2, IERR)
Параметры
| A - | вектор длины N на (N+1)/2, в котором последовательно записаны столбцы (для верхней треугольной) или строки (для нижней треугольной) матрицы А (тип: вещественный); |
| N - | порядок матрицы А (тип: целый); |
| DET1 - | вещественная переменная, содержащая на выходе мантиссу определителя; |
| DET2 - | вещественная переменная, содержащая на выходе десятичный порядок определителя; |
| IERR - | целая переменная, содержащая на выходе информацию о прохождении счета, при этом: |
| IЕRR=65 - | если N ≤ 0; |
| IЕRR=66 - | если в процессе работы произошло переполнение (это говорит о том, что некоторые диагональные элементы матрицы А имеют порядок, равный S - 1, где S - максимальный порядок для вещественных чисел на данной машине); |
| IЕRR=-К - | где K - номер строки матрицы А с нулевым диагональным элементом (это свидетельствует о вырожденности матрицы А). Если таких строк несколько, то значение K равно номеру первой из них (см. замечания по использованию). |
Версии
| ADT1D - | вычисление определителя вещественной треугольной матрицы, заданной в компактной форме с удвоенной точностью. |
| ADT1C - | вычисление определителя комплексной треугольной матрицы, заданной в компактной форме. |
Вызываемые подпрограммы
| UTAFSI - | подпрограмма выдачи диагностических сообщений. |
Замечания по использованию
| 1. |
В подпрограмме АDТ1D массив А и переменные DЕТ1 и DЕТ2 имеют тип DОUВLЕ РRЕСISIОN. | |
| 2. |
В подпрограмме АDТ1С массив А и переменная DЕТ1 имеют тип СОМРLЕХ. | |
| 3. | Если переменной IЕRR присваивается значение, отличное от нуля, то выдается соответствующее диагностическое сообщение, полагается DЕТ1 = 0.0, DЕТ2 = 0.0 и происходит выход из подпрограммы. |
DIMENSION A(15)
N = 5
K = 0
DO 4 I = 1, N
DO 3 J = 1, I
K = K+1
A(K) = FLOAT(I*10+J)
3 CONTINUE
4 CONTINUE
CALL ADT1R (A, N, DET1, DET2, IERR)
Результаты:
DET1 = 1.932612
DET2 = 7.0