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

  1. function [dleft,drighti,bcost] = mainsubg(m,blk,num)
  2.   [nblk,dum] = size(blk);
  3.   nvar = nblk - 1;
  4.     x = zeros(nvar,1);
  5.     bx = zeros(nvar,1);
  6.   blkp = ptrs(blk);
  7.   k = 1;
  8.   [sg,bcost] = subgrad(m,x,blk,blkp);
  9.   x = x - (1/(k*norm(sg)))*sg;
  10.   total = max([80 num*nvar]);
  11.   while k < num*nvar
  12.     [sg,cost] = subgrad(m,x,blk,blkp);
  13.     if cost < bcost
  14.       bcost = cost;
  15.       bx = x;
  16.     end
  17.     k = k + 1;
  18.     x = x - (1/(k*norm(sg)))*sg;
  19.   end
  20.   [nr,nc] = size(m);
  21.   dleft = ones(1,nr);
  22.   drighti = ones(1,nc);
  23.   for i=1:nblk-1
  24.     dleft(blkp(i,2):blkp(i+1,2)-1) = exp(bx(i))*ones(1,blk(i,2));
  25.     drighti(blkp(i,1):blkp(i+1,1)-1) = exp(-bx(i))*ones(1,blk(i,1));
  26.   end
  27.   dleft = diag(dleft);
  28.   drighti = diag(drighti);
  29. %
  30. % Copyright MUSYN INC 1991,  All Rights Reserved
  31.