Текст подпрограммы и версий ( Фортран )
asg5a.zip , asg5d.zip , asg5e.zip
Тексты тестовых примеров ( Фортран )
tasg5a.zip , tasg5d.zip , tasg5e.zip
Текст подпрограммы и версий ( Си )
asg5a_c.zip , asg5d_c.zip , asg5e_c.zip
Тексты тестовых примеров ( Си )
tasg5a_c.zip , tasg5d_c.zip , tasg5e_c.zip
Текст подпрограммы и версий ( Паскаль )
asg5a_p.zip , asg5e_p.zip , asg5z_p.zip
Тексты тестовых примеров ( Паскаль )
tasg5a_p.zip , tasg5e_p.zip , tasg5z_p.zip

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

Назначение

Решение системы линейных алгебраических уравнений на основе преобразований вращения.

Математическое описание

Матрица А размера N на N исходной системы А*x = b с помощью преобразований вращения  R1 2, R1 3, ..., RN - 1 N представляется в виде

     A = L*RN-1 N ... R1 2 , 

где L - нижняя треугольная матрица размера N на N. Заменой переменных y = RN - 1 N ... R1 2*x исходная система сводится к системе L*y = b, которая решается способом обратной подстановки. При повторном решении системы с той же матрицей А и другой правой частью предоставляется возможность не выполнять заново факторизацию матрицы А.

В.В. Воеводин, Вычислительные основы линейной алгебры, М., 1977.

Использование

    SUBROUTINE  ASG5A (A, B, X, N, L) 

Параметры

A - вещественный двумерный массив размера N на N, в котором задается исходная матрица; по окончании работы подпрограммы в нижней треугольной части А запоминаются на соответствующих местах элементы матрицы L, а в верхней треугольной части матрицы А в компактном виде запоминается информация о матрицах вращения  R1 2, ..., RN - 1 N ;
B - вещественный вектор длины N, в котором задается правая часть;
X - вещественный вектор длины N, в котором запоминается вычисленное решение системы;
N - заданый порядок матрицы А (тип: целый);
L - задает режим работы подпрограммы (тип: целый); при этом:
L = 1 - если система с данной матрицей решается впервые,
L ≠ 1 - если система с данной матрицей, но другой правой частью, решается повторно.

Версии

ASG5D - решение системы линейных алгебраических уравнений, заданной с удвоенной точностью, на основе преобразований вращения.
ASG5E - решение комплексной системы линейных алгебраических уравнений на основе преобразований вращения.

Вызываемые подпрограммы: нет

Замечания по использованию

  1. 

Подпрограммы АSG5А, АSG5D, АSG5Е позволяют помещать вычисленное решение Х на место правой части В.

  2. 

В подпрограмме АSG5D параметры А, В, Х имеют тип DОUВLЕ РRЕСISIОN.

  3.  В подпрограмме АSG5Е параметры А, В, Х имеют тип СОМРLЕХ.

Пример использования

      DIMENSION  A(5, 5), B(5), X(5)
      DO 2 I = 1, 5
      DO 2 J = 1, 5
   2 A(I, J) = 0.
      DO 3 I = 1, 5
      DO 3 J = 1, 5
   3 A(I, J) = 1.
      DO 4 I = 1, 5
   4 B(I) = 6. - I
      CALL  ASG5A (A, B, X, 5, 1)

Результат:

      X  =  (1., 1., 1., 1., 1.)