Trouble with matrix maths (implementing bounded-variable least-squares algorithm)

67 Views Asked by At

I'm currently trying to create an implementation of Stark & White's algorithm for the bounded-variable least squares problem (preprint here); I've gotten pretty far with it, but I'm starting to flounder with some of the syntax, which is getting far outside my limited maths knowledge.

Specifically, the equation I'm stuck on is this part of step 6:

$$z=arg min \Vert A^\prime z - b^\prime \Vert^2_2$$

What does this mean, and how would I calculate it in code? (any language, although I'm using C++ with the Eigen library) I'm not familiar with any of the syntax involved, or with the fact that it appears to be recursive.

Stark, P. B.; Parker, R. L., Bounded-variable least-squares: an algorithm and applications, Comput. Stat. 10, No. 2, 129-141 (1995). ZBL0938.62074.

1

There are 1 best solutions below

0
On BEST ANSWER

After a lot of strugging and asking people who actually know about mathematics, I've found that apparently this is just a weird way of asking me to solve a regular (unbounded) least-squares problem; find the value of z such that $ \Vert A^\prime z - b^\prime \Vert^2_2$ takes on it's minimum value. Luckily, the Eigen library I'm using has a pre-made implementation of a least-squares solver, which I can call like this:

aPrime.bdcSvd(Eigen::DecompositionOptions::ComputeThinU | Eigen::DecompositionOptions::ComputeThinV).solve(bPrime);