Текст подпрограммы и версий ( Фортран ) ask3c.zip |
Тексты тестовых примеров ( Фортран ) task3c.zip |
Текст подпрограммы и версий ( Си ) ask3c_c.zip |
Тексты тестовых примеров ( Си ) task3c_c.zip |
Текст подпрограммы и версий ( Паскаль ) ask3c_p.zip |
Тексты тестовых примеров ( Паскаль ) task3c_p.zip |
Решение системы линейных алгебраических уравнений с клеточно - циркулянтной матрицей.
Решается система А*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.) )