Rの基本パッケージ stats 中の行列分解関数の簡易紹介

行列分解関数は多変量解析、線形モデル等の多くの関数の内部で用いられる。 QR 分解と特異値分解 (SVD, singular value decomposition) がその中心である。


行列の QR 分解

行列の QR 分解

行列の QR 分解を計算する。これは LINPACK ルーティン DQRDC または LAPACK ルーティン DGEQP3 (複素行列に対しては ZGEQP3) で用いられている手法への インタフェイスである。

qr(x, tol = 1e-07 , LAPACK = FALSE)
qr.coef(qr, y)
qr.qy(qr, y)
qr.qty(qr, y)
qr.resid(qr, y)
qr.fitted(qr, y, k = qr$rank)
qr.solve(a, b, tol = 1e-7)
## クラス qr に対する S3 メソッド
solve(a, b, ...)
is.qr(x)
as.qr(x)

QR 分解の補助関数

これらの関数は QR オブジェクトから元の行列 X もしくは分解成分行列 Q, R を返す。

qr.X(qr, complete = FALSE, ncol =)
qr.Q(qr, complete = FALSE, Dvec =)
qr.R(qr, complete = FALSE)

行列の特異値 (SVD) 分解

行列の特異値分解

長方形行列の特異値分解を計算する。

svd(x, nu = min(n, p), nv = min(n, p), LINPACK = FALSE)
La.svd(x, nu=min(n, p), nv=min(n, p), method=c("dgesdd","dgesvd"))

行列のコレスキ分解

行列のコレスキ分解

実正定値符号対称行列のコレスキ分解 (Cholesky decomposition) を計算する。

chol(x, pivot = FALSE,  LINPACK = pivot)
La.chol(x)

コレスキ分解による逆行列計算

対称正定値符号正方行列の逆行列をコレスキ分解から求める。

chol2inv(x, size = NCOL(x), LINPACK = FALSE)
La.chol2inv(x, size = ncol(x))

関連関数

三角行列係数の線型方程式を解く

これらの関数は係数行列が上・下三角行列である線型方程式を解く。

backsolve(r, x, k= ncol(r), upper.tri = TRUE, transpose = FALSE)
forwardsolve(l, x, k= ncol(l), upper.tri = FALSE, transpose = FALSE)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-25 (土) 11:19:17