{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
【参照】
【文献】
- 1.
- Gene H. Golub and Charles F. Van Loan. Matrix Computations.
The Johns Hopkins University Press, 1989