LU

矩阵的 LU 因数分解为下三角矩阵和上三角矩阵的乘积。

bool matrix::LU(

  matrix&  L,     // 下三角矩阵

  matrix&  U      // 上三角矩阵

   );

参数

L 键

[输出]  下三角矩阵。

U

[输出]  上三角矩阵。

返回值

成功时返回 true,否则返回 false。

举例

   matrix matrix_a={{1,2,3,4},

                    {5,2,6,7},

                    {8,9,3,10},

                    {11,12,14,4}};

   matrix matrix_l,matrix_u;

//--- LU 分解

   matrix_a.LU(matrix_l,matrix_u);

   Print("matrix_l\n",matrix_l);

   Print("matrix_u\n",matrix_u);

//--- 验算是否 A = L * U

   Print("check\n",matrix_l.MatMul(matrix_u));





   /*

   matrix_l

   [[1,0,0,0]

    [5,1,0,0]

    [8,0.875,1,0]

    [11,1.25,0.5904761904761905,1]]

   matrix_u

   [[1,2,3,4]

    [0,-8,-9,-13]

    [0,0,-13.125,-10.625]

    [0,0,0,-17.47619047619047]]

   check

   [[1,2,3,4]

    [5,2,6,7]

    [8,9,3,10]

    [11,12,14,4]]

   */