Текст подпрограммы и версий ( Фортран ) asp1r.zip , asp1d.zip , asp1c.zip |
Тексты тестовых примеров ( Фортран ) tasp1r.zip , tasp1d.zip , tasp1c.zip |
Текст подпрограммы и версий ( Си ) asp1r_c.zip , asp1d_c.zip , asp1c_c.zip |
Тексты тестовых примеров ( Си ) tasp1r_c.zip , tasp1d_c.zip , tasp1c_c.zip |
Текст подпрограммы и версий ( Паскаль ) asp1r_p.zip , asp1e_p.zip , asp1c_p.zip |
Тексты тестовых примеров ( Паскаль ) tasp1r_p.zip , tasp1e_p.zip , tasp1c_p.zip |
Нахождение нормального решения неопределенной системы линейных алгебраических уравнений полного ранга методом отражений.
Находится нормальное решение системы АХ = В, где А - матрица полного ранга размера N на М (N ≤ М), В - заданный вектор длины N. Для решения используется нормализованное приведение матрицы системы к нижней треугольной форме L с помощью последовательности преобразований отражения
(1) SAQ1Q2...QN = L ,
где Qi - соответствующие матрицы отражения, 1 ≤ i ≤ N , S - результирующая матрица перестановок, L - нижняя треугольная матрица размера N на М.
Из полученной треугольной системы
LY = SB
находится нормальное решение Y, по которому затем определяется искомое решение Х = Q1Q2 ... QNY .
Д.К.Фадеев, В.Н.Кублановская, В.Н.Фадеева, О решении линейных алгебраических систем с прямоугольными матрицами. Тp. Мат. ин-та АН СССР, 1968, 96.
SUBROUTINE ASP1R (A, B, X, T, IS, N, M, L)
Параметры
A - | вещественный двумерный массив размера N на М (N ≤ М), в котором задается исходная матрица А; в результате работы подпрограммы в массиве А на соответствуюших местах запоминаются поддиагональные элементы вычисленной нижней треугольной матрицы L; в остальной части массива в последовательных строках запоминаются векторы, порождающие соответствующие матрицы отражения; |
B - | вещественный вектор длины N, в котором задается правая часть системы; |
X - | вещественный вектор длины М , в котором запоминается найденное решение системы; |
T - | вещественный вектор длины М, используемый подпрограммой как рабочий; в результате работы подпрограммы в первых N компонентах массива Т запоминаются диагональные элементы нижней треугольной матрицы L; |
IS - | целый вектор длины N, в котором запоминаются перестановки строк при проведении нормализованного процесса (1); в IS (k) запоминается номер строки, переставленной с k - ой строкой на k - ом шаге преобразования; |
N, M - | число строк и столбцов исходной матрицы А, N ≤ М (тип: целый); |
L - | задает режим работы подпрограммы (тип: целый); при этом: |
L = 1 - | если система с данной матрицей А решается в первый раз; |
L ≠ 1 - | если система решается повторно с той же матрицей А, но с другой правой частью; в этом случае разложение (1) матрицы А не выполняется. |
Версии
ASP1D - | нахождение нормального решения недоопределенной системы линейных алгебраических уравнений полного ранга, заданной с удвоенной точностью, методом отражений. |
ASP1C - | нахождение нормального решения комплексной недоопределенной системы линейных алгебраических уравнений полного ранга методом отражений. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В подпрограмме АSР1С параметры А, В, Х, Т имеют тип СОМРLЕХ. | |
2. |
В подпрограмме АSР1D параметры А, В, Х, Т имеют тип DОUВLЕ РRЕСISIОN. | |
3. | При повторном решении системы с той же матрицей информация, полученная ранее в массивах А, Т, IS не должна портиться. |
DOUBLE PRECISION A, B, X, T DIMENSION A(5, 6), B(5), X(6), T(6), IS(5) INTEGER P DATA A /36.D0, -630.D0, 3360.D0, -7560.D0, 7560.D0, -630.D0, 14700.D0, * -88200.D0, 211680.D0, -220500.D0, 3360.D0, -88200.D0, 564480.D0, * -1411200.D0, 1512000.D0, -7560.D0, 211680.D0, -1411200.D0, * 3628800.D0, -3969000.D0, 7560.D0, -220500.D0, 1512000.D0, * -3969000.D0, 4410000.D0, -2772.D0, 83160.D0, -582120.D0, * 1552320.D0, -1746360.D0/ DATA B /53872.98D0, -1542941.4D0, 10456462.8D0, -27223610.4D0, * 30065729.4D0/ N = 5 M = 6 P = 1 CALL ASP1D (A, B, X, T, IS, N, M, P) Результат: X = ( 0.00000000044, -0.069999999928, 0.799999999989, -2.7000000002, 3.4999999997, -1.5400000002 )