Текст подпрограммы и версий ( Фортран )
astor.zip , astod.zip
Тексты тестовых примеров ( Фортран )
tastor.zip , tastod.zip
Текст подпрограммы и версий ( Си )
astor_c.zip , astod_c.zip
Тексты тестовых примеров ( Си )
tastor_c.zip , tastod_c.zip
Текст подпрограммы и версий ( Паскаль )
astor_p.zip , astoe_p.zip
Тексты тестовых примеров ( Паскаль )
tastor_p.zip , tastoe_p.zip

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

Назначение

Решение системы линейных алгебраических уравнений Аx = b с симметричной теплицевой матрицей.

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

Решается система Аx = b, где А - симметричная теплицева матрица размера М на М. Эффективно используется теплицевость и симметричность матрицы А.

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

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

    SUBROUTINE  ASTOR (A, B, X, A1, B1, M) 

Параметры

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

Версии

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

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

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

  При обращении к подпрограмме АSТОD параметры А, В, Х, А1, В1 имеют тип DОUВLЕ РRЕСISIОN.

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

1.     DIMENSION  A(6), B(6), X(6), A1(6), B1(6)
        DATA  B /21., 17., 15., 15., 17., 21./
        M = 6
        DO 1 I = 1, M
        A(I) = I
     1 CONTINUE
        CALL  ASTOR (A, B, X, A1, B1, M)

Результат:

        X  =   ( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 )

2.     DIMENSION  A(100), B(100), X(100), A1(100), B1(100)
        DOUBLE  PRECISION  A, B, X, A1, B1
        M = 100
        A = 2.
        A(2) = 1.
        B = 3.
        B(M) = 3.
        DO 1 I = 3, M
        A(I) = 0.
        B(I-1) = 4.
     1 CONTINUE
        CALL  ASTOD (A, B, X, A1, B1, M)

Результат:

        X(I)  =  1.0 ,     I  =  1, 2, ..., 100