Operasi dasar elementer (ODE) pada matriks seringkali digunakan untuk
mendapatkan matriks setara dengan matriks asal. Sehingga ODE ini
seringkali digunakan untuk mencari determinan atau kebalikan matriks.
Prinsipnya adalah dengan mengenakan ODE pada matriks asal sehinggan
menjadi matriks setera yang mudah dicari determinannya, misalkan dengan
menjadikannya matriks diagonal, yang mana determinannya dicari dengan
mengalikan elemen-elemen diagonal utama.
Berikut ini adalah program R (bahasa R) untuk melakukan ODE tersebut.
function(x, baris=TRUE){
list(
x.asal<<-x,
tukar = function(i, j) {
if (is.matrix(x)){
if (baris){
ind <- diag(nrow(x))
}
else ind <- diag(ncol(x))
}
else stop("Objek harus dalam mode matriks")
te <- ind[i,]; ind[i,] <- ind[j,]; ind[j,] <- te
if (baris) {
x <<- ind%*%x
}
else x <<- x%*%ind
return(x)
}, kali = function(i, k) {
if (is.matrix(x)){
if (baris) { ind <- diag(nrow(x))
} else ind <- diag(ncol(x))
} else stop("Objek harus dalam mode matriks") ind[i,] <- k*ind[i,] if (baris) x <<- ind %*% x else x <<- x %*% ind return(x)
}, lipat = function(i, j, k) {
if (is.matrix(x)){
if (baris) {
ind <- diag(nrow(x))
} else ind <- diag(ncol(x))
} else stop("Objek harus dalam mode matriks") if (baris) {
ind[j,i] <- k x <<- ind %*% x
} else {
ind[i,j] <- k x <<- x %*% ind
} return(x)
}, hasil = function(){ x.setara <- x; has<-list(Matriks.Asal=x.asal, Matriks.Setara=x.setara) return(has) }
)
}
}, kali = function(i, k) {
if (is.matrix(x)){
if (baris) { ind <- diag(nrow(x))
} else ind <- diag(ncol(x))
} else stop("Objek harus dalam mode matriks") ind[i,] <- k*ind[i,] if (baris) x <<- ind %*% x else x <<- x %*% ind return(x)
}, lipat = function(i, j, k) {
if (is.matrix(x)){
if (baris) {
ind <- diag(nrow(x))
} else ind <- diag(ncol(x))
} else stop("Objek harus dalam mode matriks") if (baris) {
ind[j,i] <- k x <<- ind %*% x
} else {
ind[i,j] <- k x <<- x %*% ind
} return(x)
}, hasil = function(){ x.setara <- x; has<-list(Matriks.Asal=x.asal, Matriks.Setara=x.setara) return(has) }
)
}
0 komentar:
Posting Komentar