I have an optimisation problem.
I wish to maximise a function subject to a constraint. It is the constraint that is causing me problems. I am using an addin in Matlab which does the optimisation however the constraints that I have used before have been in the format of the line below.
b_l <= Ax <= b_u
The constraint is,
Sum(x .* stock)*BetaBM - 0.1 <= Sum(x .* stock.*BetaSK) <= Sum(x .*stock)*BetaBM + 0.1
where,
x is 2000 by 1 vector
stock is 2000 by 1 vector
BetaBM is a scalar
BetaSK is 2000 by 1 vector
x - is the weight of each stock in the fund. It cannot be more than 100% but can be less.
stock - I am looking at M&A deals. The stock variable is a number between 0 and 1 which represents how much of the deal is being paid for in the acquires stock. 0 would mean the deal is purely cash. If there is part of the deal being paid in stock I will hedge the beta exposure against the S&P Index.
BetaBM - is the S&P beta.
BetaSK - contains all the individual beta for all the stocks in the fund
I need to get the constraint in the format b_l <= Ax <= b_u if at all possible?
BetaSK is
. $\endgroup$ – Arrigo Sep 29 '14 at 14:40x*stock
will not work if both vectors have the same dimensions (2000x1) because it is not a correct matrix product. Do you mean matrix product or dot product when you use*
? $\endgroup$ – Arrigo Sep 29 '14 at 14:56