function alfeta(m0,n0) global n m randomize n = n0; m = m0; global Ainf Binf mylinopt mylinopt = optimset('Diagnostics','off'); mylinopt = optimset('Display','off'); [Ainf,Binf] = lipab(m,n); P = ones(m^n,1); P = P/sum(P); zz = P*0 + 1e-12; oo = P*0+1; Aeq = oo'; Beq = 1; global maxr maxr = 0; while 1 P = rand(m^n,1); P = P/sum(P); x = [P(:)]; y = fmincon(@radrat,x,[],[],Aeq,Beq,zz,oo); fprintf('n=%d; maxr = %1.9f \n',n,maxr); end return function y = radrat(P) global m n maxr P = makepos(P); alf = alphamix(P,m,n); [hh,Ht,H] = gethhn(P,m,n); lhs = sum(alf); rhs = H; r = lhs/rhs; y = -r; if r > maxr global optP optP = P; maxr = r; fprintf('n=%d; maxr = %1.9f \n',n,maxr); end return function y = phinorm(K) global Ainf Binf m n mylinopt [x,fvalp] = linprog( K,Ainf,Binf,[],[],0*K,0*K+n,0,mylinopt); [x,fvaln] = linprog(-K,Ainf,Binf,[],[],0*K,0*K+n,0,mylinopt); y = max(abs(fvalp),abs(fvaln)); return