How to define multiple nonlinear inequality constraints for 'fmincon'?

137 次查看(过去 30 天)
Hello, I have a question about defining nonlinear inequality constraints for 'fmincon' function. With the example in document, it seems there can only be 1 equality and 1 inequality constraint
function [c,ceq] = circlecon(x)
c = (x(1)-1/3)^2 + (x(2)-1/3)^2 - (1/3)^2;
ceq = [];
end
What if I have no nonlinear equality constraint but have multiple nonlinear inequality constraints? Could anyone help me on this ? Thank you!

采纳的回答

Torsten
Torsten 2016-4-15
function [c,ceq] = circlecon(x)
c(1) = (x(1)-1/3)^2 + (x(2)-1/3)^2 - (1/3)^2;
c(2) = ...;
c(3) = ...;
...
ceq = [];
end
Best wishes
Torsten.

更多回答(1 个)

amin ghorbanpour
amin ghorbanpour 2018-11-20
You can stack them all in one matrix:
c = []
function [c,ceq] = FUNCTION(x)
for i= 1:N % N is the number if iterations! your states for example
c1 = f(x(i));
c = [c c1];
end
ceq = [];
end
Good luck!

类别

Help CenterFile Exchange 中查找有关 Solver-Based Nonlinear Optimization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by