function [A,fval] = sancheckv(h) % variable stricture %global A0 global C global nstate lenseq C = zeros(nstate,1); C(2)=1; m = nstate; T = lenseq-1; global A A0 = pnormdim(ones(m,m,T),1); global ALLSEQ ALLSEQ1 ALLSEQ = list_all_ind(repmat(nstate,1,lenseq)); ALLSEQ1 = list_all_ind(repmat(nstate,1,lenseq)); % box constraints LB = zeros(m^2*T,1)+1e-10; UB = ones(m^2*T,1); % normalization constraints Aeq = zeros(m*T,m^2*T); for i=1:m*T for j=1:m Aeq(i,m*(i-1)+j) = 1; end end Beq = ones(m*T,1); SIGNS = 2*list_all_ind(repmat([2],[1 m]))-3; %Ain = zeros(size(SIGNS,1)*m*(m-1)/2*T,m^2*T); Ain = zeros(0,m^2*T); rind = 0; for i1 = 1 for i2 = i1+1:m for t=1:T for s = 1:size(SIGNS,1) rind = rind+1; ss = SIGNS(s,:); for j=1:m ind1 = coord2ind([j i1 t],[m m T]); ind2 = coord2ind([j i2 t],[m m T]); Ain(rind,ind1) = ss(j); Ain(rind,ind2) = -ss(j); end end end end end Bin = ones(size(Ain,1),1)*h*2; x0 = [A0(:)]; [x,fval] = fmincon(@myobjm,x0,Ain,Bin,Aeq,Beq,LB,UB); fval = sqrt(abs(fval)); A = reshape(x,[m m T]); return