- Scilab Online Help
- Linear Algebra
- aff2ab
- balanc
- bdiag
- chfact
- chol
- chsolve
- classmarkov
- cmb_lin
- coff
- colcomp
- companion
- cond
- det
- eigenmarkov
- ereduc
- expm
- fstair
- fullrf
- fullrfk
- genmarkov
- givens
- glever
- gschur
- gspec
- hess
- householder
- im_inv
- inv
- kernel
- kroneck
- linsolve
- lsq
- lu
- lyap
- nlev
- orth
- pbig
- pencan
- penlaur
- pinv
- polar
- proj
- projspec
- psmall
- qr
- quaskro
- randpencil
- range
- rank
- rankqr
- rcond
- rowcomp
- rowshuff
- rref
- schur
- spaninter
- spanplus
- spantwo
- spec
- sqroot
- squeeze
- sva
- svd
- sylv
- trace
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
lu
ピボット選択付きのLU 分解
呼び出し手順
[L,U]= lu(A) [L,U,E]= lu(A)
Parameters
- A
実数または複素数の行列 (m x n).
- L
実数または複素数の行列 (m x min(m,n)).
- U
実数または複素数の行列 (min(m,n) x n ).
- E
a (n x n) 置換行列.
説明
[L,U]= lu(A)
は,
U
を上三角行列,
L
を何らかの特別な構造を持たない一般的な行列として,
A = L*U
となるような
2つの行列 L
および
U
を出力します.
実際は,行列A
はE*A=B*U
のように分解されます.
ただし, 行列B
は下三角行列,
行列L
はL=E'*B
から計算されます.
A
がランク k
を有している場合,
U
の行 k+1
から
n
までは 0 となります.
[L,U,E]= lu(A)
は,
上三角行列U
および
置換行列を E
とした下三角行列 E*L
,
によりE*A = L*U
となるような
3つの行列 L
, U
および
E
を出力します.
A
が実数行列の場合,
関数lufact
および luget
を
用いることにより,
置換行列を得ることができます.
A
がフルランクでない場合,行列 L
の列圧縮も得ることができる.
例 #1
以下の例では,大きさ4のヒルバート行列を作成し, A=LU と分解します. 行列 L は下三角行列ではないことに注意してください. 下三角行列Lを取得するには, 出力引数 E を Scilab に指定する必要があります.
a = testmatrix("hilb",4); [l,u]=lu(a) norm(l*u-a)
例 #2
以下の例では,大きさ4のヒルバート行列を作成し, EA=LU と分解します. 行列 L は下三角行列であることに注意してください.
a = testmatrix("hilb",4); [l,u,e]=lu(a) norm(l*u-e*a)
例 #3
以下の例では, lufact および luget 関数を使用する 方法を示しています.
使用する関数
lu 分解 Lapack ルーチン DGETRF (実数行列の場合) および ZGETRF (複素数の場合) に基づいています.
<< lsq | Linear Algebra | lyap >> |