Method: Cramer.solution2

Defined in:
lib/cartesius/cramer.rb

.solution2(row1, row2, known_term) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/cartesius/cramer.rb', line 21

def self.solution2(row1, row2, known_term)
  matrix = Matrix.rows([row1, row2])

  determinant = matrix.determinant
  if determinant.zero?
    raise ArgumentError.new('The determinant is zero!')
  end

  x1 = Rational(
      Matrix.columns([known_term, matrix.column(1)]).determinant,
      determinant
  )

  x2 = Rational(
      Matrix.columns([matrix.column(0), known_term]).determinant,
      determinant
  )

  [x1, x2]
end