From c2b7ea15507baf2032f497441de917e505c6b784 Mon Sep 17 00:00:00 2001 From: Matthew Newville Date: Wed, 31 May 2017 14:11:22 -0500 Subject: [PATCH] correctly create non-constraint parameter values and bounds for least_squares() --- lmfit/minimizer.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lmfit/minimizer.py b/lmfit/minimizer.py index 284ccdff5..74df6e18b 100644 --- a/lmfit/minimizer.py +++ b/lmfit/minimizer.py @@ -1204,9 +1204,13 @@ def least_squares(self, params=None, **kws): result.method = 'least_squares' replace_none = lambda x, sign: sign*np.inf if x is None else x - upper_bounds = [replace_none(i.max, 1) for i in self.params.values()] - lower_bounds = [replace_none(i.min, -1) for i in self.params.values()] - start_vals = [i.value for i in self.params.values()] + + start_vals, lower_bounds, upper_bounds = [], [], [] + for vname in result.var_names: + par = self.params[vname] + start_vals.append(par.value) + lower_bounds.append(replace_none(par.min, -1)) + upper_bounds.append(replace_none(par.max, -1)) ret = least_squares(self.__residual, start_vals, bounds=(lower_bounds, upper_bounds),