def lnprob(params, comps=None, dbf=None, phases=None, datasets=None,
symbols_to_fit=None, phase_models=None, scheduler=None):
"""
Returns the error from multiphase fitting as a log probability.
"""
parameters = {param_name: param for param_name, param in zip(symbols_to_fit, params)}
try:
iter_error = multi_phase_fit(dbf, comps, phases, datasets, phase_models,
parameters=parameters, scheduler=scheduler)
except (ValueError, LinAlgError) as e:
iter_error = [np.inf]
iter_error = [np.inf if np.isnan(x) else x ** 2 for x in iter_error]
iter_error = -np.sum(iter_error)
return np.array(iter_error, dtype=np.float64)
评论列表
文章目录