- 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 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaire
Walter Roberson
le 12 Mai 2025
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 ?
Réponse acceptée
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Solver Outputs and Iterative Display dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!