R/ft8.R

Defines functions ft8

Documented in ft8

#' Solution of Question 8 in Midterm exam
#' @export
#' @param X matrix variable

ft8 <- function(X) {
  n <- nrow(X)
  p <- ncol(X)
  Q <- matrix(0, n, p)
  R <- matrix(0, p, p)

  #initial
  R[1,1] <- sqrt(sum(X[,1]^2))
  Q[,1] <- X[,1]/R[1,1]

  #update
  for (i in 2:p) {
    for (j in 1:(i-1)) {
      R[j,i] <- crossprod(Q[,j],X[,i])
      X[,i] <- X[,i] - R[j,i]*Q[,j]
    }
    R[i,i] <- sqrt(sum(X[,i]^2))
    Q[,i] <- X[,i]/R[i,i]
  }

  obj <- list(Q=Q, R=R)
  return(obj)
}
exp500/MAT8054 documentation built on Dec. 20, 2021, 7:39 a.m.