Текст подпрограммы и версий ( Фортран )
ash3r.zip , ash3d.zip , ash3c.zip , ass3c.zip
Тексты тестовых примеров ( Фортран )
tash3r.zip , tash3d.zip , tash3c.zip , tass3c.zip
Текст подпрограммы и версий ( Си )
ash3r_c.zip , ash3d_c.zip , ash3c_c.zip , ass3c_c.zip
Тексты тестовых примеров ( Си )
tash3r_c.zip , tash3d_c.zip , tash3c_c.zip , tass3c_c.zip
Текст подпрограммы и версий ( Паскаль )
ash3r_p.zip , ash3e_p.zip , ash3c_p.zip , ass3c_p.zip
Тексты тестовых примеров ( Паскаль )
tash3r_p.zip , tash3e_p.zip , tash3c_p.zip , tass3c_p.zip

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

Назначение

Решение системы линейных алгебраических уравнений с неособенной симметричной матрицей, записанной в компактной форме, методом квадратного корня.

Математическое описание

Подпрограмма АSН3R вычисляет решение системы N линейных алгебраических уравнений А*x = b где А - неособенная симметричная матрица, заданная в компактной форме, b - вектор правой части, методом квадратного корня.

Вunch J.R., Рarlett В.N., Direct Мethods for Solving Symmetric Indefinite Systems of Linear Еquations, SIАМ J. Numer. Аnal., Vol. 8, No. 4, December 1971.

Использование

    SUBROUTINE  ASH3R (A, B, X, N, L, IR, R, IERR) 

Параметры

A - вещественный вектор длины N на (N + 1)/2, в котором содержится заданная матрица, записанная в компактной форме;
B - вещественный вектор длины N, в котором задается правая часть;
X - вещественный вектор длины N, в котором содержится решение исходной системы;
N - заданный порядок матрицы (тип: целый);
L - целая переменая, которая задает режим работы подпрограммы; при этом:
L = 1 - если система с данной матрицей решается впервые;
L ≠ 1 - если система с данной матрицей решается повторно;
IR - целый вектор длины 2 на N, используемый как рабочий; если подпрограмма АSН3R будет использоваться повторно, т.е. при L ≠ 1, компоненты вектора IR пользователь менять не имеет права;
R - вещественный вектор длины N, используемый как рабочий; если подпрограмма АSН3R будет использоваться повторно, т.е. при L ≠ 1, компоненты вектора R пользователь менять не имеет права;
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в процессе работы подпрограммы; при этом:
IЕRR=65 - если матрица является сингулярной.

Версии

ASH3D - решение системы линейных алгебраических уравнений с неособенной симметричной матрицей, записанной в компактной форме, методом квадратного корня с повышеной точностью.
ASH3C - решение системы линейных алгебраических уравнений, с неособенной эрмитовой матрицей, записанной в компактной форме, методом квадратного корня.
ASS3C - решение системы линейных алгебраических уравнений с неособенной симметричной комплексной матрицей, записанной в компактной форме, методом квадратного корня.

Вызываемые подпрограммы

UTAS10 - подпрограмма выдачи диагностических сообщений при работе подпрограммы АSН3R;
UTAS11 - подпрограмма выдачи диагностических сообщений при работе подпрограммы АSН3D;
UTAF10 - подпрограмма выдачи диагностических сообщений при работе подпрограмм АSН3С и АSS3С;
AFH3R - разложение неособенной симметричной матрицы с компактной формой записи методом квадратного корня;
AFH3D - разложение неособенной симметричной матрицы, записанной в компактной форме, методом квадратного корня с повышенной точностью;
AFH3C - разложение неособенной эрмитовой матрицы с компактной формой записи методом квадратного корня;
AFS3C - разложение неособенной симметричной комплексной матрицы с компактной формой записи методом квадратного корня.

Замечания по использованию

 

При работе подпрограммы исходная матрица А не сохраняется. На месте матрицы А помещается ее треугольное разложение, полученное подпрограммами АFН3R, АFН3D, АFS3С и АFН3С.

Подпрограммы АSН3R, АSН3D, АSН3С и АSS3С позволяют помещать вычисленное решение Х на место правой части В.

Для подпрограммы АSН3D параметры А, В и Х должны иметь тип DОUВLЕ РRЕСISIОN.

Для подпрограмм АSН3С и АSS3С параметры А, В и Х должны иметь тип СОМРLЕХ.

Пример использования

      DIMENSION  A(6), B(3), IR(6), R(3), X(3)
      DATA  A /1., .5, -1., 3., 2., 1./, B /-1., -3.5, 6./
      N = 3
      L = 1
      CALL  ASH3R (A, B, X, N, L, IR, R, IERR)

Результаты:

      X  =   (1., 2., -1.) , 
      IERR  =  0