Текст подпрограммы и версий ( Фортран )
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

Подпрограмма:  ASB1R

Назначение

Решение системы линейных алгебраических уравнений с ленточной матрицей, заданной в компактной форме, 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