Текст подпрограммы и версий ( Фортран ) afg1r.zip , afg1d.zip , afg1c.zip |
Тексты тестовых примеров ( Фортран ) tafg1r.zip , tafg1d.zip , tafg1c.zip |
Текст подпрограммы и версий ( Си ) afg1r_c.zip , afg1d_c.zip , afg1c_c.zip |
Тексты тестовых примеров ( Си ) tafg1r_c.zip , tafg1d_c.zip , tafg1c_c.zip |
Текст подпрограммы и версий ( Паскаль ) afg1r_p.zip , afg1e_p.zip , afg1c_p.zip |
Тексты тестовых примеров ( Паскаль ) tafg1r_p.zip , tafg1e_p.zip , tafg1c_p.zip |
Треугольное разложение вещественной матрицы методом Гаусса с выбором ведущего элемента по столбцу.
Для заданной матрицы А выполняется факторизация вида QА = LU, где Q - вычисляемая матрица перестановок, L - нижняя, U - верхняя треугольная матрицы. Матрица L имеет единичные диагональные элементы. Матрица Q осуществляет перестановку строк исходной матрицы и обеспечивает стратегию выбора ведущего элемента по столбцам.
В.В.Воеводин, Р.В.Петрина, Комплекс алгоритмов, основанных на преобразованиях типа Гаусса, в пакете линейной алгебры, Сб. "Численный анализ на ФОРТРАНе", вып.3, Изд-во МГУ, 1973.
SUBROUTINE AFG1R (A, S, N)
Параметры
A - | двумерный N*N массив, в котором задается исходная матрица (тип: RЕАL); по окончании работы подпрограммы в массиве А на соответствующих местах запоминаются элементы матрицы U и поддиагональные элементы матрицы L; |
S - | вектор длины N, в котором запоминается вектор, порождающий матрицу перестановок; при этом в S (К) запоминается номер строки, переставленной на К - ом шаге с К - ой строкой (тип: целый); |
N - | заданный порядок исходной матрицы (тип: целый). |
Версии
AFG1D - | треугольное разложение матрицы, заданной с удвоенной точностью методом Гаусса с выбором ведущего элемента по столбцу. |
AFG1C - | треугольное разложение комплексной матрицы методом Гаусса с выбором ведущего элемента по столбцу. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В подпрограмме АFG1С массив А имеет тип СОМРLЕХ. | |
2. |
В подпрограмме АFG1D массив А имеет тип DОUВLЕ РRЕСISIОN. | |
3. | Поскольку факторизация Гаусса требует N - 1 шагов, то S (N) = 0. |
DIMENSION A(4, 4), S(4) DATA A /7.9, 8.5, 4.3, 3.2, 5.6, -4.8, 4.2, -1.4, 5.7, .8, -3.2, * -8.9, -7.2, 3.5, 9.3, 3.3/ CALL AFG1R (A, S, 4) Результат: | 8.500 -4.800 0.800 3.500 | | 0.929 10.061 4.956 -10.453 | A = | 0.376 0.040 -9.402 2.405 | ; | 0.506 0.659 0.731 12.658 | S = (2, 2, 4, 0); это означает, что | 1 0 0 0 | | 0.929 1 0 0 | L = | 0.376 0.040 1 0 | ; | 0.506 0.659 0.731 1 | | 8.500 -4.800 0.800 3.500 | | 0 10.061 4.956 -10.453 | U = | 0 0 -9.402 2.405 | | 0 0 0 12.658 |