From 7cca24950a0694319753b5cd2ab7f80c6b31e17a Mon Sep 17 00:00:00 2001 From: Dominik Demuth Date: Mon, 25 Dec 2023 15:28:54 +0100 Subject: [PATCH] fit results for all-fixed global parameter --- src/nmreval/fit/minimizer.py | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/nmreval/fit/minimizer.py b/src/nmreval/fit/minimizer.py index 0c1fa93..27e7492 100644 --- a/src/nmreval/fit/minimizer.py +++ b/src/nmreval/fit/minimizer.py @@ -237,29 +237,34 @@ class FitRoutine(object): if p0_k is None: self.make_results(data, data.para_keys, var_pars_k, data.para_keys, (len(data.para_keys), len(data.para_keys)), err=None, corr=None, partial_corr=None) - return self.result + else: + if mode == 'lsq': + self._least_squares_single(data, p0_k, lb_k, ub_k, var_pars_k) - if mode == 'lsq': - self._least_squares_single(data, p0_k, lb_k, ub_k, var_pars_k) + elif mode == 'nm': + self._nm_single(data, p0_k, lb_k, ub_k, var_pars_k) - elif mode == 'nm': - self._nm_single(data, p0_k, lb_k, ub_k, var_pars_k) - - elif mode == 'odr': - # ODR takes no bounds - self._odr_single(data, p0_k, var_pars_k) + elif mode == 'odr': + # ODR takes no bounds + self._odr_single(data, p0_k, var_pars_k) else: data_pars, p0, lb, ub, var_pars = self._prep_global(data_groups, linked_parameter) - if mode == 'lsq': - self._least_squares_global(data_groups, p0, lb, ub, var_pars, data_pars) + if not p0: + for data_k, p_k in zip(data_groups, data_pars): + self.make_results(data_k, p_k, [], p_k, (len(p_k), len(p_k)), + err=None, corr=None, partial_corr=None) - elif mode == 'nm': - self._nm_global(data_groups, p0, lb, ub, var_pars, data_pars) + else: + if mode == 'lsq': + self._least_squares_global(data_groups, p0, lb, ub, var_pars, data_pars) - elif mode == 'odr': - self._odr_global(data_groups, p0, var_pars, data_pars) + elif mode == 'nm': + self._nm_global(data_groups, p0, lb, ub, var_pars, data_pars) + + elif mode == 'odr': + self._odr_global(data_groups, p0, var_pars, data_pars) self.unprep_run()