Can anyone help me in coding matlab code for Quadratically Constrained Quadratic Program (QCQP)?

5 visualizaciones (últimos 30 días)
I used fmincon but it is not working for me. i might miss something. The following is just the simplest which i want to ask for my understanding to work further for large dimensions.
subject to
where H=[2 0 0;0 2 0;0 0 2]; f=[-1; -2 ;-3], R=[7 0 0;0 7 0;0 0 7]; h=[-4 ;-5 ;-6]; c=88.
Can anyone give me a code for this problem?

Respuestas (1)

Torsten
Torsten el 9 de Mayo de 2019
Editada: Torsten el 9 de Mayo de 2019
function main
H = [2 0 0;0 2 0;0 0 2];
f = [-1; -2 ;-3];
R = [7 0 0;0 7 0;0 0 7];
h = [-4 ;-5 ;-6];
c = 88;
x0 = [1; 1; 1];
obj = @(x)0.5*x.'*H*x+f.'*x;
sol = fmincon(obj,x0,[],[],[],[],[],[],@(x)nonlcon(x,R,h,c))
end
function [cineq,ceq] = nonlcon(x,R,h,c)
cineq(1) = 0.5*x.'*R*x+h.'*x+c;
end
  2 comentarios
Dinoma Degefa
Dinoma Degefa el 9 de Mayo de 2019
Torsten it is not working.
Error in drow (line 9)
sol = fmincon(obj,x0,[],[],[],[],[],[],@(x)nonlcon(x,R,h,c))
Caused by:
Failure in initial user-supplied objective function evaluation. FMINCON cannot continue.
Torsten
Torsten el 10 de Mayo de 2019
Editada: Torsten el 10 de Mayo de 2019
I can't test the code since I don't have a licence for the optimization toolbox.
First change "nonlcon" to
function [cineq,ceq] = nonlcon(x,R,h,c)
cineq(1) = 0.5*x.'*R*x+h.'*x+c;
ceq = [];
end
Secondly supply x0 as a row vector:
x0 = [1,1,1];
Test again.
If it still doesn't work, post the code you are using.

Iniciar sesión para comentar.

Categorías

Más información sobre MPC Design en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by