findPivotRow = function(n, mat, pivotRow, variables, k){
for (i in 1:n){
#finding the pivot row
if(is.na(pivotRow)){
print("PIVOT ROW IS NULL")
pivotRow = i
}else{
if(mat[pivotRow, k] == 0){
cat("Pivot element is zero! Trying to swap column with non-zero element...\n")
nearestNonZeroColumn = findNearestNonZeroColumn(mat, pivotRow)
cat("nonZeroCol")
print(nearestNonZeroColumn)
cat("BEFORE SWAP: \n")
print(mat)
cat("AFTER SWAP: \n")
#Swapping the columns
temp = mat[, k]
mat[, k] = mat[, nearestNonZeroColumn]
mat[, nearestNonZeroColumn] = temp
#Swapping indexes of concerned variables in swapping
temp = variables[k]
variables[k] = variables[nearestNonZeroColumn]
variables[nearestNonZeroColumn] = temp
print(variables)
print(mat)
}
if(mat[pivotRow, k] < mat[i, k]){
pivotRow = i
}
}
print(paste("Iteration: ", i))
print(mat)
print("Pivot row:")
print(mat[pivotRow,])
cat("\n")
}
return(pivotRow)
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter