Error while Norm minimization

While optimising a problem with several variables. I encountered some difficulty when optimising one of the variable. While optimising that variable, optimal solution of the subproblem is obtained but instead of one vector, I have obtained multiple vectors (denoted by \bar{\boldsymbol h_i^{\#*}} ) as solution. So, I used an additional norm minimization problem to obtain an unique vector as solution, which is given below.

The norm minimization sub problem is given as \sum_{i} \min\limits_{ \boldsymbol \beta_i, \theta_m^{\#}} \|\boldsymbol \beta_i (\bar{\boldsymbol h_i^{\#*}})^H - ( \boldsymbol h^H_{d,i} + \boldsymbol {(\theta^{\#})^H} \boldsymbol N_{i} ) \|^2_2, \text{s.t.} \ \ \| \theta_m^{\#} \|=1, where \boldsymbol{\theta} =[\theta_1^{\#},...,\theta_m^{\#},...,\theta_M^{\#}]. Here, \boldsymbol \beta_i is a tuning parameter.

Following MATLAB code is written.

    cvx_begin
        variable theta(M) complex
        variable beta(K) nonnegative 
        expression total
        for i=1:K
            total(i)= (norm((-( theta' * (diag(Hr(:,i)')* Z) )  - ( Hd(:,i)' - beta(i) * hopt(:,i)')  ),2) );
        end            
    minimize ( sum(total) )
    subject to
        norm(theta)<=1;
    cvx_end
    theta=theta/norm(theta);
    theta=conj(theta); 

Assuming following parameters for the sub problem.

> Hd=zeros(6,4); K=4;
> Hr=[ 0.0131 - 0.0002i   0.0129 - 0.0000i   0.0089 - 0.0020i   0.0163 - 0.0018i;   0.0070 + 0.0002i  -0.0049 + 0.0052i   0.0004 + 0.0122i   0.0168 + 0.0075i;   0.0099 + 0.0066i  -0.0046 - 0.0104i  -0.0106 + 0.0162i   0.0092 + 0.0089i;   0.0093 + 0.0021i   0.0054 + 0.0045i  -0.0142 - 0.0017i   0.0110 + 0.0075i;   0.0139 + 0.0011i  -0.0128 - 0.0034i  -0.0052 - 0.0106i   0.0066 + 0.0136i;   0.0113 + 0.0040i   0.0152 - 0.0040i   0.0149 - 0.0087i  -0.0070 + 0.0138i;   0.0152 + 0.0001i  -0.0027 + 0.0089i   0.0087 + 0.0117i  -0.0062 + 0.0110i;   0.0115 + 0.0005i  -0.0089 - 0.0094i  -0.0044 + 0.0144i  -0.0166 + 0.0141i;   0.0123 + 0.0001i   0.0158 + 0.0073i  -0.0133 + 0.0067i  -0.0133 + 0.0071i;   0.0097 - 0.0006i  -0.0076 + 0.0040i  -0.0073 - 0.0162i  -0.0128 + 0.0039i;];

> Z=[   1.1696 - 0.0675i   0.2033 - 0.6292i  -0.4870 - 0.7863i  -0.9097 + 0.1779i  -0.3686 + 0.7969i   0.2516 + 1.1239i;   0.5554 + 0.7903i   1.1773 + 0.3743i   0.7152 - 1.0514i  -0.3052 - 0.6059i  -0.6591 - 0.4586i  -0.9086 + 0.5358i;  -0.5485 + 0.7511i   0.2888 + 0.9353i   1.0356 + 0.0179i   0.4255 - 0.6681i  -0.4886 - 0.8426i  -1.4398 - 0.2979i;  -0.5585 - 0.3044i  -0.6440 + 1.1799i   0.6146 + 1.0246i   1.0445 - 0.3872i   0.3457 - 0.5123i  -0.4408 - 0.9332i;  -0.4801 - 0.6843i  -1.3015 - 0.1011i  -0.7191 + 0.8359i   0.2766 + 0.6587i   0.9303 + 0.1537i   0.5858 - 0.5719i;   0.1619 - 0.9366i  -0.2730 - 0.9554i  -1.0684 + 0.0152i  -0.3227 + 0.6841i   0.3899 + 0.8301i   0.7433 + 0.2087i;   0.6768 - 0.3807i   0.0653 - 0.6700i  -0.6269 - 0.7651i  -0.8630 + 0.4205i  -0.7211 + 0.4721i   0.5060 + 0.7233i;   0.2991 + 1.1094i   0.5013 - 0.3072i   0.3772 - 1.3365i  -0.8090 - 0.8157i  -0.7918 - 0.1036i  -0.5878 + 0.5761i;  -0.4834 + 0.9610i   0.8809 + 0.5697i   1.2653 - 0.0992i   0.6460 - 0.6706i  -0.3965 - 0.8065i  -1.1927 - 0.1207i;  -0.8109 + 0.5107i  -0.1648 + 0.7115i   0.6093 + 0.8449i   1.1094 - 0.1049i   0.6086 - 1.1580i  -0.4068 - 0.3676i;];
> hopt=[0.3675 + 0.1049i   0.3675 + 0.1049i   0.3675 + 0.1049i   0.3675 + 0.1049i;   0.0590 + 0.3735i   0.0590 + 0.3735i   0.0590 + 0.3735i   0.0590 + 0.3735i;  -0.2062 - 0.2350i  -0.2062 - 0.2350i  -0.2062 - 0.2350i  -0.2062 - 0.2350i;   0.1066 - 0.5802i   0.1066 - 0.5802i   0.1066 - 0.5802i   0.1066 - 0.5802i;  -0.1192 - 0.1110i  -0.1192 - 0.1110i  -0.1192 - 0.1110i  -0.1192 - 0.1110i;   0.4885 + 0.0000i   0.4885 + 0.0000i   0.4885 + 0.0000i   0.4885 + 0.0000i;];

Above code results \boldsymbol{\theta} value as below. With this \boldsymbol{\theta} value, for the main problem (which is not shown here) the objective function is found to be very small.

> theta=[0.2967 - 0.7119i;   0.2732 - 0.1907i;  -0.1290 - 0.1067i;  -0.2510 + 0.0768i;   0.1016 - 0.1321i;   0.2891 + 0.0470i;   0.1942 + 0.0398i;   0.1691 - 0.0156i;  -0.0876 + 0.0231i;   0.0745 + 0.0433i;];

As \boldsymbol \theta=exp(1j.* \ \boldsymbol \psi), 0\leq\boldsymbol \psi\leq2\pi. If some random value (generated as \boldsymbol \theta=exp(1j.*rand(10,1).*2.*pi) ) as shown below is being used for \boldsymbol \theta, then main objective function is having better result.

> theta=[  -0.1794 + 0.9838i;   0.3537 - 0.9354i;   0.7650 - 0.6440i;   0.9662 - 0.2580i;   0.9830 - 0.1836i;   0.5407 - 0.8412i;   0.3609 - 0.9326i;   0.4183 - 0.9083i;  -0.7908 - 0.6121i;  -0.8565 + 0.5162i;];

Thus, I feel as the sub problem is norm minimization, \boldsymbol \theta in the sub problem is getting minimized. And, hence value of objective function in the main problem is getting decreased. This could be an error occurred due to wrong problem formulation. Anyway, help is appreciated. Thanks in advance.

Your “better” theta violates the norm constraint.

 theta=[  -0.1794 + 0.9838i;   0.3537 - 0.9354i;   0.7650 - 0.6440i;   0.9662 - 0.2580i;   0.9830 - 0.1836i;   0.5407 - 0.8412i;   0.3609 - 0.9326i;   0.4183 - 0.9083i;  -0.7908 - 0.6121i;  -0.8565 + 0.5162i;];
disp(norm(theta))
   3.162313088547685