A simple pure elixir equation solver by augmented matrix.
def deps do
[
{:muscat, "~> 0.3"}
]
end
Very simple ! For example, To solve this equation:
Run rref/1
or rref/2
to solve the equation:
augmented_matrix_parameter = [[1, 2, 3, 0], [3, 4, 7, 2], [6, 5, 9, 11]]
Muscat.rref(augmented_matrix_parameter)
#=> {:ok, [4, 1, -2]}
If the equation has infinite solutions, you could set the default value for base unknown number, and transform matrix to single solution.
Muscat.rref/1
and Muscat.rref/2
support fraction value in parameters:
Muscat.rref([{1, 2}, 1])
{1, 2}
means 1/2
, the first element in tuple is numerator
and the second one is denominator
.
Muscat.Fraction
also provides some simple fraction calculation rules. See more details in the module doc.
- a unique solution
- infinite solutions
- approximate solutions