MATLAB Answers

0

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

Dinoma Degefa さんによって質問されました 2019 年 5 月 9 日
最新アクティビティ Torsten
さんによって 編集されました 2019 年 5 月 10 日
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?

  0 件のコメント

サインイン to comment.

1 件の回答

回答者: Torsten
2019 年 5 月 9 日
編集済み: Torsten
2019 年 5 月 9 日

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 件のコメント

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
2019 年 5 月 10 日
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.

サインイン to comment.



Translated by