package com.ewjordan.util.objectWrap.test; import org.apache.commons.math.optimization.GoalType; import org.apache.commons.math.optimization.OptimizationException; import com.ewjordan.util.objectWrap.ObjectOptimizer; import com.ewjordan.util.objectWrap.OptimizableWrappedObject; import com.ewjordan.util.objectWrap.WrappedObject; public class FunctionMaximizationTest { static public void main(String[] args) throws OptimizationException, IllegalArgumentException { PolynomialFunction func = new PolynomialFunction(1,0,-4,0,4); WrappedObject w = new WrappedObject(func); OptimizableWrappedObject obj = w.optimizable(); double val = 0.0; long nanosStart = System.currentTimeMillis(); for (int i=0; i<10000; ++i) { func.x = Math.random(); val += ObjectOptimizer.optimize(obj, GoalType.MINIMIZE); // val += ObjectOptimizer.optimizeNelderMead(obj, GoalType.MINIMIZE); // System.out.println(ObjectOptimizer.optimize(obj, GoalType.MINIMIZE) + " iterations."); // System.out.println("Best result: x = " + func.x + ", f(x) = " + func.getValue()); } long nanosEnd = System.currentTimeMillis(); System.out.println("Millis taken: " + (nanosEnd-nanosStart)); System.out.println(val); } }