Need help for a nonlinear constraint optimization problem

1 vue (au cours des 30 derniers jours)
Mohammad
Mohammad le 20 Fév 2018
Commenté : Mohammad le 21 Fév 2018
Dear all,
I am going to solve the following nonlinear constraint optimization problem using MATLAB. I was wondering if you could please help me how to do that,
minimize -trace(W^-1)
subject to
(A-B1*k)W+W*(A-B1*k)'=-B2*B2';
sqrt(trace(C'*W*C)) <= 1;
max(eig(A-B1*k)) <= -1;
A, B1 and B2 are known matrices and k is the unknown 2*2 matrix. (W is also a 2*2 matrix).
I wrote the following code but got error,
function [c,ceq] = constr(k)
c(1) = (A-B1*k)*W+W*(A-B1*k)'+B2*B2';
c(2) = sqrt(trace(C'*W*C))-1;
c(3) = max(eig(A - B1*k))+1;
ceq = [];
end
clc
clear
close all
A = [-1 0
0 -2];
B1 = eye(2);
B2 = eye(2);
C = eye(2);
g2 = 3; g3 = -1;
x0=[1;1];
A=[];
b=[];
Aeq=[];
beq=[];
lb=[];
ub=[];
nonlcon = @constr;
fun = @(k)(-trace(inv(W)));
k = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)
Thanks a lot.
  6 commentaires
Torsten
Torsten le 21 Fév 2018
Your x0-vector contains 8 elements now ?
Best wishes
Torsten.
Mohammad
Mohammad le 21 Fév 2018
Got it. Thanks!

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Nonlinear Optimization dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by