Solving programmatically a least squares problem with one constrain

160 Views Asked by At

I need to solve the following problem (preferably in python but any other suggestion is welcome)

$$ \min_x||Ax - b||_2 $$ $$ s.t. \: Dx = Dy $$

everything except x is known. $A$ and $D$ are square sparse matrices, $x$,$y$ and $b$ are vectors. From what I understand, without the constrain the problem is solvable using the pseudo-inverse, however I am having trouble incorporating the constrain.

2

There are 2 best solutions below

0
On BEST ANSWER

The problem is given by:

$$ \begin{alignat*}{3} \arg \min_{x} & \quad & \frac{1}{2} \left\| A x - b \right\|_{2}^{2} \\ \text{subject to} & \quad & D x = e \end{alignat*} $$

Where $ e = D y $.

The Lagrangian is given by:

$$ L \left( x, \nu \right) = \frac{1}{2} \left\| A x - b \right\|_{2}^{2} + {\nu}^{T} \left( D x - e \right) $$

From KKT Conditions the optimal values of $ \hat{x}, \hat{\nu} $ obeys:

$$ \begin{bmatrix} {A}^{T} A & {D}^{T} \\ D & 0 \end{bmatrix} \begin{bmatrix} \hat{x} \\ \hat{\nu} \end{bmatrix} = \begin{bmatrix} {A}^{T} b \\ e \end{bmatrix} $$

Now all needed is to solve the above with any Linear System Solver.

3
On

There is a solution to your problem:

http://inst.eecs.berkeley.edu/~ee127a/book/login/l_ols_variants.html

To bring your problem to the form they are using, replace $Dy$ by some vector.