1

I want to solve an overdetermined system of the form Ax=b where A is a (m x n) matrix (with m>n), b is a (m) vector and x is the vector of the unknowns. I want also to bound the solution with lb and ub.

Giving the following program: (QP)minimize transpose(x).D.x+transpose(c).x+c0 subject to Ax⋛b,l≤x≤u

I wonder how to calculate the matrix D and the vector c. Because the matrix D has to be symmetric I have defined it as D=transpose(A).A and c as c=-transpose(A).b. My question is: Is this representation correct? If no, how should I define D and c?

TheCoder21
  • 51
  • 3

1 Answers1

0

"Solving" an overdetermined system Ax = b usually means computing a solution x which minimizes the euclidean norm of the error e(x) = ||Ax-b||. If you have additional linear constraints of the form l <= x <= u then indeed you get a Quadratic Program:

min { 0.5*e(x)^2 } <=> min { 0.5*(Ax-b)'*(Ax-b) } 
               <=> min { 0.5*x'*A'*A*x -b'Ax + 0.5*b'b) }
               <=> min { 0.5*x'*A'*A*x -b'Ax }

subject to the linear constraints

l <= x <= u

So you can define the matrix D to be half the A'*A (A' means A transposed):

D = 1/2*A'*A

and vector c to satisfy

c' = -b'*A => c = -A'*b

So your approach is not correct, but it was close!

Giorgos Altanis
  • 2,742
  • 1
  • 13
  • 14