R/mGS.R

Defines functions mGS

Documented in mGS

#############################################################################
## Modified Gram-Schmidt orthogonalization method
mGS <- function(A) {
   n <- ncol(A)
   m <- nrow(A)
   if (n>m) {
      V <- A[,1:m]; n <- m
   } else {
      V <- A
   }
   for (i in 1:n) {
       ri <- as.numeric(sqrt(crossprod(V[,i])))
       V[,i] <- V[,i]/ri
       if (i<n) {
          for (j in (i+1):n) {
              rj <- as.numeric(crossprod(V[,i],V[,j]))
              V[,j] <- V[,j] - rj*V[,i]
          }
       }
   }
   return(V)
}
#############################################################################

Try the psvd package in your browser

Any scripts or data that you put into this service are public.

psvd documentation built on Oct. 25, 2024, 9:07 a.m.