Class: Seimi::Equation
- Inherits:
-
Object
- Object
- Seimi::Equation
- Defined in:
- lib/seimi/equation.rb
Defined Under Namespace
Classes: Result
Constant Summary collapse
- CHARGE_BALANCE_SYMBOL =
"電荷"
Class Method Summary collapse
Class Method Details
.balance(source) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/seimi/equation.rb', line 42 def balance(source) lhs, rhs = split_equation(source) lhs_species = parse_species(lhs) rhs_species = parse_species(rhs) species = lhs_species + rhs_species lhs_size = lhs_species.length formulas = species.map { |item| Formula.parse(item) } elements, matrix = build_matrix(formulas, lhs_size) coefficients = nullspace_coefficients(matrix) Result.new( coefficients: coefficients, species: species, lhs_size: lhs_size, matrix: matrix.map(&:dup), elements: elements ) end |