|
Текст подпрограммы и версий ( Фортран ) asb1r.zip , asb1d.zip |
Тексты тестовых примеров ( Фортран ) tasb1r.zip , tasb1d.zip |
|
Текст подпрограммы и версий ( Си ) asb1r_c.zip , asb1d_c.zip |
Тексты тестовых примеров ( Си ) tasb1r_c.zip , tasb1d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) asb1r_p.zip , asb1e_p.zip |
Тексты тестовых примеров ( Паскаль ) tasb1r_p.zip , tasb1e_p.zip |
Решение системы линейных алгебраических уравнений с ленточной матрицей, заданной в компактной форме, c выбором ведущего элемента по столбцу.
Подпрограмма АSВ1R вычисляет решение системы N линейных алгебраических уравнений А*x = b, где А - ленточная матрица, заданная в компактной форме, b - вектор правой части. Решение вычисляется с выбором главного элемента по столбцу.
Дж.Х.Уилкинсон, Алгебраическая проблема собственных значений, "Наука", М., 1970.
SUBROUTINE ASB1R ( A, B, X, N, NLC, NUC, L, R, IERR)
Параметры
| A - | вещественный двумерный массив размера N на (NLС + NUС + 1), в котором содержится заданная матрица, записанная в компактной форме; |
| B - | вещественный вектор длины N, в котором содержится правая часть исходной системы; |
| X - | вещественный вектор длины N, в котором содержится искомое решение исходной системы; |
| N - | заданный порядок матрицы (тип: целый); |
| NLC - | число ненулевых диагоналей, расположенных под главной диагональю (тип: целый); |
| NUC - | число ненулевых диагоналей, расположенных над главной диагональю (тип: целый); |
| L - | задает режим работы подпрограммы (тип: целый); при этом: |
| L = 1 - | если система с данной матрицей решается впервые; |
| L ≠ 1 - | если система с данной матpицей pешается повторно; |
| R - | вещественный двумерный массив размера N на (NLС + 1), используемый как рабочий; |
| IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом: |
| IЕRR=65 - | если заданная матрица является сингулярной. |
Версии
| ASB1D - | решение системы линейных алгебраических уравнений с ленточной матрицей, заданной в компактной форме, с удвоенной точностью (выбор ведущего элемента по столбцу). |
Вызываемые подпрограммы
| UTBF10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы АSВ1R; |
| UTBF11 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы АSВ1D; |
| AFB1R - | треугольное разложение ленточной матрицы, заданной в компактной форме, с выбором ведущего элемента по столбцу; |
| AFB1D - | треугольное разложение ленточной матрицы, заданной в компактной форме, с удвоенной точностью (выбор ведущего элемента по столбцу). |
Замечания по использованию
|
При работе подпрограммы исходная матрица не сохраняется. На месте матрицы А помещается ее треугольное разложение, полученное подпрограммами АFВ1R или АFВ1D. Подпрограммы АSВ1R и АSВ1D позволяют использовать вместо параметра Х параметр В. При использовании подпрограмм АSВ1R и АSВ1D в цикле значение параметра R должно оставаться неизменным (см. описание подпрограммы АFВ1R). Для подпрограммы АSВ1D параметры А, В, Х и R должны иметь тип DОUВLЕ РRЕСISIОN. |
DIMENSION A(33), B(3), X(3), R(3, 2)
DATA A /0., -1., 10., 1., 22., 18., 3., 5., 0./
DATA B /7., 38., 2./
N = 3
NLC = 1
NUC = 1
L = 1
CALL ASB1R (A, B, X, N, NLC, NUC, L, R, IERR)
Результаты:
X = (1., 2., -1.),
IERR = 0