How to Perform QR Decomposition in R


How to Perform QR Decomposition in R ?

Answer

To perform QR decomposition in R, you can use the qr() function. This function computes the QR decomposition of a matrix, representing it as the product of an orthogonal matrix Q and an upper triangular matrix R.



✐ Examples

1 Performing QR Decomposition on a 3x3 Matrix

In this example,

  1. We start by creating a 3x3 matrix named mat using the matrix() function. This matrix represents the data we want to decompose.
  2. Next, we use the qr() function to perform QR decomposition on the matrix mat. We assign the result to a variable named qr_res.
  3. We extract the orthogonal matrix Q from qr_res using the $qr attribute and assign it to a variable named Q.
  4. We also extract the upper triangular matrix R from qr_res using the $qr attribute and assign it to a variable named R.
  5. We print both matrices Q and R to 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), nrow = 3, byrow = TRUE)
qr_res <- qr(mat)
Q <- qr.Q(qr_res)
R <- qr.R(qr_res)
print('Orthogonal Matrix Q:')
print(Q)
print('Upper Triangular Matrix R:')
print(R)

Output

[1] "Orthogonal Matrix Q:"
           [,1]       [,2]       [,3]
[1,] -0.1230915  0.9045340  0.4082483
[2,] -0.4923660  0.3015113 -0.8164966
[3,] -0.8616404 -0.3015113  0.4082483
[1] "Upper Triangular Matrix R:"
          [,1]      [,2]          [,3]
[1,] -8.124038 -9.601136 -1.107823e+01
[2,]  0.000000  0.904534  1.809068e+00
[3,]  0.000000  0.000000 -2.220446e-16

2 Performing QR Decomposition on a 4x2 Matrix

In this example,

  1. We start by creating a 4x2 matrix named mat using the matrix() function. This matrix represents another set of data we want to decompose.
  2. Next, we use the qr() function to perform QR decomposition on the matrix mat. We assign the result to a variable named qr_res.
  3. We extract the orthogonal matrix Q from qr_res using the $qr attribute and assign it to a variable named Q.
  4. We also extract the upper triangular matrix R from qr_res using the $qr attribute and assign it to a variable named R.
  5. We print both matrices Q and R to 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), nrow = 4, byrow = TRUE)
qr_res <- qr(mat)
Q <- qr.Q(qr_res)
R <- qr.R(qr_res)
print('Orthogonal Matrix Q:')
print(Q)
print('Upper Triangular Matrix R:')
print(R)

Output

[1] "Orthogonal Matrix Q:"
           [,1]       [,2]
[1,] -0.1091089 -0.8295151
[2,] -0.3273268 -0.4391550
[3,] -0.5455447 -0.0487950
[4,] -0.7637626  0.3415650
[1] "Upper Triangular Matrix R:"
          [,1]        [,2]
[1,] -9.165151 -10.9108945
[2,]  0.000000  -0.9759001

Summary

In this tutorial, we learned How to Perform QR Decomposition in R language with well detailed examples.




More R Matrices Tutorials

  1. How to Create a Matrix in R ?
  2. How to Combine Matrices by Columns in R ?
  3. How to Combine Matrices by Rows in R ?
  4. How to Create Diagonal Matrices in R ?
  5. How to Access Matrix Elements using Indexing and Slicing in R ?
  6. How to get Matrix Size in R ?
  7. How to get Number of Rows in Matrix in R ?
  8. How to get Number of Columns in Matrix in R ?
  9. How to do Matrix Addition in R ?
  10. How to do Matrix Subtraction in R ?
  11. How to do Matrix Multiplication in R ?
  12. How to do Scalar Multiplication on a Matrix in R ?
  13. How to do Scalar Division on a Matrix in R ?
  14. How to do Element-Wise Operations in a Matrix in R ?
  15. How to Assign Row and Column Names in a Matrix in R ?
  16. How to get Row Names in a Matrix in R ?
  17. How to get Column Names in a Matrix in R ?
  18. How to find Transpose of a Matrix in R ?
  19. How to Extract the Diagonal of a Matrix in R ?
  20. How to find Determinant of a Matrix in R ?
  21. How to find Inverse of a Matrix in R ?
  22. How to find Rank of a Matrix in R ?
  23. How to Find Eigenvalues and Eigenvectors of a Matrix in R ?
  24. How to Perform Singular Value Decomposition (SVD) in R ?
  25. How to Perform QR Decomposition in R ?
  26. How to Perform Cholesky Decomposition in R ?
  27. How to Reshape Matrices in R ?
  28. How to Convert Data Frames to Matrices in R ?
  29. How to Create Identity Matrix in R ?
  30. How to Create Zero Matrix in R ?
  31. How to Create Ones Matrix in R ?
  32. How to Generate Random Matrices in R ?
  33. How to Calculate Row and Column Sums in R ?
  34. How to Calculate Row and Column Means in R ?
  35. How to Find Row and Column Max/Min in R ?
  36. How to Perform Element-Wise Comparisons in R ?