Введение к программам решения переопределенных
и недоопределенных систем линейных уравнений

При решении систем линейных алгебраических уравнений вида

        A x  =  b

где  A - прямоугольная матрица размера  m  на  n,
        b - заданный вектор длины  m,
        x - вектор искомых решений длины  n,

рассматриваются два случая:

- когда  m ≥ n   (система называется переопределенной),
- когда  m < n   (система называется недоопределенной).

В первом случае решается задача наименьших квадратов, т.е. задача минимизации по  x  евклидовой нормы вектора невязки

(1)         || b - Ax || 2  .

Если предполагается, что ранг матрицы  rank (A) = n (т.е. матрица  A полного ранга), то решение задачи (1) является единственным.

Во втором случае ( m < n ), если ранг матрицы  rank (A) = m, имеется бесконечное число решений  x, которые точно удовлетворяют уравнению  b - Ax = 0 . В этом случае часто бывает полезно найти единственное решение  x, которое минимизирует норму  || x || 2. В этом случае говорят, что ищется решение недоопределенной системы уравнений с минимальной нормой.

Подпрограммы PDGELS и PZGELS, входящие в этот подраздел, предполагают что  rank (A) = min (m, n), т.е. что матрица  A в любом случае имеет полный ранг.

В случае  m > n ищется решение переопределенной системы уравнений как задачи наименьших квадратов, а при  m < n ищется решение недоопределенной системы уравнений с минимальной нормой.

Эти подпрограммы используют QR - разложение (в первом случае) или LQ - разложение (во втором случае) матрицы  A.

Кроме того, вместо матрицы A можно подать на вход этим подпрограммам AT (в вещественном случае) или AH (в комплексном случае).

В общем случае, когда у нас может быть  rank(A) < min (m, n), другими словами, когда матрица  A - неполного ранга, ищется решение задачи наименьших квадратов с минимальной нормой, при котором минимизируется как  || x || 2, так  и  || b - Ax || 2.

Эти подпрограммы позволяют за одно обращение к ним решать сразу несколько систем уравнений, различающихся правыми частями, т.е. с разными векторами  b. Для этого разные векторы  b представляются как столбцы матрицы  B, а решения  x  соответствующих систем уравнений представляются в виде соответствующих столбцов матрицы  X.

Заметим, однако, что задача (1) решается для каждого из векторов правых частей независимо; т.е. это не то же самое, что нахождение матрицы  X, которая минимизирует  || B - AX || 2.