smartepsh / muscat

A simple pure elixir equation solver.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Muscat

GitHub GitHub last commit Hex.pm

A simple pure elixir equation solver by augmented matrix.

Installation

def deps do
  [
    {:muscat, "~> 0.3"}
  ]
end

Usage

Very simple ! For example, To solve this equation:

pic

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.

Fraction

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.

Targets

  • a unique solution
  • infinite solutions
  • approximate solutions

About

A simple pure elixir equation solver.

License:MIT License


Languages

Language:Elixir 100.0%