16 April 2013

Operasi Dasar Elementer Gauss - Jordan

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 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) } ) }