Hi all, I want to implement a convex-relaxation for the E-optimality design criterion, that is:
By defining
the optimization problem would be
I have implemented in Matlab using this function
function [d] = e_optimality(Uk, s, sigma)
%% E-OPTIMALITY DESIGN CRITERION, CONVEX RELAXATION
%
% OUTPUT: sampling_set= vector with ordered sampling
% set
%
% INPUT: Uk= NxK Laplacian eigenvector in the selected band
% s= number of samples
% sigma: entry noise matrix
N= size(Uk,1);
Sigma= diag(sigma*ones(N,1))
Sigma_inv= inv(Sigma);
cvx_begin
variable d(N)
D= diag(d)
B= Uk'*Sigma_inv* D*Uk;
minimize -lambda_min(B)
subject to
d*ones(N,1)==s;
0<=d<=1;
cvx_end
Unfortunately, when launghing the function I have the following error:
One or more output arguments not assigned during call to "varargout".
Error in minimize (line 14)
x = evalin( 'caller', sprintf( '%s ', varargin{:} ) );
Error in e_optimality (line 20)
minimize -lambda_min(B)
It seems to be the minimize -lambda_min in CVX causing the problem. What could it be?
Thank you