Hello! when I’m trying to minimize such a cost function:
minimise( norm(abs(S)) )
I get this error:
Disciplined convex programming error: Cannot perform the operation norm( {convex}, 2 )
what is the correct way of doing this? I thank you for your help!
mcg
(Michael C. Grant)
July 23, 2013, 1:29pm
2
It is true that this is convex. Here’s how to express this in a compliant manner.
variable S2(n)
abs(S) <= S2
minimize(norm(S2))
It should be clear that the inequalities will be tight at the solution.
I really thank you for your answer! is there any way not define a new variable? my S is actually a big 3D matrix so defining it twice is not the best!
mcg
(Michael C. Grant)
July 23, 2013, 6:14pm
4
No, there is no way to avoid this. Don’t worry, CVX’s presolver will likely eliminate the redundancy. CVX actually generates quite a few extra variables during the modeling process; many are eliminated before solving.