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

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

Назначение

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