我想解决凸优化如下:
与,,,给出。和都是厄密矩阵。下标代表共轭转置。
我已经使用 CVX 来解决这个问题,但性能似乎并不好。因为在两个CVX码中使用了Sylvester的行列式恒等式,我们得到了完全不同的结果,这是不合理的。
如果 CVX 无法有效解决问题,SDPT3 或 SeDuMi 等其他工具箱能否解决问题?谢谢你。
matlab代码如下所示:
Sample = 10;
H = randn(4,2,Sample)+1i*randn(4,2,Sample);
h = randn(4,1)+1i*randn(4,1);
A = randn(4,4)+1i*randn(4,4); A = A*A';
B = randn(4,4)+1i*randn(4,4); B = B*B';
cvx_begin quiet
variable X1(4,4) semidefinite hermitian
variable X2(4,4) semidefinite hermitian
t = -log(1+quad_form(h,X1+X2))+trace(A*X1)+trace(B*X2);
for i = 1:Sample
t = t - log_det(eye(2) + H(:,:,i)'*X2 *H(:,:,i))/Sample; % Primal constraint
end
minimize(t)
subject to
trace(X1+X2)<=1;
cvx_end
X1
X2
t
cvx_begin quiet
variable X1(4,4) semidefinite hermitian
variable X2(4,4) semidefinite hermitian
t = -log(1+quad_form(h,X1+X2))+trace(A*X1)+trace(B*X2);
for i = 1:Sample
t = t - log_det(eye(4) + X2 *H(:,:,i)*H(:,:,i)')/Sample; % Sylvester's determinant identity is used
end
minimize(t)
subject to
trace(X1+X2)<=1;
cvx_end
X1
X2
t
```