Текст подпрограммы и версий ( Фортран )
am02r.zip , am02c.zip
Тексты тестовых примеров ( Фортран )
tam02r.zip , tam02c.zip
Текст подпрограммы и версий ( Си )
am02r_c.zip , am02c_c.zip
Тексты тестовых примеров ( Си )
tam02r_c.zip , tam02c_c.zip
Текст подпрограммы и версий ( Паскаль )
am02r_p.zip , am02c_p.zip
Тексты тестовых примеров ( Паскаль )
tam02r_p.zip , tam02c_p.zip

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

Назначение

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

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

Вычисляется вектор R = r / S, где  r = b - Аx,  b - заданный вектор длины  N,  x - заданный вектор длины  М,  A - заданная матрица размера N * М,  S = || r || ∞.

Нормировка вектора невязки  r  необходима при решении системы линейных алгебраических уравнений Аx = b  с уточнением.

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

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

    SUBROUTINE  AM02R (A, B, X, R, S, N, M) 

Параметры

A - вещественный двумерный массив размера N * М, в котором задается матрица системы;
B - вещественный вектор длины  N, в котором запоминается правая часть системы;
X - вещественный вектор длины  М, в котором задается решение системы;
R - вещественный одномерный массив длины  N, в котором запоминается вычисленный нормированный вектор невязки;
S - вещественная переменная, в которой запоминается бесконечная норма вычисленного вектора невязки;
N, M - число строк и столбцов матрицы системы (тип: целый).

Версии

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

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

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

  1. 

В подпрограмме AM02C параметры А, B, X, R имеют тип СОМРLЕХ.

  2.  Подпрограммы АМ02R, AM02C целесообразно использовать при решении системы линейных алгебраических уравнений с уточнением (см. пример использования).

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

       DIMENSION  A(7, 7), A1(7, 7), B(7), X(7), D(7), R(7), S1(7)
       N = 7
       DO 1  I = 1, N
       B(I) = 0.
       DO 1  J = 1, N
       A(I, J) = 360360./(I + J - 1.)
   1  A1(I, J) = A(I, J)
       B(5) = 360360.
       CALL  ASH0R (A, B, X, S1, N, 1)
       DO 2  K = 1, 2
       CALL  AM02R (A1, B, X, R, S, N, N)
       CALL  ASH0R (A, R, D, S1, N, 2)
       DO 2  I = 1, N
   2  X(I) = X(I) + D(I)*S 

Подпрограмма АSН0R (А, В, Х, S, N, Р) находит решение системы Аx = b, причем при повторном решении системы с той же матрицей и другой правой частью параметр  Р полагают отличным от единицы. Проводится два шага уточнения решения системы с матрицей Гильберта 7 порядка и правой частью  b = (0, 0, 0, 0, 1, 0, 0).

Результат:

                X1                                X2                                X3
    4.85115043411 + 04     4.85099999532 + 04    4.85100000000 + 04
  - 1.94046009606 + 06  - 1.94039999813 + 06  - 1.94040000000 + 06
    1.87115797099 + 07     1.87109999819 + 07    1.87110000000 + 07
  - 7.27672565200 + 07  - 7.27649999300 + 07  - 7.27650000001 + 07
    1.33406641488 + 08     1.33402499871 + 08    1.33402500000 + 08
  - 1.15263342213 + 08  - 1.15259759888 + 08  - 1.15259760000 + 08
    3.78389772248 + 07     3.78377999634 + 07    3.78378000000 + 07

где   X1 - решение системы без уточнения;
        X2 - решение системы после 1-ого шага уточнения;
        X3 - решение системы после 2-ого шага уточнения.