Equivalent constraints leading to different results

Hello, possibly really dumb question.

My original constraint is

|f|<=f_lim, f being the variable

which solves just fine.

Then I modified the constraint to
-f_lim<=f<=f_lim

and the solver status = fails

The code is here:

cvx_begin 
	variables f(10) a(10) b(10)
	minimize(sum(a+b))
	subject to 
		A*f == -F
		L.'*(a-b) <= 0.2
		for k=1:10
			norm([b(k) C(k)*f(k)]) <= a(k)

		% This leads to infeasibility in this problem
			% -f_lim(k)*(a(k)-b(k)) <= f(k) <= f_lim(k)*(a(k)-b(k)) 

		% This solves, the results are verified to be correct
			abs(f(k)) <= f_lim(k)*(a(k)-b(k)) 
		end
cvx_end

The data is here:
data.mat

Any ideas?

Tim

It may help if you show all your code, including input data. I.e., provide reproducible code. Have you looked at the solver output (iterations)? Have you tried more than one solver?

Just as an example of how I am in the dark right now,

|f|<=f_lim

is not CVX code, and i don’t know what your code actually is, or even the dimension of f.

Hey Mark, thanks for your reply. I’ve updated my post to include a workable code as well as the data necessary.

Both constraints are included.
Thanks for your help!

I “solved” your “infeasible” version with sedumi (getting cvx_optval = +48607.6), and failed with SDPT3. On your “verified correct results” version, sedumi did not converge in 150 iterations, and SDPT3 was Inaccurate/Solved (getting cvx_optval = +48825.5).

Your data and variables have a very wide dynamic range. This most likely is contributing to or causing the numerical difficulties. Perhaps MOSEK would be more numerically robust in dealing with this problem. In order to improve matters, consider reformulating your problem, paying particular attention to scaling. Try to get everything to be of a similar order of magnitude if you can, or at least closer to that than it is now. See http://web.cvxr.com/cvx/doc/support.html#handling-numerical-issues .

I’ll take this opportunity to ask mcg how to increase max iterations for sedumi beyond the default 150.