File Exchange

image thumbnail

Least-square with 2-norm constraint

version 1.0 (2.26 KB) by

Minimize |A*x-b|^2 such that |x| = cte

3 Downloads

Updated

View License

This kind of problem arises in statistics, linear algebra, and regularization.

The method uses quadratic eigen-value problem (QEP).

Comments and Ratings (3)

Matt J

Matt J (view profile)

Hi Bruno. I don't think the rank of A is the issue, because even in the following example where A is the simplest full rank matrix you can get, the same problem happens:

>> spherelsq(eye(2),[0;0],sqrt(2))

ans =

     0
     0

I think the real issue is that when b=0, the problem should reduce to finding the minimum singular value/vector and needs to be processed differently.

Bruno Luong

Bruno Luong (view profile)

Matt, true the code does not handle degenerated cases.

I recommend user to project x on on

V = Orthogonal(Kernel(A)),

formulate his/her least-square problem on this space before calling spherelsq().

Thus A is assumed to be fullrank when spherelsq() is invoked.

Matt J

Matt J (view profile)

Could be very useful, but the code doesn't seem to handle (or even give a warning in) certain degenerate cases. For example, in the following, not even a feasible solution is returned

>> spherelsq([1 -1; 1 -1],[0;0],sqrt(2))

ans =

     0
     0

Also, why not include a routine in the package that deals with the more general quadratic objective,

min. x'*H*x-g'*x
s.t. |x|=xnorm

since you convert to this form anyway, and the theory seems to accommodate it?

MATLAB Release
MATLAB 7.10 (R2010a)
Acknowledgements

Inspired: trustregprob(Q,b,w,doEquality)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video