How to Perform Singular Value Decomposition (SVD) in R - Step by Step Examples
How to Perform Singular Value Decomposition (SVD) in R ?
Answer
To perform Singular Value Decomposition (SVD) in R, you can use the svd() function. This function decomposes a matrix into three matrices representing the singular vectors and values.
✐ Examples
1 Performing SVD on a 3x2 Matrix
In this example,
- We start by creating a 3x2 matrix named
matusing thematrix()function. This matrix represents the data we want to decompose. - Next, we use the
svd()function to perform SVD on the matrixmat. We assign the result to a variable namedsvd_res. - We extract the matrices representing the singular vectors from
svd_resusing the$uand$vattributes and assign them to variables nameduandvrespectively. - We also extract the singular values from
svd_resusing the$dattribute and assign them to a variable namedd. - We print the matrices
uandv, as well as the vectordto the console to see the results. This allows us to verify the decomposition.
R Program
mat <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 3, byrow = TRUE)
svd_res <- svd(mat)
u <- svd_res$u
v <- svd_res$v
d <- svd_res$d
print('Matrix U:')
print(u)
print('Matrix V:')
print(v)
print('Vector D:')
print(d)Output
[1] "Matrix U:"
[,1] [,2]
[1,] -0.2298477 0.8834610
[2,] -0.5247448 0.2407825
[3,] -0.8196419 -0.4018960
[1] "Matrix V:"
[,1] [,2]
[1,] -0.6196295 -0.7848945
[2,] -0.7848945 0.6196295
[1] "Vector D:"
[1] 9.5255181 0.51430062 Performing SVD on a 4x3 Matrix
In this example,
- We start by creating a 4x3 matrix named
matusing thematrix()function. This matrix represents another set of data we want to decompose. - Next, we use the
svd()function to perform SVD on the matrixmat. We assign the result to a variable namedsvd_res. - We extract the matrices representing the singular vectors from
svd_resusing the$uand$vattributes and assign them to variables nameduandvrespectively. - We also extract the singular values from
svd_resusing the$dattribute and assign them to a variable namedd. - We print the matrices
uandv, as well as the vectordto the console to see the results. This allows us to verify the decomposition.
R Program
mat <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), nrow = 4, byrow = TRUE)
svd_res <- svd(mat)
u <- svd_res$u
v <- svd_res$v
d <- svd_res$d
print('Matrix U:')
print(u)
print('Matrix V:')
print(v)
print('Vector D:')
print(d)Output
[1] "Matrix U:"
[,1] [,2] [,3]
[1,] -0.1408767 -0.82471435 0.5418041
[2,] -0.3439463 -0.42626394 -0.6625522
[3,] -0.5470159 -0.02781353 -0.3003078
[4,] -0.7500855 0.37063688 0.4210560
[1] "Matrix V:"
[,1] [,2] [,3]
[1,] -0.5045331 0.76077568 -0.4082483
[2,] -0.5745157 0.05714052 0.8164966
[3,] -0.6444983 -0.64649464 -0.4082483
[1] "Vector D:"
[1] 2.546241e+01 1.290662e+00 2.503310e-15Summary
In this tutorial, we learned How to Perform Singular Value Decomposition (SVD) in R language with well detailed examples.
More R Matrices Tutorials
- How to Create a Matrix in R ?
- How to Combine Matrices by Columns in R ?
- How to Combine Matrices by Rows in R ?
- How to Create Diagonal Matrices in R ?
- How to Access Matrix Elements using Indexing and Slicing in R ?
- How to get Matrix Size in R ?
- How to get Number of Rows in Matrix in R ?
- How to get Number of Columns in Matrix in R ?
- How to do Matrix Addition in R ?
- How to do Matrix Subtraction in R ?
- How to do Matrix Multiplication in R ?
- How to do Scalar Multiplication on a Matrix in R ?
- How to do Scalar Division on a Matrix in R ?
- How to do Element-Wise Operations in a Matrix in R ?
- How to Assign Row and Column Names in a Matrix in R ?
- How to get Row Names in a Matrix in R ?
- How to get Column Names in a Matrix in R ?
- How to find Transpose of a Matrix in R ?
- How to Extract the Diagonal of a Matrix in R ?
- How to find Determinant of a Matrix in R ?
- How to find Inverse of a Matrix in R ?
- How to find Rank of a Matrix in R ?
- How to Find Eigenvalues and Eigenvectors of a Matrix in R ?
- How to Perform Singular Value Decomposition (SVD) in R ?
- How to Perform QR Decomposition in R ?
- How to Perform Cholesky Decomposition in R ?
- How to Reshape Matrices in R ?
- How to Convert Data Frames to Matrices in R ?
- How to Create Identity Matrix in R ?
- How to Create Zero Matrix in R ?
- How to Create Ones Matrix in R ?
- How to Generate Random Matrices in R ?
- How to Calculate Row and Column Sums in R ?
- How to Calculate Row and Column Means in R ?
- How to Find Row and Column Max/Min in R ?
- How to Perform Element-Wise Comparisons in R ?