%Set variables
k = sdpvar(1,1);
P = sdpvar(1,1);
%Set matrices
A0 = -1 + k;
%Set conditions and solve gevp
F = [-inf <= k <= 1, uncertain(k)]
W = [P >= eye(1), A0'*P+P*A0 <= -eye(1)]
objective = -k;
solvesdp(F + W, objective)
You were correct. This problem was bilinear. I took your suggestion and installed a BMI solver (Tomlab) and removed the Tomsys path (conflicting functions) and called it using sdpsettings, but I haven't had any luck. Thanks again for the feedback.
%Set matrices
A0 = -1 + k;
%Set conditions and solve gevp
F = [L <= k <= 1, uncertain(k)]
W = [P >= eye(1), A0'*P+P*A0 <= -eye(1)]
solvesdp(F)
I.e., find the lowest L such that the uncertain model above is feasible?
Lup = 0.99;
Llow = -1;
sol = solvesdp([Llow <= k <= .99, uncertain(k), TheModel]);
% Find bad k
while sol.problem == 0
Llow = Llow*2;
sol = solvesdp([Llow <= k <= .99, uncertain(k), TheModel]);
end
% bisect
while Lup-Llow > desiredtolerance
Ltest = (Llow + Lup)/2;
sol = solvesdp([Ltest <= k <= .99, uncertain(k), TheModel]);
if sol.problem
Llow = Ltest;
else
Lup = Ltest;
Lworks = Ltest;
end
end