Method: Mathpack::SLE.solve_reverse

Defined in:
lib/mathpack/sle.rb

.solve_reverseObject



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/mathpack/sle.rb', line 60

def self.solve_reverse
  result_vector = Array.new(@number)
  (@number - 1).downto(0) do |i|
    if i == (@number - 1)
      result_vector[@x[i] - 1] = @f[i] / @matrix[i][i]
    else
      sum = 0.0
      (i + 1).upto(@number - 1) do |j|
        sum += @matrix[i][j] * result_vector[@x[j] - 1]
      end
      result_vector[@x[i] - 1] = (@f[i] - sum) / @matrix[i][i]
    end
  end
  result_vector
end