Constraining inputs to a maximum radius within fmincon objective function

I am trying to optimize an objective function of a 5D circle
c=[1,2,3,2,1];
r=[0,0,0,0,0] % begin from origin
maxRadius=3;
fun = @(x) -sqrt(c.*(r+abs(x)).^2); % Negative to make minimal
% Such that:
sqrt(sum(x.^2)) <= maxRadius
I'm getting hung up on the constraint on x... Where can I plug this in to fmincon? is fmincon the appropriate solver for this?

1 Comment

Note, fmincon expects differentiable functions and constraints. Your 'fun' objective is non-differentiable in the vicinity of x=0 and of fun=0. Likewise with your constraints. You can mitigate this by removing the unnecessary square roots,
sum(x.^2) <= maxRadius.^2
and so forth.

Sign in to comment.

 Accepted Answer

See the documentation for nonlinear constraints and, if necessary, the Getting Started example showing how to include the constraint in a call to fmincon.
Alan Weiss
MATLAB mathematical toolbox documentation

More Answers (0)

Asked:

on 23 Jul 2016

Commented:

on 18 Aug 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!