Section 7.1.1: Covariance estimation for Gaussian variables
randn('state',0);
n = 10;
N = 1000;
tmp = randn(n);
L = tmp*tmp';
tmp = randn(n);
U = L + tmp*tmp';
R = (L+U)/2;
y_sample = sqrtm(R)*randn(n,N);
Y = cov(y_sample');
Ui = inv(U); Ui = 0.5*(Ui+Ui');
Li = inv(L); Li = 0.5*(Li+Li');
cvx_begin sdp
variable S(n,n) symmetric
maximize( log_det(S) - trace(S*Y) );
S >= Ui;
S <= Li;
cvx_end
R_hat = inv(S);
Successive approximation method to be employed.
For improved efficiency, sedumi is solving the dual problem.
sedumi will be called several times to refine the solution.
Original size: 356 variables, 122 equality constraints
1 exponentials add 8 variables, 5 equality constraints
-----------------------------------------------------------------
Errors
Act Centering Conic Status
-----------------------------------
1 2.799e+00 7.338e-01 Solved
1 4.319e-02 1.562e-04 Solved
1 4.684e-03 1.947e-06 Solved
1 4.883e-04 0.000e+00 Solved
-----------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): -30.6698