Текст подпрограммы и версий ( Фортран )
ask3c.zip
Тексты тестовых примеров ( Фортран )
task3c.zip
Текст подпрограммы и версий ( Си )
ask3c_c.zip
Тексты тестовых примеров ( Си )
task3c_c.zip
Текст подпрограммы и версий ( Паскаль )
ask3c_p.zip
Тексты тестовых примеров ( Паскаль )
task3c_p.zip

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

Назначение

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

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

Решается система А*x = b с клеточно - циркулянтной матрицей А (см. [1]), состоящей из L на L клеток общего вида размера М на М. В основе алгорифма лежит подобное преобразование матрицы А к клеточно - диагональной матрице тех же размеров. Тем самым решение исходной системы порядка М на L сводится к решению L систем порядка М (см. [2]).

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

2. С.Н.Воеводина. Решение системы уравнений с клеточно - теплицевыми матрицами. В сб. "Вычислительные методы и программирование", вып. 24, Изд-во МГУ, 1975.

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

    SUBROUTINE  ASK3C ( A, X, R, M, L) 

Параметры

A - комплексный одномерный массив длины М2*L, в котором задается матрица системы следующим образом. Массив А делится на L кусков длины М2. В I - ом куске, I = 1, ..., L, записывается по столбцам I - ая клетка первой клеточной строки исходной матрицы;
X - комплексный одномерный массив длины М на L, в котором задается правая часть; на выходе из подпрограммы в Х получается решение;
R - комплексный одномерный рабочий массив длины max (Z, L), где Z - целая часть числа (М + 1)/2;
M - порядок клетки (тип: целый);
L - клеточный порядок исходной матрицы (тип: целый).

Версии: нет

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

ASG1C - решение комплексной системы линейных алгебраических уравнений методом Гаусса с выбором по столбцу.

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

  В подпрограмме АSК3С используются служебные подпрограммы АR01С, АR02С.

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

      COMPLEX  A(8), X(4), R(2)
      DATA  A / (1., 1.),  (2., 2.),  (2., 2.),  (1., 1.),  (2., 2.),  (4., 4.), 
     *                 (4., 4.),  (2., 2.) /
      DATA  X /4* (9., 9.)/
      M = 2
      L = 2
      CALL  ASK3C (A, X, R, M, L)

Результаты:

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