Текст подпрограммы и версий ( Фортран ) 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