Текст подпрограммы и версий ( Фортран ) asg1r.zip , asg1d.zip , asg1c.zip |
Тексты тестовых примеров ( Фортран ) tasg1r.zip , tasg1d.zip , tasg1c.zip |
Текст подпрограммы и версий ( Си ) asg1r_c.zip , asg1d_c.zip , asg1c_c.zip |
Тексты тестовых примеров ( Си ) tasg1r_c.zip , tasg1d_c.zip , tasg1c_c.zip |
Текст подпрограммы и версий ( Паскаль ) asg1r_p.zip , asg1e_p.zip , asg1c_p.zip |
Тексты тестовых примеров ( Паскаль ) tasg1r_p.zip , tasg1e_p.zip , tasg1c_p.zip |
Решение вещественной системы линейных алгебраических уравнений А*x = b с матрицей А и вектором правой части b методом Гаусса с выбором ведущего элемента по столбцу. При повторном решении системы с той же матрицей и другой правой частью эффективно используется выполненная ранее факторизация матрицы.
Матрица системы А N - го порядка приводится к верхнетреугольному виду U последовательностью элементарных преобразований Гаусса L1, L2, ..., LN - 1 и матрицей перестановок Q так, что
LN-1*LN-2...L1*Q*A = U ,
и затем решается система с треугольной матрицей U и правой частью
LN - 1*LN - 2...L1*Q*b .
Матрицы Li , i = 1, 2,
..., N - 1 имеют единичные диагональные элементы,
матрица Q осуществляет перестановку строк матрицы А и обеспечивает
стратегию выбора ведущего элемента по столбцам.
В.В.Воеводин, Р.В.Петрина, Комплекс алгоритмов, основанных на преобразованиях типа Гаусса, в пакете линейной алгебры, Сб. "Численный анализ на ФОРТРАНе", вып,3, Изд-во МГУ, 1973.
SUBROUTINE ASG1R ( A, B, X, S, N, L)
Параметры
A - | двумерный N на N массив, в котором задается исходная матрица (тип: RЕАL); по окончании работы подпрограммы в массиве А на сответствующих местах запоминаются элементы матрицы U и векторы-столбцы, порождающие матрицы Li ; |
B - | вектор длины N, в котором задается вектор правой части системы (тип: вещественный); |
X - | вектор длины N, в котором запоминается вектор вычисленного решения (тип: вещественный); |
S - | вектор длины N, в котором запоминается вектор, порождающий матрицу перестановок; при этом в S (К) запоминается номер строки переставленной на К - ом шаге с К - ой строкой (тип: целый); |
N - | заданный порядок матрицы системы (тип: целый); |
L - | признак решаемой задачи (тип: целый), причем |
L = 1 - | если система с данной матрицей решается впервые; |
L ≠ 1 - | если система с данной матрицей решается повторно. |
Версии
ASG1D - | решение системы линейных алгебраических уравнений А*x = b методом Гаусса с выбором ведущего элемента по столбцу для вещественных А и b, заданных с удвоенной точностью. |
ASG1C - | решение системы линейных алгебраических уравнений А*x = b методом Гаусса с выбором ведущего элемента по столбцу для комплексных А и b. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В подпрограмме АSG1D массивы А, В, Х имеют тип DОUВLЕ РRЕСISIОN. | |
2. |
В подпрограмме АSG1С массивы А, В, Х имеют тип СОМРLЕХ. | |
3. |
Поскольку факторизация Гаусса требует N - 1 шагов, то S (N) = 0. | |
4. | Подпрограммы АSG1R, АSG1D, АSG1С позволяют помещать вычисленное решение Х на место правой части В. |
DIMENSION A(4, 4), B(4), X(4), S(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 ASG1R (A, B, X, S, 4, 1) Результат: X = (0.051, 0.052, -0.008, 0.050)