Текст подпрограммы и версий ( Фортран ) asg0r.zip , asg0d.zip , asg0c.zip |
Тексты тестовых примеров ( Фортран ) tasg0r.zip , tasg0d.zip , tasg0c.zip |
Текст подпрограммы и версий ( Си ) asg0r_c.zip , asg0d_c.zip , asg0c_c.zip |
Тексты тестовых примеров ( Си ) tasg0r_c.zip , tasg0d_c.zip , tasg0c_c.zip |
Текст подпрограммы и версий ( Паскаль ) asg0r_p.zip , asg0e_p.zip , asg0c_p.zip |
Тексты тестовых примеров ( Паскаль ) tasg0r_p.zip , tasg0e_p.zip , tasg0c_p.zip |
Решение вещественной системы линейных алгебраических уравнений А*x = b с матрицей А и вектором правой части b методом Гаусса без выбора ведущего элемента. При повторном решении системы с той же матрицей и другой правой частью эффективно используется выполненная ранее факторизация матрицы.
Матрица системы А N - го порядка приводится к верхнетреугольному виду U последовательностью элементарных преобразований Гаусса L1, L2, ..., LN - 1 так, что
LN-1*LN-2...L1*A = U ,
и затем решается система с треугольной матрицей U и правой частью LN - 1*LN - 2...L1*b. Матрицы Li, i = 1, 2, ..., N - 1, имеют единичные диагональные элементы.
В.В.Воеводин, Р.В.Петрина, Комплекс алгоритмов, основанных на преобразованиях типа Гаусса, в пакете линейной алгебры, Сб. "Численный анализ на ФОРТРАНе", вып.3, Изд-во МГУ, 1973.
SUBROUTINE ASG0R ( A, B, X, N, L)
Параметры
A - | двумерный N на N массив, в котором задается исходная матрица (тип: RЕАL); по окончании работы подпрограммы в массиве А на соответствующих местах запоминаются элементы матрицы U и векторы-столбцы, порождающие матрицы Li ; |
B - | вектор длины N, в котором задается вектор правой части системы (тип: вещественный); |
X - | вектор длины N, в котором запоминается вычисленное решение системы (тип: вещественный); |
N - | заданный порядок матрицы системы (тип: целый); |
L - | признак решаемой системы (тип: целый), причем |
L = 1 - | если система с данной матрицей решается впервые; |
L ≠ 1 - | если система с данной матрицей решается повторно. |
Версии
ASG0D - | решение системы линейных алгебраических уравнений А*x = b методом Гаусса без выбора ведущего элемента для вещественных А, b, заданных с удвоенной точностью. |
ASG0C - | решение системы линейных алгебраических уравнений А*x = b методом Гаусса без выбора ведущего элемента для комплексных А, b. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В подпрограмме АSG0D массивы А, В, Х имеют тип DОUВLЕ РRЕСISIОN. | |
2. |
В подпрограмме АSG0С массивы А, В, Х имеют тип СОМРLЕХ. | |
3. | Подпрограммы АSG0R, АSG0D, АSG0С позволяют помещать вычисленное решение Х на место правой части В. |
DIMENSION A(4, 4), B(4), X(4) DATA A /7.9, 8.5, 4.3, 3.2, 5.6, -4.8, 4.2, -1.4, 5.7, .8, -3.2, * -8.9, -7.2, 3.5, 9.3, 3.3/ DO 1 I = 1, 4 1 B (I) = 0.0 B (1) = 1.0 CALL ASG0R (A, B, X, 4, 1) Результат: X = (0.051, 0.052, -0.008, -O.050) .