function phipsirev(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); global maxr maxr = 0; while 1 x = randn(m^n,1); y = fminunc(@phipsirat,x); fprintf('n=%d; maxr = %1.9f \n',n,maxr); end return function y = phipsirat(x) global m n maxr lhs = psinorm(x,m,n); rhs = phinorm(x); r = lhs/rhs; y = -r; if r > maxr global optx optx = x; 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