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

Подпрограмма:  ASG1R

Назначение

Решение вещественной системы линейных алгебраических уравнений А*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)