ID EN
Miscellaneous

svd

R Base 3.6.2 🇮🇩 Bahasa Indonesia

Hitung dekomposisi nilai singular dari matriks persegi panjang.

Syntax

R
svd(x, nu = min(n, p), nv = min(n, p), LINPACK = FALSE)<p></p><p>La.svd(x, nu = min(n, p), nv = min(n, p))</p>

Arguments

Parameter Deskripsi
x a numeric or complex matrix whose SVD decomposition is to be computed. Logical matrices are coerced to numeric.
nu the number of left singular vectors to be computed. This must between 0 and n = nrow(x).
nv the number of right singular vectors to be computed. This must be between 0 and p = ncol(x).
LINPACK logical. Defunct and ignored.

Return Value

Dekomposisi SVD matriks seperti yang dihitung oleh LAPACK, $$ \bold{X = U D V'},$$ dengan \(\bold{U}\) dan \(\bold{V}\) ortogonal, \(\bold{V'}\) berarti V ditransposisikan (dan terkonjugasi untuk input kompleks), dan \(\bold{D}\) adalah matriks diagonal dengan nilai singular (non-negatif) \(D_{ii}\) dalam urutan menurun. Sama halnya, \(\bold{D = U' X V}\), yang diverifikasi dalam contoh. Nilai yang dikembalikan adalah daftar dengan komponen da vektor yang berisi nilai tunggal x, dengan panjang min(n, p), s

Details

Dekomposisi nilai tunggal memainkan peran penting dalam banyak teknik statistik. svd dan La.svd menyediakan dua antarmuka yang berbeda dalam nilai kembaliannya. Menghitung vektor tunggal adalah bagian yang lambat untuk matriks besar. Perhitungan akan lebih efisien jika nu <= min(n, p) dan nv <= min(n, p), terlebih lagi jika keduanya nol. Hasil yang tidak berhasil dari kode LAPACK yang mendasarinya akan menghasilkan kesalahan yang memberikan kode kesalahan positif (paling sering 1): ini hanya dapat diinterpretasikan dengan mempelajari kode FORTRAN secara mendetail tetapi berarti algoritma tersebut gagal untuk menyatu.

Contoh

Example
R
# NOT RUN {
hilbert <- function(n) { i <- 1:n; 1 / outer(i - 1, i, "+") }
X <- hilbert(9)[, 1:6]
(s <- svd(X))
D <- diag(s$d)
s$u %*% D %*% t(s$v) #  X = U D V'
t(s$u) %*% X %*% s$v #  D = U' X V
# }

See Also

eigen qr.