"Matt J" wrote in message <firstname.lastname@example.org>... > "Saad" wrote in message <email@example.com>... > > > > Aeq = vertcat(ones(1,n),a') ; > > lb = zeros(n,1) ; > > H = eye(n) ; > > [w,fval, exitflag] = fmincon(@(x)norm(H*x-w0)^2,w0,,,Aeq,beq,lb,,,options); > ================ > > You could use H=speye(n) instead of H=eye(n). Also, lsqnonneg or quadprog might be more efficient than fmincon.
Thanks a lot for your reply. I did try speye(n) with fmincon but the problem still occurs. Unfortunately I cannot use lsqnonneg because I have constraints. I may be wrong but I don't think my problem can be written in a form of quadprog because I cannot modify "x" in the quadratic optimization function. I could potentially use lsqlin but here again it doesn't work I get a NaN value and it says "Warning: Matrix is singular, close to singular or badly scaled. Results may be inaccurate. RCOND = NaN. "
Alan kindly suggested to use 'Hessian','lbfgs' with the fmincon and this time it works but when I check the optimized variables they all have the same value. Don't get me wrong I am not an expert in optimization, but it is weird to have the same value for the optimized variables? Shall I relax the tolerance? or do you think that it may be a problem inherent to my optimization function?