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

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.

댓글을 달려면 로그인하십시오.

 채택된 답변

Alan Weiss
Alan Weiss 2016년 7월 25일

0 개 추천

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

추가 답변 (0개)

카테고리

질문:

2016년 7월 23일

댓글:

2016년 8월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by