Example usage for org.apache.commons.math.optimization MultivariateRealOptimizer optimize

List of usage examples for org.apache.commons.math.optimization MultivariateRealOptimizer optimize

Introduction

In this page you can find the example usage for org.apache.commons.math.optimization MultivariateRealOptimizer optimize.

Prototype

RealPointValuePair optimize(MultivariateRealFunction f, GoalType goalType, double[] startPoint)
        throws FunctionEvaluationException, OptimizationException, IllegalArgumentException;

Source Link

Document

Optimizes an objective function.

Usage

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);
    }
}