How to use quadprog for this multi-dimension problem?

8 views (last 30 days)

I am trying to use quadprog.m to solve the following 2 dimensional optimization problem.

where $(x_i,y_i)$ is the data point.

How may I implement this 2 dimensional problem in matlab by quadprog? I can do for 1 dimensional problem, i.e., only with $\alpha_i$. But now I have $\alpha_i$ and $\alpha_i'$, i.e., two sets of unknown.

Accepted Answer

Alan Weiss
Alan Weiss on 5 Nov 2015
Edited: Alan Weiss on 5 Nov 2015
All Optimization Toolbox™ solvers require that you put your control variables into a single vector, typically called x. For your case, I suggest that you set the column vector x to be
x = [alpha;alphaprime];
In other words, just concatenate your two existing column vectors of unknowns into one longer column vector. Given this transformation, it is not too difficult to write matrices H and f to represent your problem in the requisite form
1/2*x'*H*x + f*x
Remember, quadprog minimizes, so if you are looking for a maximum, take the negative of your objective function.
If you cannot figure out how to do it with quadprog, you can always use fmincon.
Alan Weiss
MATLAB mathematical toolbox documentation
  3 Comments
Matt J
Matt J on 5 Nov 2015
You say you can write the Hessian H0 for the single unknown vector case. For this case, they will be related by
H = [I,-I].' * H0 * [I,-I]
where I=eye(n);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!