Текст подпрограммы и версий ( Фортран ) ask5c.zip |
Тексты тестовых примеров ( Фортран ) task5c.zip |
Текст подпрограммы и версий ( Си ) ask5c_c.zip |
Тексты тестовых примеров ( Си ) task5c_c.zip |
Текст подпрограммы и версий ( Паскаль ) ask5c_p.zip |
Тексты тестовых примеров ( Паскаль ) task5c_p.zip |
Решение системы линейных алгебраических уравнений с клеточно - циркулянтной матрицей, клетки которой являются теплицевыми.
Решается система А*x = b с клеточно - циркулянтной матрицей (см. [1]), состоящей из L на L клеток размера М на М, каждая из которых является теплицевой.
В основе алгорифма лежит подобное преобразование матрицы А к клеточно - диагональной матрице тех же размеров с теплицевыми клетками. Тем самым решение исходной системы порядка М на L сводится к решению L систем порядка М с теплицевыми матрицами (см. [2]).
1. | В.В.Воеводин. Вычислительные основы линейной алгебры. М., Наука, 1977. |
2. | Е.Е.Тыртышников. О решении систем с матрицами типа теплицевых. В сб. "Численный анализ на ФОРТРАНе. Вычисл. Методы и инструментальные системы". Изд-во МГУ, 1978. |
SUBROUTINE ASK5C ( A, X, R, M, L)
Параметры
A - | комплексный одномерный массив длины L на (2*М - 1), в котором задается матрица системы следующим образом. Массив А делится на L кусков длины 2*М - 1. В I - ом куске, I = 1, ..., L, задается I - ая клетка первой клеточной строки исходной матрицы. При задании I - ой клетки в I - ом куске записывается первая строка этой клетки, а вслед за ней - элементы первого столбца начиная со второго элемента; |
X - | комплексный одномерный массив длины М на L, в котором задается правая часть; на выходе из подпрограммы в Х получается решение; |
R - | комплексный одномерный рабочий массив длины max (2*М, L); |
M - | порядок клетки (тип: целый); |
L - | клеточный порядок матрицы системы (тип: целый). |
Версии: нет
Вызываемые подпрограммы
ASTAC - | решение системы линейных алгебраических уравнений с теплицевой матрицей. |
Замечания по использованию
В подпрограмме АSК5С используются служебные подпрограммы АR01С, АR02С. |
COMPLEX A(6), X(4), R(2) DATA A / (1., 1.), (2., 2.), (2., 2.), (2., 2.), (4., 4.), (4., 4.) / DATA X /4* (9., 9.)/ M = 2 L = 2 CALL ASK5C (A, X, R, M, L) Результат: X = ( (1., 0.), (1., 0.), (1., 0.), (1., 0.) )