Does the 'AlwaysHonorConstraints' option for fmincon apply to the inequality constraints in lb and ub, or to all the constraints supplied to fmincon?
I'm trying to estimate the parameters of a nonlinear filtering problem constraining the magnitude of the eigenvalues of a matrix to be less than 1, and on the first iteration it tries a point with unstable eigenvalues. This causes the program to crash.
The first constraint in the function 'c' in the code below is the one that is being violated. It occurs with either the 'sqp' or the 'active-set' algorithms, whether I specify 'AlwaysHonorConstraints' or not. Thanks!
c = @(x) [ max(abs(eig(reshape(x(8:16), 3, 3)))); ... max(abs(eig([x(2:4)'; 1 0 0; 0 1 0])))] - [1; max(abs(eig(phiStar)))]; ceq = @(x) []; nonlcon = @(x) deal(c(x), ceq(x));fminconOptions = optimset('Display', 'iter-detailed', 'Algorithm', 'sqp', ... 'TolX', errTol, 'UseParallel', 'always', 'AlwaysHonorConstraints', 'bounds');[estAllTheta, ~, ~, ~, lambdaOpt, gradient, hessian] = ... fmincon(obj, allParams, [], [], [], [], [], [], nonlcon, fminconOptions);
Best Answer