# CVX error, Invalid constraint: {concave} == {real affine}

I receive such a error information: Invalid constraint: {concave} == {real affine} for the code below

``````    cvx_begin sdp
variable W(Nt,Nt,K) hermitian;
variable nor(1,K);
minimize(....);
subject to
for k=1:K
[W(:,:,k),W(:,:,k)*h(:,k);
h(:,k)'*W(:,:,k),W(:,:,k)-inv_pos(nor(k))] == hermitian_semidefinite(Nt+1);
[W(:,:,k), W(:,:,k)h(:,k);
h(:,k)'W(:,:,k),inv_pos(1-nor(k))] == hermitian_semidefinite(Nt+1);
W(:,:,k) == hermitian_semidefinite(Nt);
nor(k)>=0;
nor(k)<=1;
end
cvx_end
``````

It seems that the use of inv_pos introduces convex expression and consequently causes the mistake. Do anyone knows how to solve the problem or rewrite this constrait?

You might be able to change variables. Instead of using `nor(k)`, create a new variable that is equal to `1/nor(k)`. Call it `nori(k)`. Then you need only ensure that `nori(k)` is greater than or equal to 1. Of course, if your objective function involves `nor(k)`, you may be stuck.

Thanks. But how if I also have a constraint: [W(:,:,k), W(:,:,k)*h(:,k);
h(:,k)’*W(:,:,k), inv_pos(1-nor(k)] == hermitian_semidefinite(Nt+1); There are same problems when I try to express inv_pos(1-nor(k)) with 1/nor(k).

I’m not sure there is anything to be done.