def solve(parameters)
      nil_vars = @vars.select{|var| parameters[var].nil?}
      raise "Too many unknowns" if nil_vars.size>1
      raise "Nothing to solve" if nil_vars.empty?
      var = nil_vars.first
      # determine sensible initial value? => parameters[var] = initial_value
      {var=>@solver.root(var, parameters)}
    end
def solve(parameters)
      nil_vars = @vars.select{|var| parameters[var].nil?}
      raise "Too many unknowns" if nil_vars.size>1
      raise "Nothing to solve" if nil_vars.empty?
      var = nil_vars.first
      # determine sensible initial value? => parameters[var] = initial_value
      {var=>@solver.root(var, parameters)}
    end
Parameters:
  :t time in periods
  :p number of periods per year
  :i percent yearly interest rate
  :pmt payment per period
  :m0 initial value
  :m value at time :t