I want to solve this problem
Mostrar comentarios más antiguos

The constraints are not convex so cvx is inapplicable. (I tried CVX previously.)
I am thinking of using matlab optimization toolbox. I tried the following codes but they failed.
Nt = 4 ;
M = 64 ;
Gamma_R = 10^(3/10);
Gamma_T = 10^(3/10);
gamma_r = 0 ;
gamma_t = 0 ;
noise_variance_dBm = -70;
noise_variance = 10^(-70/10)*1E-3 ;
h_r =(randn(M,1)+1i*randn(M,1))/sqrt(2);
h_t =(randn(M,1)+1i*randn(M,1))/sqrt(2);
h_d =(randn(Nt,1)+1i*randn(Nt,1))/sqrt(2);
Phi_r =(diag(diag(rand(M,M)+1i*rand(M,M))))/sqrt(2);
Phi_t =(diag(diag(rand(M,M)+1i*rand(M,M))))/sqrt(2);
for n = 1:length(Nt)
N = Nt(n);
G = (randn(M,N)+1i*randn(M,N))/sqrt(2);
end
theta_r = zeros(M,M) ;
theta_t = zeros(M,M) ;
zeta = zeros(M,M) ;
a_r = [h_r'*Phi_r*G+h_d' , h_r'*Phi_r*G+h_d']*[eye(Nt), zeros(Nt,Nt);zeros(Nt,Nt),zeros(Nt,Nt)]; %.*[2*Nt,2*Nt] ;
a_t = [h_r'*Phi_r*G+h_d' , h_r'*Phi_r*G+h_d']*[zeros(Nt,Nt), zeros(Nt,Nt);zeros(Nt,Nt),eye(Nt)]; %.*[2*Nt,2*Nt] ;
b_r = [h_t'*Phi_t*G , h_t'*Phi_t*G ]*[eye(Nt), zeros(Nt,Nt);zeros(Nt,Nt),zeros(Nt,Nt)] ;
b_t = [h_t'*Phi_t*G , h_t'*Phi_t*G ]*[zeros(Nt,Nt), zeros(Nt,Nt);zeros(Nt,Nt),eye(Nt)] ;
%%
Asc = a_r;
bsc = sqrt(Gamma_R)*sqrt(abs(a_t).^2 + noise_variance^2);
dsc = 0;
gamma = 0 ;
conecons(2) = secondordercone(Asc,bsc,dsc,gamma);

Does anyone have ideas how Matlab toolboxes can be used to solve the problem or how the problem can be solved with matlab based libraries?
7 comentarios
Sitthipong
el 3 de Jul. de 2022
Editada: Sitthipong
el 3 de Jul. de 2022
Use "fmincon".
And use your constraints (to be defined in nonlcon) in the squared form:
(a_r'*w)^2 - gamma_r * ((a_t'*w)^2 + sigma^2) >=0
(b_t'*w)^2 - gamma_t * ((b_r'*w)^2 + sigma^2) >=0
Sitthipong
el 5 de Jul. de 2022
Walter Roberson
el 5 de Jul. de 2022
fmincon can only handle complex values when there are no constraints, if I recall correctly.
Sitthipong
el 6 de Jul. de 2022
Torsten
el 6 de Jul. de 2022
Include your code - we cannot run a graphics snapshot.
Respuestas (1)
Alan Weiss
el 1 de Jul. de 2022
1 voto
You can use secondordercone by making a new variable m, a linear objective m, and another second-order cone constraint:
Minimize m such that
.
You have to be careful when using complex numbers. Optimization toolbox solvers generally don't work well with complex numbers. Please check that you are satisfying the assumptions of the toolbox.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
Categorías
Más información sobre Get Started with Optimization Toolbox en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

