MATLAB: How to solve the following error : “Maximum number of function evaluations exceeded; increase OPTIONS.MaxFunEvals”.

exponential functionmaximationminimizationoptimizationtolerance

I need to maximize the objective function y = exp(x) using 'fmincon' and a -ve sign in the objective function.I have used upper & lower bounds of x as 300 and 400. When I run with y=exp(x), I get the error: Maximum number of function evaluations exceeded;
increase OPTIONS.MaxFunEvals.
When I run for y = exp(-x), I get the error:
Optimization terminated: first-order optimality measure less than options.TolFun and maximum constraint violation is less
than options.TolCon.
Active inequalities (to within options.TolCon = 1e-006):
lower upper ineqlin ineqnonlin
The code is :
function xout = s1
x0 = [300]; % Just some Initial Condition
ub = [400]; % Upper bounds
lb = [300]; % Lower bounds
F = @(x) obj(x);
xout = fmincon(F,x0,[],[],[],[],lb,ub); %optimization operator
function obj = obj(x)
y = exp(x)
obj = -y
Please help me as to how I can remove this error. Thanks.

Best Answer

  • options = struct('MaxFunEvals', 2000);
    xout = fmincon(F, x0, [], [], [], [], lb, ub, options);