Текст подпрограммы и версий ( Фортран )
ask2c.zip
Тексты тестовых примеров ( Фортран )
task2c.zip
Текст подпрограммы и версий ( Си )
ask2c_c.zip
Тексты тестовых примеров ( Си )
task2c_c.zip
Текст подпрограммы и версий ( Паскаль )
ask2c_p.zip
Тексты тестовых примеров ( Паскаль )
task2c_p.zip

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

Назначение

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

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

Матрица А состоит из Р на Р клеток размера М на М. Обозначим SK, RK, 1 ≤ К ≤ Р, соответственно К - ю клетку первой клеточной строки и К - ю клетку первого клеточного столбца матрицы А. В данном случае под специальным видом клеточно - теплицевой матрицы А понимается выполнение соотношений

     RK = ( LSKN )* ,   1 ≤ K ≤ P , 

где L и N - фиксированные симметрические матрицы престановок (" * " означает комплексное сопряжение).

В подпрограмме реализован алгорифм, который является видоизменением вычислительной схемы алгорифма для решения системы уравнений с клеточно - теплицевой матрицей общего вида. Это видоизменение обеспечивает значительную экономию памяти ЭВМ.

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

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

    SUBROUTINE  ASK2C (A1, B, Y, B3, L, N, C, Q, M, P) 

Параметры

A1 - трехмерный М на М на Р массив, в котором задается первая клеточная строка матрицы системы (тип: комплексный);
B - двумерный М на Р массив, в котором задается вектор правой части (тип: комплексный);
Y - двумерный М на Р массив, в котором запоминается вектор вычисленного решения (тип: комплексный);
L, N - векторы длины М, в которых задаются матрицы перестановок (тип: целый);
B3 - трехмерный М на М на Р массив, используемый подпрограммой как рабочий (тип: комплексный);
C - трехмерный М на М на 3 массив, используемый подпрограммой как рабочий (тип: комплексный);
Q - вектор длины М, используемый как рабочий (тип: целый);
M - заданный порядок клетки (тип: целый);
P - заданное число клеток в клеточной строке или столбце (тип: целый).

Версии: нет

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

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

  1. 

В массиве В3 по окончании работы подпрограммы запоминается последний клеточный столбец матрицы, являющейся обратной для матрицы исходной системы.

  2.  Вектор L определяет симметрическую матрицу перестановок следующим образом: К - я компонента вектора L есть номер строки, которая переставляется с К - й. Аналогично, К - я компонента вектора N есть номер столбца переставляемого с К - м столбцом.

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

      DIMENSION  A1(2, 2, 3), B(2, 3), Y(2, 3), B3(2, 2, 3), L(2), N(2),
     *                       C(2, 2, 3), Q(2)
      INTEGER  M, P, Q, L, N
      COMPLEX  A1, B3, C, B, Y
      DATA  A1 / (1., 0.),  (0., 0.),  (0., 0.),  (1., 0.),  (0., 0.),  (0., 0.),
     *                    (0., 0.),  (0., 0.),  (1., 0.),  (0., 0.),  (0., 1.),  (1., 0.) /
      DATA  B / (2., 1.),  (2., 0.),  (1., 0.),  (1., 0.),  (2., 0.),  (2., -1.) /
      DATA  L /2, 1/
      DATA  N /2, 1/
      P = 3
      M = 2
      CALL  ASK2C (A1, B, Y, B3, L, N, C, Q, M, P)

Результат:

      Y  =  ( (1., 0.),  (1., 0.),  (1., 0.),  (1., 0.),  (1., 0.),  (1., 0.) )