home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l455 / 2.ddi / MUTOOLS2.DI$ / MUP.M < prev    next >
Encoding:
Text File  |  1993-03-11  |  1.6 KB  |  65 lines

  1. %function [lb,bw,az,actit,ec] =  mup(mat,nblk,blk,blkp,repp,fulp,sv,opt)
  2. %
  3. %    Power iteration for mu lower bound.  Not to be called by user.
  4.  
  5.  function [lb,bw,az,actit,ec] =  mup(mat,nblk,blk,blkp,repp,fulp,sv,opt)
  6.  
  7.   maxit = 30;
  8.   if any(opt=='t')
  9.     maxit = 300;
  10.   end
  11.   tols = [1e-4 1e-4 1e-4];   beta = [-15 -16];  
  12.   actit = 0;  count = [0 0];
  13.   cf = 0;  % cf tags convergence  0 not converged
  14.            %                      1 converged
  15.   bw = sv;
  16. % az = bw;
  17.  [innr innc] = size(mat);
  18.  
  19.   while actit < maxit & cf == 0
  20.     actit = actit + 1;
  21.     oldbeta = beta;     oldbw = bw;    oldaz = az;
  22.     [bw,az,beta,ec] = pwr_1(mat,nblk,blk,blkp,repp,fulp,bw);
  23.     if ec ~= 0,  
  24.     if isempty(az)
  25.           az = crand(innr,2);
  26.     end
  27.     return;   
  28.     end
  29.     dbeta = max(abs(oldbeta - beta));
  30. %
  31.     if dbeta < tols(1)
  32.       delbeta = abs(beta(1) - beta(2));
  33.       if delbeta < tols(2)
  34.           count(1) = count(1) + 1;
  35.         else
  36.           count = [0 0];
  37.       end % if delbeta
  38.     else
  39.       count = [0 0];
  40.     end % if dbeta
  41. %
  42.     if count(1) >= 2
  43.       dbw = oldbw - bw;
  44.       daz = oldaz - az;
  45.       nbw(1) = norm(dbw(:,1));      nbw(2) = norm(dbw(:,2));
  46.       naz(1) = norm(daz(:,1));      naz(2) = norm(daz(:,2));
  47.       if max([ nbw naz ]) < tols(3)
  48.           count(2) = count(2) + 1;
  49.         else
  50.           count(2) = 0;
  51.       end %if max
  52.       if count(2) >= 2
  53.         cf = 1;
  54.         lb = 0.5*(beta(1) + beta(2));
  55.       end % if count(2)
  56.     end % if count(1)
  57.   end % while actit
  58.  
  59.   if cf == 0
  60.     ec = -1;    
  61.     actit = maxit;
  62.   end %if cf
  63. %
  64. % Copyright MUSYN INC 1991,  All Rights Reserved
  65.