Текст подпрограммы и версий ( Фортран )
asp5a.zip , asp5d.zip , asp5e.zip
Тексты тестовых примеров ( Фортран )
tasp5a.zip , tasp5d.zip , tasp5e.zip
Текст подпрограммы и версий ( Си )
asp5a_c.zip , asp5d_c.zip , asp5e_c.zip
Тексты тестовых примеров ( Си )
tasp5a_c.zip , tasp5d_c.zip , tasp5e_c.zip
Текст подпрограммы и версий ( Паскаль )
asp5a_p.zip , asp5e_p.zip , asp5z_p.zip
Тексты тестовых примеров ( Паскаль )
tasp5a_p.zip , tasp5e_p.zip , tasp5z_p.zip

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

Назначение

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

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

Находится нормальное решение системы Аx = b, где А - матрица полного ранга размера N на М (N ≤ М), b - заданный вектор длины N. Для решения используется приведение матрицы системы к нижней треугольной форме с помощью последовательности преобразований вращения

          AR1 2...RN M = T , 

где Ri j, i < j, i = 1, ..., N, j = 2, ..., М, - соответствующие матрицы вращения, Т - нижняя треугольная матрица размера N на М. Из полученной треугольной системы

          Ty = b 

находится нормальное решение y, по которому затем определяется искомое решение  x = R1 2 ... RN Мy .

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

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

    SUBROUTINE  ASP5A (A, B, X, N, M, L) 

Параметры

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

Версии

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

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

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

  1. 

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

  2. 

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

  3.  При повторном решении системы с той же матрицей информация, полученная ранее в массиве А, не должна портиться.

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

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

Результат:

      Х = ( 1., 1., 1., 1., 1., 0. )