Текст подпрограммы и версий ( Фортран )
ald1r.zip
Тексты тестовых примеров ( Фортран )
tald1r.zip
Текст подпрограммы и версий ( Си )
ald1r_c.zip
Тексты тестовых примеров ( Си )
tald1r_c.zip
Текст подпрограммы и версий ( Паскаль )
ald1r_p.zip
Тексты тестовых примеров ( Паскаль )
tald1r_p.zip

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

Назначение

Вычисление решения с минимальной евклидовой нормой системы линейных алгебраических неравенств.

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

Для системы линейных алгебраических неравенств

        A * X ≥ H

   ищется вектор X минимальной нормы

        || X ||  - min 

Здесь A - прямоугольная матрица размерности M на N и X - вектор длины N.

Подробное описание алгоритма смотри в [1] (алгоритм LDP)

1.  Lawson C.L., Hanson R.J. "Solving least squares problem", Prentice - Hall Inc.,Englewood Cliffs,New Jersey, 1974.

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

    SUBROUTINE  ALD1R (G, MDG, M, N, H, X, XNORM, W, INDEX,
                                            IERR) 

Параметры

G - вещественный двумерный массив размера MDG на N, содержащий при входе в подпрограмму в первых M строках исходную матрицу A размерности M на N;
MDG - число строк массива G (тип: целый);
M, N - размерности исходной матрицы A (тип: целый);
H - вещественный вектор длины M - правая часть системы неравенств;
X - вещественный вектор длины N - в результате работы подпрограммы содержит решение (если IERR = 0);
XNORM - вещественная переменная, содержащая по окончании работы подпрограммы евклидову норму найденного решения (если IERR = 0);
W - вещественный рабочий вектор длины (N + 1) * (M + 2) + 2 * M;
INDEX - целый рабочий вектор длины N;
IERR - диагностический параметр - код завершения программы со значениями:
IERR= 0 - решение получено успешно;
IERR= 1 - система неравенств несовместна;
IERR=65 - неправильная размерность параметров

Версии: нет

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

ALN1R - вычисление приближения к псевдорешению системы линейных алгебраических уравнений на множестве неотрицательных векторов

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

  1.  Подпрограмма ALD1R обращается к вспомогательной подпрограмме с именем: ALN1R4

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

   Рассмотрим решение системы неравенств:

                     X +     Y  і   2
                -2*X -     Y  і  -4
                    -X - 2*Y  і  -4
 
      DIMENSION G(3, 2), H(3), X(2), W(21), INDEX(3) 
      DATA  G /1., -2., -1., 1., -1., -2./ 
      DATA  H /2., -4., -4./ 
      DATA MDG /3/, M /3/, N /2/ 
      CALL  ALD1R (G, MDG, M, N, H, X, XNORM, W, INDEX, IERR)

Результаты: 

      IERR:      0 
      Решение:   1.000E+00   1.000E+00
      XNORM:     1.414E + 00