Skip to content
This repository has been archived by the owner on Oct 23, 2021. It is now read-only.

Commit

Permalink
exposed lmfit.MinimizerResult
Browse files Browse the repository at this point in the history
  • Loading branch information
joernweissenborn committed Jul 21, 2018
1 parent 27523e5 commit bc16ea2
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions lmfit_varpro/result.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from lmfit import Minimizer
from lmfit import Minimizer, Parameters
from lmfit.minimizer import MinimizerResult
from scipy.optimize import nnls
import numpy as np

Expand All @@ -17,6 +18,7 @@ def __init__(self,
self._model = model
self.nnls = nnls
self.equality_constraints = equality_constraints
self._result = None
super(SeparableModelResult, self).__init__(self._residual,
initial_parameter,
fcn_args=args,
Expand All @@ -28,12 +30,10 @@ def get_model(self):

def fit(self, *args, **kwargs):
verbose = kwargs['verbose'] if 'verbose' in kwargs else 2
res = self.minimize(method='least_squares',
ftol=kwargs.get('ftol', 1e-10),
gtol=kwargs.get('gtol', 1e-10),
verbose=verbose)

self.best_fit_parameter = res.params
self._result = self.minimize(method='least_squares',
ftol=kwargs.get('ftol', 1e-10),
gtol=kwargs.get('gtol', 1e-10),
verbose=verbose)

def e_matrix(self, *args, **kwargs):
return self._model.retrieve_e_matrix(self.best_fit_parameter,
Expand All @@ -47,6 +47,16 @@ def eval(self, *args, **kwargs):
c = self.c_matrix(*args, **kwargs)
return dot(e, c)

@property
def best_fit_parameter(self) -> Parameters:
"""The best-fit parameters resulting from the fit."""
return self._result.params

@property
def fitresult(self) -> MinimizerResult:
"""The lmfit.MinimizerResult returned by the minimization."""
return self._result

def final_residual(self, *args, **kwargs):
return np.asarray([r for r in
self._all_residuals(self.best_fit_parameter, *args,
Expand Down

0 comments on commit bc16ea2

Please sign in to comment.