cvx_begin
variable w2(Nt2,cluster2)
variables x2(usertotal2,1) y2(usertotal2,1)
expressions U(usertotal1,1) MSE1(cluster1,1) MMSE1(cluster1,1)
expressions W2(Nt2,Nt2,cluster2) F2(Nt2,Nt2,cluster2,user2) G2(Nt2,usertotal2) X2(Nt2,Nt2,cluster2,user2) Y2(Nt2,Nt2,cluster2,user2) Z2(Nt2,Nt2,cluster2,user2) C2(Nt2,Nt2,cluster2,user2) T2(Nt2,Nt2,cluster2,user2) t2(Nt2,usertotal2) O(usertotal2,1) w22(cluster2,1) MSE2(cluster2,1) s2(usertotal2,1) wm2(Nt2,cluster2-1) MMSE2(cluster2,1) SUM(Nt1,Nt1)
for l=1:cluster2
w22(l)=pow_pos(norm(w2(:,l)),2);
W2(:,:,l)=2*real(wStart2(:,l)*(w2(:,l)-wStart2(:,l))')+wStart2(:,l)*wStart2(:,l)';
end
for m=1:cluster1
for n=1:user1
wm1=[w1(:,1:m-1),w1(:,m+1:cluster1)];
U((m-1)*user1+n)=(pow_abs(h1(:,(m-1)*user1+n)'*w1(:,m),2)+sigma1^2*pow_pos(norm(w1(:,m)),2))*(a1(m,n)+eta1*sum(a1(m,n+1:user1))+sum(a1(m,1:n-1)))+pow_pos(norm(h1(:,(m-1)*user1+n)'*wm1),2)+sigma1^2*(sum(w11(1:m-1))+sum(w11(m+1:cluster1)))+trace(diag(f1(:,(m-1)*user1+n)')*A*diag(f1(:,(m-1)*user1+n))*sum(W2,3))+1;
MSE1((m-1)*user1+n)=v1((m-1)*user1+n)*v1((m-1)*user1+n)'*U((m-1)*user1+n)+1-2*sqrt(a1(m,n))*real(v1((m-1)*user1+n)'*w1(:,m)'*h1(:,(m-1)*user1+n));
MMSE1((m-1)*user1+n)=real(beta1((m-1)*user1+n))*MSE1((m-1)*user1+n);
end
end
for l=1:cluster2
for s=1:user2
wm2=[w2(:,1:l-1),w2(:,l+1:cluster2)];
O((l-1)*user2+s)=trace(diag(f2(:,(l-1)*user2+s))*A*diag(f2(:,(l-1)*user2+s))'*W2(:,:,l))*(a2(l,s)+eta2*sum(a2(l,s+1:user2))+sum(a2(l,1:s-1)))+trace(diag(f2(:,(l-1)*user2+s))*A*diag(f2(:,(l-1)*user2+s))'*(sum(W2,3)-W2(:,:,l)))+(l==1)*(pow_pos(norm(h2(:,(l-1)*user2+s)'*w1),2)+sigma1^2*sum(w11))+1;
MSE2((l-1)*user2+s)=v2((l-1)*user2+s)*v2((l-1)*user2+s)'*O((l-1)*user2+s)+1-2*real(sqrt(a2(l,s))*exp(-sigma2^2/2)*w2(:,l)'*f2(:,(l-1)*user2+s)*v2((l-1)*user2+s)');
MMSE2((l-1)*user2+s)=real(beta2((l-1)*user2+s))*MSE2((l-1)*user2+s);
C2(:,:,l,s)=diag(f2(:,(l-1)*user2+s))'*((a2(l,s)/gamma2-(eta2*sum(a2(l,s+1:user2))+sum(a2(l,1:s-1))))*W2(:,:,l)-(sum(W2,3)-W2(:,:,l)))*diag(f2(:,(l-1)*user2+s));
X2(:,:,l,s)=real(C2(:,:,l,s));
Y2(:,:,l,s)=imag(C2(:,:,l,s));
for i=1:Nt2
for j=1:Nt2
if i==j
F2(i,j,l,s)=sigma2^2*(X2(i,j,l,s)-sum(X2(i,:,l,s)));
else
F2(i,j,l,s)=sigma2^2*X2(i,j,l,s);
end
end
end
for j=1:Nt2
G2(j,(l-1)*user2+s)=sigma2*sum(Y2(j,:));
end
t2(:,(l-1)*user2+s)=G2(:,(l-1)*user2+s);
s2((l-1)*user2+s)=sum(sum(C2(:,:,l,s)))-norm(htotal2(:,(l-1)*user2+s)'*w1)^2-1;
end
end
minimize( real(sum(MMSE1))+real(sum(MMSE2)) )
cvx_end
Status: Failed
Optimal value (cvx_optval): NaN
I delete the constraints, but the result is NaN.
However I got the value of objective function which was a real value not NaN. Why did this happen?
real(sum(MMSE1))+real(sum(MMSE2))
ans =
-32.0468