Source code for kona.examples.rosenbrock

import numpy

from kona.user import UserSolver

[docs]class Rosenbrock(UserSolver):
[docs] def eval_obj(self, at_design, at_state): x = at_design return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)
[docs] def eval_dFdX(self, at_design, at_state): x = at_design xm = x[1:-1] xm_m1 = x[:-2] xm_p1 = x[2:] der = numpy.zeros_like(x) der[1:-1] = 200*(xm-xm_m1**2) - 400*(xm_p1 - xm**2)*xm - 2*(1-xm) der[0] = -400*x[0]*(x[1]-x[0]**2) - 2*(1-x[0]) der[-1] = 200*(x[-1]-x[-2]**2) return der
[docs] def init_design(self): return -numpy.ones(self.num_design)