21 lines
407 B
Ruby
21 lines
407 B
Ruby
require 'matrix'
|
|
|
|
def cramers_rule(a, terms)
|
|
raise ArgumentError, " Matrix not square" unless a.square?
|
|
cols = a.to_a.transpose
|
|
cols.each_index.map do |i|
|
|
c = cols.dup
|
|
c[i] = terms
|
|
Matrix.columns(c).det / a.det
|
|
end
|
|
end
|
|
|
|
matrix = Matrix[
|
|
[2, -1, 5, 1],
|
|
[3, 2, 2, -6],
|
|
[1, 3, 3, -1],
|
|
[5, -2, -3, 3],
|
|
]
|
|
|
|
vector = [-3, -32, -47, 49]
|
|
puts cramers_rule(matrix, vector)
|