/* -*- MaTX -*- * * 【名前】 * lu_p() - 並び替え付きLU分解 * * 【形式】 * {L,U,P} = lu_p(A) * Matrix L,U,P; * Matrix A; * * 【機能説明】 * {L,U,P} =lu_p(A)は,行列 A の並び替え付きLU分解を求める。この * 分解は,正方行列 Aを下三角行列 L,上三角行列 U,置換行列 P の積 * に分解する。これらの行列の間には,P * A = L * U の関係がある。 * * 【アルゴリズム】 * 文献 1 のアルゴリズムを使う。 * * 【例題】 * >> A = [[1 2 3][6 5 4][7 8 1]]; * >> {L, U, P} = lu_p(A); * >> print L, U, P; * === [L] : ( 3, 3) === * ( 1) ( 2) ( 3) * ( 1) 1.00000000E+00 0.00000000E+00 0.00000000E+00 * ( 2) 8.57142857E-01 1.00000000E+00 0.00000000E+00 * ( 3) 1.42857143E-01 -4.61538462E-01 1.00000000E+00 * === [U] : ( 3, 3) === * ( 1) ( 2) ( 3) * ( 1) 7.00000000E+00 8.00000000E+00 1.00000000E+00 * ( 2) 0.00000000E+00 -1.85714286E+00 3.14285714E+00 * ( 3) 0.00000000E+00 0.00000000E+00 4.30769231E+00 * === [P] : ( 3, 3) === * ( 1) ( 2) ( 3) * ( 1) 0.00000000E+00 0.00000000E+00 1.00000000E+00 * ( 2) 0.00000000E+00 1.00000000E+00 0.00000000E+00 * ( 3) 1.00000000E+00 0.00000000E+00 0.00000000E+00 * * 【関連項目】 * lu(), inv(), det() * * 【参考文献】 * [1] Gene H. Golub and Charles F. Van Loan. Matrix Computations. * The Johns Hopkins University Press, 1989 */