32 lines
702 B
Matlab
Executable File
32 lines
702 B
Matlab
Executable File
function [BilinearizeringConstraints,failure] = deriveBilinearizing(Fi,w,order)
|
|
|
|
if nargin < 3
|
|
order = 1;
|
|
end
|
|
|
|
BilinearizeringConstraints = ([]);
|
|
failure = 0;
|
|
Fi = sdpvar(Fi);
|
|
if is(Fi,'hermitian')
|
|
Fi = Fi(find(triu(ones(length(Fi)))));
|
|
end
|
|
Fi = Fi(:);
|
|
|
|
for i = 1:length(Fi)
|
|
pij = Fi(i);
|
|
[c,v] = coefficients(pij,w);
|
|
c = clean(c,1e-12);
|
|
for k = 1:length(c)
|
|
if degree(v(k)) > order
|
|
if isa(c(k),'double')
|
|
if abs(c(k))>0
|
|
failure = 1;
|
|
return
|
|
end
|
|
else
|
|
BilinearizeringConstraints = BilinearizeringConstraints + (c(k) == 0);
|
|
end
|
|
end
|
|
end
|
|
end
|