Hi,
I got the same error and followed your advice but it is not solved. Is it possible to give me more advice?
Disciplined convex programming error:
Illegal operation: {complex affine} - {convex}
Error in - (line 21)
z = plus( x, y, true, cheat );
Error in Phase_Beam1 (line 70)
Y <= 2*real(omega_t(q,:)*phi_ut - phi_ut’*Omega_t(:,:,q) phi_ut ) + 2real(omega_r(q,:)*phi_ur - phi_ur’*Omega_r(:,:,q) *phi_ur);
cvx_begin
cvx_solver mosek
variable phi_ut(N,1) complex;
variable phi_ur(N,1) complex;
variable Phi_ut(N,N) hermitian;
variable Phi_ur(N,N) hermitian;
variable Y nonnegative;
variable Lambda1_t(N,N) hermitian;
variable Lambda1_r(N,N) hermitian;
variable Lambda2_t(N,N) hermitian;
variable Lambda2_r(N,N) hermitian;
maximize Y;
subject to
for q =1:K
Y <= 2*real(omega_t(q,:)*phi_ut - phi_ut'*Omega_t(:,:,q) *phi_ut ) + 2*real(omega_r(q,:)*phi_ur - phi_ur'*Omega_r(:,:,q) *phi_ur);
end
for i=1:N
AA(i) = Phi_ut(i,i);
BB(i) = Phi_ur(i,i);
end
AA + BB == ones(1,N);
Phi_ut == hermitian_semidefinite(N);
Phi_ur == hermitian_semidefinite(N);
M_t = [Lambda1_t, Phi_ut, phi_ut; Phi_ut', Lambda2_t, phi_ut; phi_ut', phi_ut', 1];
M_r = [Lambda1_r, Phi_ur, phi_ur; Phi_ur', Lambda2_r, phi_ur; phi_ur', phi_ur', 1];
M_t == hermitian_semidefinite(2*N+1); M_r == hermitian_semidefinite(2*N+1);
%imag(trace(phi_tin*phi_ut')) == 0;
%imag(trace(phi_rin*phi_ur')) == 0;
(phi_tin*phi_ut') == hermitian_semidefinite(N);
(phi_tin*phi_ur') == hermitian_semidefinite(N);
trace(Lambda1_t) >= 2*real(trace(phi_tin*phi_ut')) - trace(phi_tin*phi_tin');
trace(Lambda1_r) >= 2*real(trace(phi_rin*phi_ur')) - trace(phi_rin*phi_rin');
cvx_end
Thanks