Текст подпрограммы и версий ( Фортран ) ash0r.zip , ash0c.zip , ash0d.zip |
Тексты тестовых примеров ( Фортран ) tash0r.zip , tash0c.zip , tash0d.zip |
Текст подпрограммы и версий ( Си ) ash0r_c.zip , ash0c_c.zip , ash0d_c.zip |
Тексты тестовых примеров ( Си ) tash0r_c.zip , tash0c_c.zip , tash0d_c.zip |
Текст подпрограммы и версий ( Паскаль ) ash0r_p.zip , ash0c_p.zip , ash0e_p.zip |
Тексты тестовых примеров ( Паскаль ) tash0r_p.zip , tash0c_p.zip , tash0e_p.zip |
Решение системы линейных алгебраических уравнений с симметричной матрицей модифицированным методом квадратного корня (модифицированным методом Холецкого).
Подпрограмма АSН0R модифицированным методом квадратного корня осуществляет разложение заданной симметричной матрицы А в произведение
A = UT*D*U ,
где U - верхняя треугольная матрица, на диагонали которой стоят единицы, D - диагональная матрица, и затем решает две треугольные системы
UT*y = b , D*U*x = y .
При повторном решении системы с той же матрицей и другой правой частью подпрограмма позволяет использовать полученное ранее разложение.
Главные миноры матрицы А должны быть отличными от нуля.
R.S.Мartin, G.Рeters, J.Н.Wilkinson, Symmetric Decomposition of a Рositive Definite Мatrix, Numer. Матн., 7, 1965.
SUBROUTINE ASH0R (A, B, X, S, N, L)
Параметры
A - | вещественный двумерный массив размера N на N, содержащий исходную матрицу; в результате работы подпрограммы над главной диагональю матрицы А запоминается верхняя треугольная матрица U без диагональных элементов; нижняя треугольная часть матрицы А, включая главную диагональ, сохраняется; |
B - | вещественный вектор длины N, в котором задается правая часть; |
X - | вещественный вектор длины N, в котором запоминается вычисленное решение; |
S - | вещественный вектор длины N, содержащий величины, обратные диагональным элементам диагональной матрицы D; |
N - | порядок симметричной матрицы А (тип: целый); |
L - | задает режим работы подпрограммы (тип: целый); при этом: |
L = 1 - | если система с данной матрицей А решается впервые; |
L ≠ 1 - | если система с данной матрицей А решается повторно. |
Версии
ASH0C - | решение системы линейных алгебраических уравнений с эрмитовой матрицей модифицированным методом квадратного корня. |
ASH0D - | решение системы линейных алгебраических уравнений с симметричной матрицей, заданной с двойной точностью, модифицированным методом квадратного корня. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В подпрограмме АSН0D параметры А, В, S, Х имеют тип DОUВLЕ РRЕСISIОN. | |
2. | В подпрограмме АSН0С параметры А, В, Х имеют тип СОМРLЕХ. |
DОUВLЕ РRЕСISIОN A, B, X, S DIMENSION A(7, 7), B(7), X(7), S(7) DATA B /1.D0, 6*0.D0/ DO 1 I = 1, 7 DO 1 J = 1, 7 1 A(I, J) = 360360.D0 / FLOAT(I + J - 1) N = 7 K = 1 CALL ASH0D (A, B, X, S, N, K) Результаты: X = (1.359751359*10-4, -3.26340326*10-3, 2.44755244*10-2, -8.1585081*10-2, 1.34615384*10-1, -1.07692307*10-1, 3.33333333*10-2)