- c(x) is the array of nonlinear inequality constraints at x. fmincon attempts to satisfyc(x) <= 0 for all entries of c.
- ceq(x) is the array of nonlinear equality constraints at x. fmincon attempts to satisfyceq(x) = 0 for all entries of ceq.
Error using the fmincon function
조회 수: 4 (최근 30일)
이전 댓글 표시
This is my code:
nonlcon = @(x) deal(g_fun_vec(x), []);
options = optimoptions('fmincon','Algorithm','sqp','Display','iter');
[x_sol,~,exitflag, output] = fmincon(@(x) 0, x0, [], [], [], [], lb, ub, nonlcon, options);
And I get this error message:

The strange things is that, as you can see on the screenshoot of the Command Window, the constraint fuction is defined correctly at x0
댓글 수: 1
Walter Roberson
2025년 5월 12일
Although nonlcon is not specifically documented as having to return real values,
Nonlinear constraints, specified as a function handle or function name. nonlcon is a function that accepts a vector or array x and returns two arrays, c(x) and ceq(x).
If c(x) were permitted to be complex, then c(x) <= 0 is not well defined. If c(x) were permitted to be complex, then is the implied definition real(c(x))<=0 or would it be real(c(x))<=0 & imag(c(x))<=0 -- leaving open the possibility that c(x) were (for example) -1-1i as satisfying constraints ?
채택된 답변
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!