Exemple #1
0
    def _get_fit(self, errors=None):
        '''convenience'''

        errors = errors or [dict(axis='y', err_val=1.0)]

        _fit = XYFit(xy_data=self._ref_xy_data,
                     model_function=simple_xy_model,
                     cost_function=XYCostFunction_Chi2(
                         axes_to_use='xy', errors_to_use='covariance'),
                     minimizer=self.MINIMIZER)

        for _err in errors:
            _fit.add_error(**_err)

        return _fit
Exemple #2
0
    def _get_fit(self, model_function=None, cost_function=None, error=None):
        '''convenience'''
        model_function = model_function or simple_xy_model
        # TODO: fix default
        cost_function = cost_function or XYCostFunction_Chi2(
            axes_to_use='xy', errors_to_use='covariance')
        error = error or 1.0

        _fit = XYFit(xy_data=self._ref_xy_data,
                     model_function=model_function,
                     cost_function=cost_function,
                     minimizer=self.MINIMIZER)
        _fit.add_error(axis='y', err_val=error)

        return _fit
Exemple #3
0
    def _get_fit(self, errors=None):
        '''convenience'''

        errors = errors or [dict(axis='y', err_val=1.0)]

        _fit = XYFit(
            xy_data=self._ref_xy_data,
            model_function=line_xy_model,
            cost_function=self._default_cost_function,
            minimizer=self.MINIMIZER,
            #x_error_algorithm='nonlinear',  # TODO: test other algorithms
        )

        for _err in errors:
            _fit.add_error(**_err)

        _fit.set_all_parameter_values(self._ref_initial_pars)

        return _fit
Exemple #4
0
    def _get_fit(self, errors=None):
        '''convenience'''

        _fit = XYFit(xy_data=self._ref_xy_data,
                     model_function=simple_xy_model,
                     cost_function=XYCostFunction_Chi2(
                         axes_to_use='xy', errors_to_use='covariance'),
                     minimizer=self.MINIMIZER)

        if errors is None:
            _fit.add_matrix_error(axis='y',
                                  err_matrix=np.eye(self._n_points),
                                  matrix_type='cov')
        else:
            for _err in errors:
                if 'err_matrix' in _err:
                    _fit.add_matrix_error(**_err)
                else:
                    _fit.add_error(**_err)

        return _fit
Exemple #5
0
    def _get_fit(self,
                 model_function=None,
                 cost_function=None,
                 errors=None,
                 dynamic_error_algorithm=None):
        '''convenience'''
        model_function = model_function or simple_xy_model
        # TODO: fix default
        cost_function = cost_function or XYCostFunction_Chi2(
            axes_to_use='xy', errors_to_use='covariance')
        errors = errors or [dict(axis='y', err_val=1.0)]
        dynamic_error_algorithm = dynamic_error_algorithm or "nonlinear"

        _fit = XYFit(xy_data=self._ref_xy_data,
                     model_function=model_function,
                     cost_function=cost_function,
                     minimizer=self.MINIMIZER,
                     dynamic_error_algorithm=dynamic_error_algorithm)
        for _err in errors:
            _fit.add_error(**_err)

        return _fit
Exemple #6
0
    def _get_fit(self,
                 errors=None,
                 constraints=None,
                 dynamic_error_algorithm=None):
        '''convenience'''

        errors = errors or [dict(axis='y', err_val=1.0)]
        constraints = constraints or []
        dynamic_error_algorithm = dynamic_error_algorithm or "nonlinear"

        _fit = XYFit(xy_data=self._ref_xy_data,
                     model_function=line_xy_model,
                     cost_function=self._default_cost_function,
                     minimizer=self.MINIMIZER,
                     dynamic_error_algorithm=dynamic_error_algorithm)

        for _err in errors:
            _fit.add_error(**_err)
        for _constraint in constraints:
            _fit.add_parameter_constraint(**_constraint)

        _fit.set_all_parameter_values(self._ref_initial_pars)

        return _fit
import numpy as np
import matplotlib.pyplot as plt

KAFE_PLOT = False

_x = [-1.0, 1.0]
_y = [-1.0, 1.0]
_x_err = np.sqrt(2.0)
_y_err = np.sqrt(2.0)

def model_function(x, a):
    return x * a

_fit_iminuit = XYFit(xy_data=[_x, _y], model_function=model_function, minimizer='iminuit')

_fit_iminuit.add_error('x', _x_err)
_fit_iminuit.add_error('y', _y_err)

_fit_iminuit.do_fit()

#_plot = _fit_iminuit.generate_plot()
#_plot.plot(with_fit_info=True)

_profiler_iminuit = ContoursProfiler(_fit_iminuit)
_a_profile_iminuit = _profiler_iminuit.get_profile('a')

_fit_scipy = XYFit(xy_data=[_x, _y], model_function=model_function, minimizer='scipy')

_fit_scipy.add_error('x', _x_err)
_fit_scipy.add_error('y', _y_err)