LstSq

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

vector matrix::LstSq(
  const vector  b      // значения ординаты или "зависимой переменной"
   );

Параметры

b

[in]  Значение ординаты или "зависимая переменная". (Вектор свободных членов)

Возвращаемое значение

Вектор с решением системы a * x = b.   Это справедливо только для систем, имеющих точное решение.

Пример:

   matrix a={{32},
             {4,-5},
             {33}};
   vector b={7,40,3};
//---
   vector x=a.LstSq(b);
//--- проверка, должно быть [5, -4]
   Print("x="x);
//--- проверка, должно быть [7, 40, 3]
   vector b1=a.MatMul(x);
   Print("b1=",b1);
 
/*
  x=[5.000000000000002,-4]
  b1=[7.000000000000005,40.00000000000001,3.000000000000005]
*/