Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Gauss
- def initialize(x, y)
- @left_matrix = x.sort{|a,b| b[0] <=> a[0].abs}
- @right_matrix = y
- end
- def forwardElimination
- for i in 0..2
- p = @left_matrix[i][i]
- for j in i..2
- @left_matrix[i][j] = @left_matrix[i][j] / p
- @right_matrix[i][j] = @right_matrix[i][j] / p
- for j in (i+1)..2
- p = @left_matrix[j][i]
- for k in i..2
- @left_matrix[j][k] = @left_matrix[j][k] - @left_matrix[i][k] * p
- @right_matrix[j] = @right_matrix[j] - @right_matrix[i] * p
- end
- end
- end
- end
- end
- def backAssignment
- for i in 1..0
- for j in (i+1)..2
- @right_matrix[i] = @right_matrix[i] - @left_matrix[i][j]*@right_matrix[j]
- end
- end
- return @right_matrix, @left_matrix
- end
- end
- matrix_first = [[2,3,-1],
- [4,4,-3],
- [-2,3,-1]]
- matrix_second = [3,6,1]
- gauss = Gauss.new(matrix_first, matrix_second)
- gauss.forwardElimination
- puts "#{gauss.backAssignment[0]} #{gauss.backAssignment[1]}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement