Ruby 2.6.0 リファレンスマニュアル > ライブラリ一覧 > matrixライブラリ > Matrix::LUPDecompositionクラス

class Matrix::LUPDecomposition

クラスの継承リスト: Matrix::LUPDecomposition < Object < Kernel < BasicObject

要約

行列のLUP分解の情報を保持するクラスです。

Matrix#lup_decomposition の返り値のクラスです。

目次

インスタンスメソッド
det determinant l p pivots singular? solve to_a to_ary u

インスタンスメソッド

det -> Numeric[permalink][rdoc]
determinant -> Numeric

元の行列の行列式の値を返します。 LUP 分解の結果を利用して計算します。

[SEE_ALSO] Matrix#determinant

l -> Matrix[permalink][rdoc]

LUP分解の下半行列部分を返します。

p -> Matrix[permalink][rdoc]

LUP分解の置換行列部分を返します。

pivots -> [Integer][permalink][rdoc]

ピボッティングを表す配列を返します。

singular? -> bool[permalink][rdoc]

元の行列が正方で特異なら真を/正則なら偽を返します。 LUP 分解の結果を利用して判定します。

[SEE_ALSO] Matrix#singular?

solve(b) -> Vector | Matrix[permalink][rdoc]

self が正方行列 A の LUP 分解の時、一次方程式 Ax = b の解を返します。 b には Vector, Matrix, 数値の配列を指定出来ます。

それぞれベクトルのサイズ、行列の行数、配列のサイズが A の列数と一致していなければなりません。 返り値は b が行列なら行列、それ以外はベクトルになります。

[PARAM] b:
一次方程式の定数項を指定します。

require 'matrix'

lup = Matrix[[2, 1], [1, 2]].lup

lup.solve([1, -1])                  #=> Vector[(1/1), (-1/1)]
lup.solve(Vector[3, 0])             #=> Vector[(2/1), (-1/1)]
lup.solve(Matrix[[1, 3], [-1, 0]])  #=> Matrix[[(1/1), (2/1)], [(-1/1), (-1/1)]]
to_ary -> [Matrix, Matrix, Matrix][permalink][rdoc]
to_a -> [Matrix, Matrix, Matrix]

分解した行列を [下半行列, 上半行列, 置換行列] という3要素の配列で 返します。

u -> Matrix[permalink][rdoc]

LUP分解の上半行列部分を返します。