Constraining inputs to a maximum radius within fmincon objective function
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
Matt J
2016-8-18
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
2016-7-25
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 个评论
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!