示例#1
0
文件: minimizer.py 项目: rsuhada/code
    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
示例#2
0
    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
示例#3
0
    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
示例#4
0
    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