def runTest(self): n = 2 npt = (n + 1) * (n + 2) // 2 x0 = np.array([1.0, 1.0]) xl = -1e2 * np.ones((n, )) xu = 1e2 * np.ones((n, )) model = Model(npt, x0, objfun(x0), xl, xu, 1) x1 = x0 + np.array([1.0, 0.0]) model.change_point(1, x1 - model.xbase, objfun(x1)) x2 = x0 + np.array([0.1, 0.9]) model.change_point(2, x2 - model.xbase, objfun(x2)) x3 = x0 + np.array([-0.1, 0.0]) model.change_point(3, x3 - model.xbase, objfun(x3)) x4 = x0 + np.array([-0.1, 2.0]) model.change_point(4, x4 - model.xbase, objfun(x4)) x5 = x0 + np.array([-1.1, 1.0]) model.change_point(5, x5 - model.xbase, objfun(x5)) xopt = model.xopt() for i in range(npt): c, g, hess = model.lagrange_polynomial(i) # based at xopt for j in range(npt): dx = model.xpt(j) - xopt lag_value = c + model_value(g, hess, dx) expected_value = 1.0 if i == j else 0.0 self.assertAlmostEqual( lag_value, expected_value, msg="Lagrange for x%g has bad value at x%g" % (i, j))
def runTest(self): n = 2 npt = n + 1 x0 = np.array([-1.2, 1.0]) xl = -1e2 * np.ones((n, )) xu = 1e2 * np.ones((n, )) model = Model(npt, x0, rosenbrock(x0), xl, xu, 1) x1 = np.array([1.0, 0.9]) model.change_point(1, x1 - model.xbase, rosenbrock(x1)) x2 = np.array([2.0, 0.9]) model.change_point(2, x2 - model.xbase, rosenbrock(x2)) xopt = model.xopt() for i in range(npt): c, g, hess = model.lagrange_polynomial(i) # based at xopt for j in range(npt): dx = model.xpt(j) - xopt lag_value = c + model_value(g, hess, dx) expected_value = 1.0 if i == j else 0.0 self.assertAlmostEqual( lag_value, expected_value, msg="Lagrange for x%g has bad value at x%g" % (i, j))