% Solve
% min sigma(sigma_x,sigma_y,sigma_z) ||Dsigma - t||^2 + Set.gamma * ||sigma||^2 s.t
% sigma_xsigma_y-sigma_z^2>=1e-6 and sigma_x+sigma_y>=1e-6
% Determine the size of sigma
D=rand(32,27);
t=rand(32,1);
Set.gamma=1e-6;
Set.InqTol=1e-10;
sigma=Solve(D,t,Set);
% Verification
sigmax=sigma(1:3:end);
sigmay=sigma(2:3:end);
sigmaz=sigma(3:3:end);
const1=zeros(length(sigmax),1);
const2=zeros(length(sigmax),1);
for i=1:length(tau)
const1(i)=sigmax(i).*sigmay(i)-(sigmaz(i)).^2-1e-6;% Constraint 1
const2(i)=sigmax(i)+sigmay(i)-1e-6;% Constraint 2
if any(const1(i)<Set.InqTol) || any(const2(i)<Set.InqTol)
warning(‘Inequality constraints are not staisfied’)
else
disp(‘Inequality contraints are satisfied’)
end
end
%%%%%%%
function sigma=Solve(D,t,Set)
n = size(D, 2); % Assuming sigma has n elements
sigma = zeros(n, 1);
% Initialize CVX
cvx_begin
cvx_precision high
variables sigma(n)
% Define sub-vectors assuming n is a multiple of 3
sigmax = sigma(1:3:n);
sigmay = sigma(2:3:n);
sigmaz = sigma(3:3:n);
% Objective function
minimize((D * sigma - t)’ * (D * sigma - t) + Set.gamma * (sigma’ * sigma))
subject to
for i = 1:length(sigmax)
% Applying rotated Lorentz constraints for each set of 3 elements
{[sigmaz(i);1e-3], sigmax(i), sigmay(i)} == rotated_lorentz(3);
% Applying element-wise addition constraint
sigmax(i) + sigmay(i) >=1e-6;
end
cvx_end
end