There was an error when I asked for rk at the end, can you help me! Error message Disciplined convex programming error: Illegal operation: log( {convex} )

clear
close all
clc

K=8;%地面用户
M=12;%无线天线
beampattern=5e-5;%增益阈值
B_db=-60;%1m的通讯功率
B=10^(B_db/10);
sigma_dBm = -110;%%AWGN 功率
sigma= 10^(sigma_dBm/10)/1000;
Vmax=30;%最大速度
H=100;%高度
Pmax=0.5;%最大功率
T=30;
t=1;
iter_num=15;
J=18;
ak=1;%速率权重
m(1,:)=linspace(450,550,J);
m(2,:)=600;
m=m’
mH=5;
threshold=0;

%用户位置
u_begin=[350,400]‘;
u_over=[650,400]’;
u(:,1)=linspace(u_begin(1),u_over(1),K);
u(1:4,2)=linspace(u_begin(2),250,4);
u(5:8,2)=linspace(250,u_begin(2),4);

q=[400,400];

% 用户位置偏转角 通道向量
for a=1:K
AOk(a)=acos(H/sqrt((q(1,1)-u(a,1))(q(1,1)-u(a,1))+(q(1,2)-u(a,2))(q(1,2)-u(a,2))+HH));
for aa=1:M
A(aa,a)=(exp(1i
2pi0.5*(aa-1)*cos(AOk(a))))‘;
end
hk(:,a)=sqrt(B/((q(1,1)-u(a,1))^2+(q(1,2)-u(a,2))^2+H^2))*A(:,a);
HK(:,:,a)=hk(:,a)*hk(:,a)’;
end

%感兴趣区域偏转角
for am=1:J
AOm(am)=acos(H/sqrt((q(1,1)-m(am,1))^2+(q(1,2)-m(am,2))^2+mHmH));
for aam=1:M
Am(aam,am)=(exp(1i
2pi0.5*(aam-1)*cos(AOm(am))))‘;
end
hk(:,am)=sqrt(B/((q(1,1)-m(am,1))^2+(q(1,2)-m(am,2))^2+mH^2))*Am(:,am);
HK(:,:,am)=hk(:,am)*hk(:,am)’;
end

%初始信号
sb=rand(M,1)+j*rand(M,1);
for i = 1:12
ul = [zeros(1,i-1),sb’,zeros(1,12-i)];
Ul(i,:slight_smile: = ul;
end

Rs=zeros(12,12,iter_num+1)
Rs(:,:,1)=Ul*Ul’
% rb = xcorr(sb);
% Rb=rb(end-length(sb)+1:end)
% Rsb=toeplitz(Rb);

wb=rand(M,8)+j*rand(M,8);
for ii=1:8
Wb(:,:,ii)=wb(:,ii)*wb(:,ii)’
end
WW=zeros(12,12,8,iter_num+1)
WW(:,:,:,1)=Wb;

for iter=1:1

cvx_begin quiet
variable wl(12,8) complex
variable s0(12,1) complex


for i = 1:12
    u = [zeros(1,i-1),s0',zeros(1,12-i)];
    U(i,:) = u;
end

W1=0;
akl1=0;
for i1=1:K
    W1=W1+square_pos(norm(hk(:,i1)'*wl(:,i1),"fro"));
    akl1=akl1+square_pos(norm(hk(:,i1)'*wb(:,i1),"fro"));
end

for i2=1:K

    akl(i2)=log(akl1-square_pos(norm(hk(:,i2)'*wb(:,i2),"fro"))+square_pos(norm(hk(:,i2)'*Ul,"fro"))+sigma^2)/log(2);
    Bkl(:,:,i2)=(1/log(2)/(akl1-square_pos(norm(hk(:,i2)'*wb(:,i2),"fro"))+square_pos(norm(hk(:,i2)'*Ul,"fro"))+sigma^2))*HK(:,:,i2);
    % trace(((1/log(2))*HK(:,:,i2))*(Wl(:,:,i2)-WW(:,:,i2,iter))/(akl1-trace(HK(:,:,i2)*WW(:,:,i2,iter))+trace(HK(:,:,i2)*RR(:,:,iter))+sigma^2))
end

for i3=1:K
    Bklw(i3)=(square_pos(norm(sqrtm(Bkl(:,:,i3))*wl(:,i3),"fro"))-square_pos(norm(sqrtm(Bkl(:,:,i3))*wb(:,i3),"fro")));
end

for i4=1:K
    Bklr(i4)=square_pos(norm(sqrtm(Bkl(:,:,i4))*U,"fro"))-square_pos(norm(sqrtm(Bkl(:,:,i4))*Ul,"fro"));
end

for i5=1:K
    q=Bklw(i5);
    Bklw(i5)=0;
    BklwS(i5)=sum(Bklw);
    Bklw(i5)=q;
end

for i6=1:K
    rk(i6)= log(W1+square_pos(norm(hk(:,i1)'*U,"fro"))+sigma^2)/log(2)-(akl(i6)+BklwS(i6)+Bklr(i6))

end


% subject to
% for e=1:J
%    Am(:,J)'*(W+RS)*Am(:,J)>=((q(1,1)-m(e,1))^2+(q(1,2)-m(e,2))^2+mH^2)* threshold
% end
%  Wt+trace(RS)<=Pmax
%

end

log(W1+square_pos(norm(hk(:,i1)'*U,"fro"))
violates CVX’s rules. log does not accept a convex argument, because its convexity or concavity can’ be determined.

I don’t know what you intend to do with rk, so I don;t know whether a reformulation which avoids forming rk is possible.

In any event, your first task is to prove your optmizzation problem is convex.