List of usage examples for org.apache.commons.math.optimization MultivariateRealOptimizer optimize
RealPointValuePair optimize(MultivariateRealFunction f, GoalType goalType, double[] startPoint) throws FunctionEvaluationException, OptimizationException, IllegalArgumentException;
From source file:com.opengamma.analytics.math.minimization.MultiDirectionalSimplexMinimizer.java
/** * {@inheritDoc}/* w w w. ja v a 2 s . c o m*/ */ @Override public DoubleMatrix1D minimize(final Function1D<DoubleMatrix1D, Double> f, final DoubleMatrix1D initialPoint) { Validate.notNull(f, "function"); Validate.notNull(initialPoint, "initial point"); final MultivariateRealOptimizer optimizer = new MultiDirectional(); final MultivariateRealFunction commons = CommonsMathWrapper.wrapMultivariate(f); try { return new DoubleMatrix1D( CommonsMathWrapper.unwrap(optimizer.optimize(commons, MINIMIZER, initialPoint.getData()))); } catch (final ConvergenceException e) { throw new MathException(e); } catch (final FunctionEvaluationException e) { throw new MathException(e); } }
From source file:com.opengamma.analytics.math.minimization.NelderMeadDownhillSimplexMinimizer.java
/** * {@inheritDoc}//from w w w. jav a 2s . c om */ @Override public DoubleMatrix1D minimize(final Function1D<DoubleMatrix1D, Double> function, final DoubleMatrix1D startPosition) { Validate.notNull(function, "function"); Validate.notNull(startPosition, "start position"); final MultivariateRealOptimizer optimizer = new NelderMead(); final MultivariateRealFunction commonsFunction = CommonsMathWrapper.wrapMultivariate(function); try { return new DoubleMatrix1D(CommonsMathWrapper .unwrap(optimizer.optimize(commonsFunction, MINIMIZER, startPosition.getData()))); } catch (final ConvergenceException e) { throw new MathException(e); } catch (final FunctionEvaluationException e) { throw new MathException(e); } }
From source file:ch.algotrader.simulation.SimulationExecutorImpl.java
/** * {@inheritDoc}/* w w w . j a va2s.c o m*/ */ @Override public void optimizeMultiParam(final StrategyGroup strategyGroup, final String[] parameters, final double[] starts) { Validate.notNull(parameters, "Parameter is null"); Validate.notNull(starts, "Starts is null"); RealPointValuePair result; try { MultivariateRealFunction function = new MultivariateFunction(this, strategyGroup, parameters); MultivariateRealOptimizer optimizer = new MultiDirectional(); optimizer.setConvergenceChecker(new SimpleScalarValueChecker(0.0, 0.01)); result = optimizer.optimize(function, GoalType.MAXIMIZE, starts); if (RESULT_LOGGER.isInfoEnabled()) { for (int i = 0; i < result.getPoint().length; i++) { RESULT_LOGGER.info("optimal value for {}={}", parameters[i], format.format(result.getPoint()[i])); } RESULT_LOGGER.info("functionValue: {} needed iterations: {})", format.format(result.getValue()), optimizer.getEvaluations()); } } catch (MathException ex) { throw new SimulationExecutorException(ex); } }