# Maximum Diversified Porfolio (MDP) fmincon optimization problem doesn't work

7 views (last 30 days)
Leonardo Coccia on 5 Jul 2021
Commented: Alan Weiss on 9 Jul 2021
Goodmorning to all,
I have to solve the following problem (image) with fmincon: x is the portfolio weight vector, sigma the std. dev. of returns, omega cov matrix. I tried as follow but doesn't work. Thanks to everyone!
Aeq = ones(1,n_asset);
beq = 1;
x0 = zeros(1,n_asset);
lb = zeros(1,n_asset);
ub = ones(1,n_asset);
fun = @(x) -(x)*(sqrt(variance))./sqrt((x')*Cov(x))
w = -fmincon(fun,x0,[],[],Aeq,beq,lb,ub)
##### 2 CommentsShowHide 1 older comment
Leonardo Coccia on 7 Jul 2021
Hi, the error is in the screenshot. x is the portfolio that has 12 assets weights (12zx1), variance is 12x1, Cov is a 12x12 covariance matrix and Cov(x) is Cov*x but doesn't work even if I delete parenthesis. And yes, I meant x*Cov*x' but doesn't work. I don't know even how to set x0 ...

Alan Weiss on 8 Jul 2021
You say that x is 12-by-1, yet you write x0 as 1-by-12. That could be the problem. Try
x0 = zeros(n_asset,1); % Now x0 is 12-by-1, and so is x
You then need to change your definition of the objective.
fun = @(x) -(sqrt(variance)'*x)/sqrt(x'*Cov*x);
Alan Weiss
MATLAB mathematical toolbox documentation
##### 2 CommentsShowHide 1 older comment
Alan Weiss on 9 Jul 2021
Alan Weiss
MATLAB mathematical toolbox documentation