matlab cvx工具箱进行功率分配,优化目标是使系统和速率最大,但是得到的优化结果只有第一列的值非零,其余都是零,这样分配显然不是最优的结果,不明白为什么会这样

以下代码是我写的优化函数:

function [feasible,nuSolution] = functionFeasibilityProblemP1(L,K,N,beta,Pmax,gamma,SINRconstraint,P0)
beta=10000*beta;
gamma=10000*gamma;
cvx_begin 
cvx_quiet(true); 
variable nu(L,K) %Power allocation
expressions object(K,1) daoshuUI(K,1) daoshuDS(K,1) daoshuRminus(K,1) TaylorDS(K,1) TaylorRminus(K,1)
maximize sum(object)
for k=1:K
    daoshuUI(k)=K*sum(beta(:,k));
    daoshuDS(k)=N*sqrt(P0(:,k))'*sqrt(gamma(:,k))*sum(sqrt(gamma(:,k))./(sqrt(P0(:,k))));  
    daoshuRminus(k)=-daoshuUI(k)/((sum(P0'*beta(:,k))+10000)*log(2));
    TaylorDS(k)=log(sum(nu'*beta(:,k))+10000+N*(sqrt(P0(:,k))'*sqrt(gamma(:,k)))^2+daoshuDS(k)*sum(sum(nu-P0)))/log(2);
    TaylorRminus(k)=-log(sum(P0'*beta(:,k))+10000)/log(2)+daoshuRminus(k)*sum(sum(nu-P0));
    object(k)=TaylorDS(k)+TaylorRminus(k);   
end
subject to
for k=1:K
    object(k)>=SINRconstraint;
end
for l = 1:L
    sum(nu(l,:)) <= Pmax*K/L;      %%%%% 逐行相加
    nu(l,:)>=0.1;
end
cvx_end
 nuSolution = nu;
if contains(cvx_status,'Solved') % feasible
    feasible = true;
else 
    feasible = false;
end
end
```markup