https://github.com/cran/pracma
Tip revision: a9b4d5f19cb88cd9d0d31fdde0d654737327d085 authored by HwB on 15 April 2012, 00:00:00 UTC
version 1.0.5
version 1.0.5
Tip revision: a9b4d5f
rref.R
##
## r r e f . R Reduced Row Echelon Form
##
rref <- function(A) {
m <- A
pivot <- 1
norow <- nrow(m)
nocolumn <- ncol(m)
for(r in 1:norow) {
if ( nocolumn <= pivot ) break;
i <- r
while( m[i,pivot] == 0 ) {
i <- i + 1
if ( norow == i ) {
i <- r
pivot <- pivot + 1
if ( nocolumn == pivot ) return(m)
}
}
trow <- m[i, ]
m[i, ] <- m[r, ]
m[r, ] <- trow
m[r, ] <- m[r, ] / m[r, pivot]
for(i in 1:norow) {
if ( i != r )
m[i, ] <- m[i, ] - m[r, ] * m[i, pivot]
}
pivot <- pivot + 1
}
return(m)
}