from mystic.symbolic import generate_constraint, generate_solvers, simplify from mystic.symbolic import generate_penalty, generate_conditions equations = """ x0**2 + x1**2 + x2**2 + x3**2 + x4**2 - 10.0 = 0.0 x1*x2 - 5.0*x3*x4 = 0.0 x0**3 + x1**3 + 1.0 = 0.0 """ cf = generate_constraint(generate_solvers(simplify(equations))) # slow solve pf = generate_penalty(generate_conditions(equations)) if __name__ == '__main__': from mystic.solvers import lattice from mystic.math import almostEqual result = lattice(objective, 5, [3]*5, bounds=bounds, penalty=pf, ftol=1e-8, xtol=1e-8, disp=False, full_output=True) assert almostEqual(result[0], xs, tol=1e-2) \ or almostEqual(result[0], _xs, tol=1e-2) \ or almostEqual(result[0], x_s, tol=1e-2) \ or almostEqual(result[0], xs_, tol=1e-2) assert almostEqual(result[1], ys, rel=1e-2) # EOF