LstSq

線形代数方程式の最小二乗解を返します(非正方行列または縮退行列の場合)。

vector matrix::LstSq(
  const vector  b      // 縦座標または「従属変数」の値
  );

パラメータ

b

[in] 縦座標または「従属変数」の値(自由項のベクトル)

戻り値

系 a * x = b の解を持つベクトル。これは、正確な解を持つシステムにのみ当てはまります。

  matrix a={{3, 2},
            {4,-5},
            {3, 3}};
  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]
*/