def anneal(self, schedule='cauchy', **kws): """ use simulated annealing """ sched = 'fast' if schedule in ('cauchy', 'boltzmann'): sched = schedule self.prepare_fit() sakws = dict(full_output=1, schedule=sched, maxiter = 2000 * (self.nvarys + 1)) sakws.update(self.kws) sakws.update(kws) def penalty(params): "local penalty function -- anneal wants sum-squares residual" r = self.__residual(params) if isinstance(r, ndarray): r = (r*r).sum() return r saout = scipy_anneal(penalty, self.vars, **sakws) self.sa_out = saout return
def anneal(self, schedule='cauchy', **kws): """ use simulated annealing """ sched = 'fast' if schedule in ('cauchy', 'boltzmann'): sched = schedule self.prepare_fit() sakws = dict(full_output=1, schedule=sched, maxiter = 2000 * (self.nvarys + 1)) sakws.update(self.kws) sakws.update(kws) print("WARNING: scipy anneal appears unusable!") saout = scipy_anneal(self.penalty, self.vars, **sakws) self.sa_out = saout return
def anneal(self, schedule='cauchy', **kws): """ use simulated annealing """ sched = 'fast' if schedule in ('cauchy', 'boltzmann'): sched = schedule self.prepare_fit() sakws = dict(full_output=1, schedule=sched, maxiter=2000 * (self.nvarys + 1)) sakws.update(self.kws) sakws.update(kws) print("WARNING: scipy anneal appears unusable!") saout = scipy_anneal(self.penalty, self.vars, **sakws) self.sa_out = saout return
def anneal(self, schedule='cauchy', **kws): """ use simulated annealing """ sched = 'fast' if schedule in ('cauchy', 'boltzmann'): sched = schedule self.prepare_fit() sakws = dict(full_output=1, schedule=sched, maxiter=2000 * (self.nvarys + 1)) sakws.update(self.kws) sakws.update(kws) def penalty(params): "local penalty function -- anneal wants sum-squares residual" r = self.__residual(params) return (r * r).sum() saout = scipy_anneal(penalty, self.vars, **sakws) self.sa_out = saout return