how to run optimisation problem

Hello!
How can I run such kind of optimization :
max Q subject to x = x1,..., xn, where = Rp / σp
and constraints :
Rp = R' * x
σp^2 =x' * Σ * x
sum(x) = 1
Can someone help me about how to write down my objective function ...and the rest of the constraints. What type of sover I need to use ?
Best regards,

2 Comments

I think part of the equations got lost?
What is Q?
You say "where = " but what needs to equal that?
Why do you say "subject to" and list variable names?
In Rp / op is that matrix division (least squared fitting) or is it element-by-element division ?
DAN TURMACU
DAN TURMACU on 21 Mar 2019
Edited: DAN TURMACU on 21 Mar 2019
yes.
Q = Rp / σp
Rp - Return of portfolio it is a number
σp - Risk of portfolio it is a number
but R' , Σ are matrix
The constraint is sum(x) = 1.

Sign in to comment.

 Accepted Answer

DAN TURMACU
DAN TURMACU on 21 Mar 2019
Dear Torsten,
I have another unexpected problem.
When I run x = fmincon(fun,x0,A,b,Aeq,beq) in Command Window, I receive the error message:
Undefined function or variable 'returns'.
Error in @(x)-(x'*returns)/sqrt(x'*sigma*x)
Error in fmincon (line 564)
initVals.f = feval(funfcn{3},X,varargin{:});
Caused by:
Failure in initial user-supplied objective function evaluation. FMINCON
cannot continue.
I do not understand. I provided with returns and sigma matrixes in Workspace Window.
Thank you.

2 Comments

Torsten
Torsten on 21 Mar 2019
Edited: Torsten on 21 Mar 2019
Write a .m file and load it into matlab.
BTW: "returns" must be a vector of the same length as x, not a matrix.
Now it is ok. I have to run fun script first.
Many thanks,
Dan

Sign in to comment.

More Answers (1)

Torsten
Torsten on 21 Mar 2019
Edited: Torsten on 21 Mar 2019
Use fmincon with objective function
f = @(x)(R'*x)/sqrt(x'*sigma*x)
and linear constraint
Aeq = ones(size(x))
beq = 1
Best wishes
Torsten.

6 Comments

Thank you very much,
Dan
I am searching for the max of Q.
I think I need to put objective function
f = @(x)sqrt(x'*sigma*x)/(R'*x)
for the min.
Use the negative of your problem to search for the maximum.
How may I ? I do not know.
Thanks.
f = @(x)-(R'*x)/sqrt(x'*sigma*x)

Sign in to comment.

Products

Release

R2008a

Community Treasure Hunt

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

Start Hunting!