Add linear equality constraints for portfolio weights to existing constraints
obj = addEquality(obj,AEquality,bEquality)
obj = addEquality(obj,AEquality,bEquality) adds linear equality constraints for portfolio weights to existing constraints.
Given a linear equality constraint matrix AEquality and vector bEquality, every weight in a portfolio Port must satisfy the following:
AEquality * Port = bEquality
This method "stacks" additional linear equality constraints onto any existing linear equality constraints that already exist in the input Portfolio object. If no constraints already exist, this method is the same as setEquality.
You can also use dot notation to add the linear equality constraints for portfolio weights.
obj = obj.addEquality(AEquality, bEquality)
You can also remove linear equality constraints from a Portfolio object using dot notation.
obj = obj.setEquality([ ], [ ])
Portfolio object [Portfolio].
Matrix to form linear equality constraints [matrix].
Vector to form linear equality constraints [vector].
To learn about attributes of methods, see Method Attributes in the MATLAB® Object-Oriented Programming documentation.
Use the addEquality method to create linear equality constraints. Add another linear equality constraint to ensure that the last three assets constitute 50% of a portfolio.
p = Portfolio; A = [ 1 1 1 0 0 ]; % First equality constraint b = 0.5; p = setEquality(p, A, b); A = [ 0 0 1 1 1 ]; % Second equality constraint b = 0.5; p = addEquality(p, A, b); disp(p.NumAssets); disp(p.AEquality); disp(p.bEquality);
5 1 1 1 0 0 0 0 1 1 1 0.5000 0.5000