以下代码是我写的优化函数:
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