Code covered by the BSD License
by Bruno Luong
12 May 2010
Minimize |A*x-b|^2 such that |x| = cte
Watch this File
This kind of problem arises in statistics, linear algebra, and regularization.
The method uses quadratic eigen-value problem (QEP).
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:
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.
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.
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))
Also, why not include a routine in the package that deals with the more general quadratic objective,
since you convert to this form anyway, and the theory seems to accommodate it?