Текст подпрограммы и версий ( Фортран ) ast1r.zip , ast1d.zip , ast1c.zip |
Тексты тестовых примеров ( Фортран ) tast1r.zip , tast1d.zip , tast1c.zip |
Текст подпрограммы и версий ( Си ) ast1r_c.zip , ast1d_c.zip , ast1c_c.zip |
Тексты тестовых примеров ( Си ) tast1r_c.zip , tast1d_c.zip , tast1c_c.zip |
Текст подпрограммы и версий ( Паскаль ) ast1r_p.zip , ast1e_p.zip , ast1c_p.zip |
Тексты тестовых примеров ( Паскаль ) tast1r_p.zip , tast1e_p.zip , tast1c_p.zip |
Решение вещественной системы линейных алгебраических уравнений Аx = b или АTx = b с треугольной матрицей А.
Для заданной вещественной треугольной матрицы А порядка N решается система Аx = b (АTx = b), причем для нахождения компонент решения xi, i = 1, ..., N система рассматривается как одно векторное уравнение
x1a1 + ... + xNaN = b ,
где векторы ai, i = 1, ..., N суть столбцы (строки) матрицы А.
Дж.Форсайт, М.Малькольм, К.Моулер. Машинные методы математических вычислений. М., Мир, 1980.
SUBROUTINE AST1R (A, M, N, B, LTR, LOW, IERR)
Параметры
A - | двумерный массив размера М на N, в котором задается матрица системы (тип: вещественный); |
M - | первая размерность массива А в вызывающей подпрограмме (тип: целый); |
N - | порядок матрицы системы (тип: целый); |
B - | вещественный вектор длины N в котором задается правая часть системы; на выходе содержит вычисленное решение системы (см. замечания по использованию); |
LTR - | признак решаемой системы (тип: целый), причем |
LТR = 0 - | если решается система Аx = b, |
LТR ≤ 0 - | если решается система АTx = b; |
LOW - | признак решаемой системы (тип: целый), причем |
LОW = 0 - | если матрица А верхняя треугольная, |
LОW ≠ 0 - | если матрица А нижняя треугольная; |
IERR - | целая переменная, содержащая на выходе информацию о прохождении счета; при этом |
IЕRR=65 - | если М ≤ 0 или N ≤ 0; |
IЕRR=66 - | если в процессе работы произошло переполнение (это говорит о том, что некоторые компоненты решения системы превосходят по абсолютной величине максимальное представимое на данной машине число); |
IЕRR=-К - | если в К - й строке матрицы А диагональный элемент равен нулю (это свидетельствует о вырожденности матрицы). Если таких строк несколько, то значение К полагается равным номеру последней из них (см. замечания по использованию); |
IЕRR=67 - | если система несовместна. |
Версии
AST1D - | решение системы линейных алгебраических уравнений Аx = b или АTx = b с треугольной матрицей А для вещественных А и b, заданных с удвоенной точностью. |
AST1C - | решение системы линейных алгебраических уравнений Аx =b или АTx = b с треугольной матрицей А для комплексных А и b. |
Вызываемые подпрограммы
UTAFSI - | подпрограмма выдачи диагностических сообщений. |
Замечания по использованию
1. |
В подпрограмме АSТ1D массивы А и В имеют тип DОUВLЕ РRЕСISIОN. | |
2. |
В подпрограмме АSТ1С массивы А и В имеют тип СОМРLЕХ. | |
3. | Если вырабатывается значение переменной IЕRR, отличное от нуля, то выдается соответствующее диагностическое сообщение, и если IЕRR > 0, то происходит выход из подпрограммы. Если система совместна, но матрица А вырождена, т.е. для некоторых номеров К А (К, К) = 0., то полагается x (К) = 1. |
DIMENSION A(5, 5), B(5), Z(5) M = 5 N = 5 LTR = 0 LOW = 0 DO 4 J = 1, N DO 3 I = 1, J A(I, J) = FLOAT(I*10 + J) 3 CONTINUE Z(J) = FLOAT(J) 4 CONTINUE DO 6 I = 1, M B(I) = 0.0 DO 5 J = 1, M B(I) = B(I) + A(I, J)*Z(J) 5 CONTINUE 6 CONTINUE CALL AST1R (A, M, N, B, LTR, LOW, IERR) Результат: B = ( 1.000, 2.000, 3.000, 4.000, 5.000 ) .