Dynamic-Calibration/utils/YALMIP-master/extras/@ncvar/relaxdouble.m

20 lines
543 B
Mathematica
Raw Normal View History

2019-12-18 11:25:45 +00:00
function sys=relaxdouble(X)
%RELAXDOUBLE Return numerial value treating nonlinear variables as independent
solution = yalmip('getsolution');
lmi_variables = X.lmi_variables;
opt_variables = solution.variables;
values = zeros(1+length(lmi_variables),1);
values(1)=1;
for i=1:length(lmi_variables)
opt_index = find(lmi_variables(i)==opt_variables);
if isempty(opt_index)
values(i+1,1)=NaN;
else
values(i+1,1)=solution.optvar(opt_index);
end
end
sys = X.basis*values;
sys = full(reshape(sys,X.dim(1),X.dim(2)));