Class: Cramer
- Inherits:
-
Object
- Object
- Cramer
- Defined in:
- lib/cartesius/cramer.rb
Class Method Summary collapse
- .solution1(row1, known_term) ⇒ Object
- .solution2(row1, row2, known_term) ⇒ Object
- .solution3(row1, row2, row3, known_term) ⇒ Object
Class Method Details
.solution1(row1, known_term) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/cartesius/cramer.rb', line 5 def self.solution1(row1, known_term) matrix = Matrix.rows([row1]) determinant = matrix.determinant if determinant.zero? raise ArgumentError.new('The determinant is zero!') end x1 = Rational( Matrix.columns([known_term]).determinant, determinant ) [x1] end |
.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 |
.solution3(row1, row2, row3, known_term) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/cartesius/cramer.rb', line 42 def self.solution3(row1, row2, row3, known_term) matrix = Matrix.rows([row1, row2, row3]) determinant = matrix.determinant if determinant.zero? raise ArgumentError.new('The determinant is zero!') end x1 = Rational( Matrix.columns([known_term, matrix.column(1), matrix.column(2)]).determinant, determinant ) x2 = Rational( Matrix.columns([matrix.column(0), known_term, matrix.column(2)]).determinant, determinant ) x3 = Rational( Matrix.columns([matrix.column(0), matrix.column(1), known_term]).determinant, determinant ) [x1, x2, x3] end |