Advertisement
Guest User

Untitled

a guest
May 2nd, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. class Gauss
  2. def initialize(x, y)
  3. @left_matrix = x.sort{|a,b| b[0] <=> a[0].abs}
  4. @right_matrix = y
  5. end
  6.  
  7. def forwardElimination
  8. for i in 0..2
  9. p = @left_matrix[i][i]
  10. for j in i..2
  11. @left_matrix[i][j] = @left_matrix[i][j] / p
  12. @right_matrix[i][j] = @right_matrix[i][j] / p
  13. for j in (i+1)..2
  14. p = @left_matrix[j][i]
  15. for k in i..2
  16. @left_matrix[j][k] = @left_matrix[j][k] - @left_matrix[i][k] * p
  17. @right_matrix[j] = @right_matrix[j] - @right_matrix[i] * p
  18. end
  19. end
  20. end
  21. end
  22. end
  23.  
  24. def backAssignment
  25. for i in 1..0
  26. for j in (i+1)..2
  27. @right_matrix[i] = @right_matrix[i] - @left_matrix[i][j]*@right_matrix[j]
  28. end
  29. end
  30.  
  31. return @right_matrix, @left_matrix
  32. end
  33. end
  34.  
  35. matrix_first = [[2,3,-1],
  36. [4,4,-3],
  37. [-2,3,-1]]
  38. matrix_second = [3,6,1]
  39. gauss = Gauss.new(matrix_first, matrix_second)
  40. gauss.forwardElimination
  41. puts "#{gauss.backAssignment[0]} #{gauss.backAssignment[1]}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement