亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? csminwel.m

?? 最優化的bfgs算法
?? M
字號:
function [fh,xh,gh,H,itct,fcount,retcodeh] = csminwel(fcn,x0,H0,grad,crit,nit,varargin)%[fhat,xhat,ghat,Hhat,itct,fcount,retcodehat] = csminwel(fcn,x0,H0,grad,crit,nit,varargin)% fcn:   string naming the objective function to be minimized% x0:    initial value of the parameter vector% H0:    initial value for the inverse Hessian.  Must be positive definite.% grad:  Either a string naming a function that calculates the gradient, or the null matrix.%        If it's null, the program calculates a numerical gradient.  In this case fcn must%        be written so that it can take a matrix argument and produce a row vector of values.% crit:  Convergence criterion.  Iteration will cease when it proves impossible to improve the%        function value by more than crit.% nit:   Maximum number of iterations.% varargin: A list of optional length of additional parameters that get handed off to fcn each%        time it is called.%        Note that if the program ends abnormally, it is possible to retrieve the current x,%        f, and H from the files g1.mat and H.mat that are written at each iteration and at each%        hessian update, respectively.  (When the routine hits certain kinds of difficulty, it%        write g2.mat and g3.mat as well.  If all were written at about the same time, any of them%        may be a decent starting point.  One can also start from the one with best function value.)[nx,no]=size(x0);nx=max(nx,no);Verbose=1;NumGrad= isempty(grad);done=0;itct=0;fcount=0;snit=100;%tailstr = ')';%stailstr = [];% Lines below make the number of Pi's optional.  This is inefficient, though, and precludes% use of the matlab compiler.  Without them, we use feval and the number of Pi's must be% changed with the editor for each application.  Places where this is required are marked% with ARGLIST comments%for i=nargin-6:-1:1%   tailstr=[ ',P' num2str(i)  tailstr];%   stailstr=[' P' num2str(i) stailstr];%endf0 = feval(fcn,x0,varargin{:});%ARGLIST%f0 = feval(fcn,x0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13);% disp('first fcn in csminwel.m ----------------') % Jinill on 9/5/95if f0 > 1e50, disp('Bad initial parameter.'), return, endif NumGrad   if length(grad)==0      [g badg] = numgrad(fcn,x0, varargin{:});      %ARGLIST      %[g badg] = numgrad(fcn,x0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13);   else      badg=any(find(grad==0));      g=grad;   end   %numgrad(fcn,x0,P1,P2,P3,P4);else   [g badg] = feval(grad,x0,varargin{:});   %ARGLIST   %[g badg] = feval(grad,x0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13);endretcode3=101;x=x0;f=f0;H=H0;cliff=0;while ~done   g1=[]; g2=[]; g3=[];   %addition fj. 7/6/94 for control   disp('-----------------')   disp('-----------------')   %disp('f and x at the beginning of new iteration')   disp(sprintf('f at the beginning of new iteration, %20.10f',f))   %-----------Comment out this line if the x vector is long----------------      disp([sprintf('x = ') sprintf('%15.8g %15.8g %15.8g %15.8g\n',x)]);   %-------------------------   itct=itct+1;   [f1 x1 fc retcode1] = csminit(fcn,x,f,g,badg,H,varargin{:});   %ARGLIST   %[f1 x1 fc retcode1] = csminit(fcn,x,f,g,badg,H,P1,P2,P3,P4,P5,P6,P7,...   %           P8,P9,P10,P11,P12,P13);   % itct=itct+1;   fcount = fcount+fc;   % erased on 8/4/94   % if (retcode == 1) | (abs(f1-f) < crit)   %    done=1;   % end   % if itct > nit   %    done = 1;   %    retcode = -retcode;   % end   if retcode1 ~= 1      if retcode1==2 | retcode1==4         wall1=1; badg1=1;      else         if NumGrad            [g1 badg1] = numgrad(fcn, x1,varargin{:});            %ARGLIST            %[g1 badg1] = numgrad(fcn, x1,P1,P2,P3,P4,P5,P6,P7,P8,P9,...            %                P10,P11,P12,P13);         else            [g1 badg1] = feval(grad,x1,varargin{:});            %ARGLIST            %[g1 badg1] = feval(grad, x1,P1,P2,P3,P4,P5,P6,P7,P8,P9,...            %                P10,P11,P12,P13);         end         wall1=badg1;         % g1         save g1 g1 x1 f1 varargin;         %ARGLIST         %save g1 g1 x1 f1 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13;      end      if wall1 & (length(H) > 1)%          % Bad gradient or back and forth on step length.  Possibly at         % cliff edge.  Try perturbing search direction if problem not 1D         %         %fcliff=fh;xcliff=xh;         Hcliff=H+diag(diag(H).*rand(nx,1));         disp('Cliff.  Perturbing search direction.')         [f2 x2 fc retcode2] = csminit(fcn,x,f,g,badg,Hcliff,varargin{:});         %ARGLIST         %[f2 x2 fc retcode2] = csminit(fcn,x,f,g,badg,Hcliff,P1,P2,P3,P4,...         %     P5,P6,P7,P8,P9,P10,P11,P12,P13);         fcount = fcount+fc; % put by Jinill         if  f2 < f            if retcode2==2 | retcode2==4                  wall2=1; badg2=1;            else               if NumGrad                  [g2 badg2] = numgrad(fcn, x2,varargin{:});                  %ARGLIST                  %[g2 badg2] = numgrad(fcn, x2,P1,P2,P3,P4,P5,P6,P7,P8,...                  %      P9,P10,P11,P12,P13);               else                  [g2 badg2] = feval(grad,x2,varargin{:});                  %ARGLIST                  %[g2 badg2] = feval(grad,x2,P1,P2,P3,P4,P5,P6,P7,P8,...                  %      P9,P10,P11,P12,P13);               end               wall2=badg2;               % g2               badg2               save g2 g2 x2 f2 varargin               %ARGLIST               %save g2 g2 x2 f2 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13;            end            if wall2               disp('Cliff again.  Try traversing')               if norm(x2-x1) < 1e-13                  f3=f; x3=x; badg3=1;retcode3=101;               else                  gcliff=((f2-f1)/((norm(x2-x1))^2))*(x2-x1);                  if(size(x0,2)>1), gcliff=gcliff', end                  [f3 x3 fc retcode3] = csminit(fcn,x,f,gcliff,0,eye(nx),varargin{:});                  %ARGLIST                  %[f3 x3 fc retcode3] = csminit(fcn,x,f,gcliff,0,eye(nx),P1,P2,P3,...                  %         P4,P5,P6,P7,P8,...                  %      P9,P10,P11,P12,P13);                  fcount = fcount+fc; % put by Jinill                  if retcode3==2 | retcode3==4                     wall3=1; badg3=1;                  else                     if NumGrad                        [g3 badg3] = numgrad(fcn, x3,varargin{:});                        %ARGLIST                        %[g3 badg3] = numgrad(fcn, x3,P1,P2,P3,P4,P5,P6,P7,P8,...                        %                        P9,P10,P11,P12,P13);                     else                        [g3 badg3] = feval(grad,x3,varargin{:});                        %ARGLIST                        %[g3 badg3] = feval(grad,x3,P1,P2,P3,P4,P5,P6,P7,P8,...                        %                         P9,P10,P11,P12,P13);                     end                     wall3=badg3;                     % g3                     badg3                     save g3 g3 x3 f3 varargin;                     %ARGLIST                     %save g3 g3 x3 f3 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13;                  end               end            else               f3=f; x3=x; badg3=1; retcode3=101;            end         else            f3=f; x3=x; badg3=1;retcode3=101;         end      else         % normal iteration, no walls, or else 1D, or else we're finished here.         f2=f; f3=f; badg2=1; badg3=1; retcode2=101; retcode3=101;      end   else       f2=f;f3=f;f1=f;retcode2=retcode1;retcode3=retcode1;   end   %how to pick gh and xh   if f3 < f - crit & badg3==0      ih=3      fh=f3;xh=x3;gh=g3;badgh=badg3;retcodeh=retcode3;   elseif f2 < f - crit & badg2==0      ih=2      fh=f2;xh=x2;gh=g2;badgh=badg2;retcodeh=retcode2;   elseif f1 < f - crit & badg1==0      ih=1      fh=f1;xh=x1;gh=g1;badgh=badg1;retcodeh=retcode1;   else      [fh,ih] = min([f1,f2,f3]);      disp(sprintf('ih = %d',ih))      %eval(['xh=x' num2str(ih) ';'])      switch ih         case 1            xh=x1;         case 2            xh=x2;         case 3            xh=x3;      end %case      %eval(['gh=g' num2str(ih) ';'])      %eval(['retcodeh=retcode' num2str(ih) ';'])      retcodei=[retcode1,retcode2,retcode3];      retcodeh=retcodei(ih);      if exist('gh')         nogh=isempty(gh);      else         nogh=1;      end      if nogh         if NumGrad            [gh badgh] = numgrad(fcn,xh,varargin{:});         else            [gh badgh] = feval(grad, xh,varargin{:});         end      end      badgh=1;   end   %end of picking   %ih   %fh   %xh   %gh   %badgh   stuck = (abs(fh-f) < crit);   if (~badg)&(~badgh)&(~stuck)      H = bfgsi(H,gh-g,xh-x);   end   if Verbose      disp('----')      disp(sprintf('Improvement on iteration %d = %18.9f',itct,f-fh))   end   % if Verbose      if itct > nit         disp('iteration count termination')         done = 1;      elseif stuck         disp('improvement < crit termination')         done = 1;      end      rc=retcodeh;      if rc == 1         disp('zero gradient')      elseif rc == 6         disp('smallest step still improving too slow, reversed gradient')      elseif rc == 5         disp('largest step still improving too fast')      elseif (rc == 4) | (rc==2)         disp('back and forth on step length never finished')      elseif rc == 3         disp('smallest step still improving too slow')      elseif rc == 7         disp('warning: possible inaccuracy in H matrix')      end   % end   f=fh;   x=xh;   g=gh;   badg=badgh;end% what about making an m-file of 10 lines including numgrad.m% since it appears three times in csminwel.m

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃视频在线观看一区二区| 日韩和欧美一区二区| 国产精品白丝在线| 日韩影院免费视频| 91精品国产综合久久精品麻豆 | 日韩一区二区三区电影| 日韩欧美第一区| 一区二区免费在线播放| 国产激情偷乱视频一区二区三区 | 亚洲综合激情另类小说区| 亚洲欧美日韩成人高清在线一区| 伊人婷婷欧美激情| 色婷婷激情一区二区三区| 日韩一区二区三区视频在线观看| 国产九色sp调教91| 日韩美女视频在线| 91麻豆国产香蕉久久精品| 91精品欧美一区二区三区综合在| av综合在线播放| 精品乱人伦小说| 黄色成人免费在线| xf在线a精品一区二区视频网站| 国产精品国产三级国产普通话三级| 欧美日韩和欧美的一区二区| 亚洲r级在线视频| 欧美一二三区在线观看| 欧美亚洲日本国产| 亚洲最新视频在线观看| 国产精品区一区二区三区| 经典三级在线一区| 综合欧美亚洲日本| 欧美乱熟臀69xxxxxx| 极品美女销魂一区二区三区| 亚洲一二三四在线观看| 一二三四社区欧美黄| 亚洲二区在线视频| 亚洲欧洲韩国日本视频| 欧美福利视频一区| 精品国产免费人成电影在线观看四季| 国产99精品国产| 亚洲午夜精品17c| 久久99精品一区二区三区| 国产99久久久国产精品免费看| av成人免费在线观看| 欧美一区二区三区视频免费| 狠狠色2019综合网| 色中色一区二区| 日韩精品一区二区三区在线观看| 欧美男女性生活在线直播观看| 成人激情综合网站| 三级影片在线观看欧美日韩一区二区 | 福利一区二区在线| 欧洲一区在线电影| 99久久久久久| 老司机一区二区| 日韩国产精品91| 亚洲尤物视频在线| 成人免费看的视频| 91小视频在线免费看| 中文字幕欧美区| 国产精品久久久久久久久晋中 | 日韩免费福利电影在线观看| 亚洲三级在线看| 9l国产精品久久久久麻豆| 在线不卡一区二区| 亚洲成av人片一区二区三区 | 91在线精品一区二区| 日本一区二区三区高清不卡| 亚洲精选一二三| 舔着乳尖日韩一区| 亚洲丰满少妇videoshd| 国产一区二区三区不卡在线观看| 奇米精品一区二区三区在线观看 | 精品国产3级a| 亚洲香肠在线观看| gogo大胆日本视频一区| 久久久久免费观看| 国产精品久久久久久久第一福利| 中文字幕一区二区三区av| 天堂一区二区在线| 日本韩国一区二区| 欧美少妇一区二区| 中文字幕亚洲在| 久久99蜜桃精品| 国产精品免费视频一区| 亚洲va欧美va天堂v国产综合| 成人国产精品免费| 国产欧美1区2区3区| 精品一区二区三区蜜桃| 欧美一级精品在线| 日韩综合小视频| 欧美老女人在线| 日韩成人伦理电影在线观看| 在线精品视频小说1| 亚洲一级二级三级| 欧洲一区二区av| 亚洲电影视频在线| 4438x成人网最大色成网站| 一区二区三区欧美激情| 在线看不卡av| 日本一区二区综合亚洲| 欧美tickling网站挠脚心| 欧美亚洲自拍偷拍| 99精品久久久久久| aaa亚洲精品一二三区| 国产成人综合在线观看| 免费久久精品视频| 亚洲成av人片一区二区梦乃| 亚洲在线中文字幕| 亚洲一二三四久久| 亚洲精品视频免费看| 最好看的中文字幕久久| 18欧美亚洲精品| 亚洲少妇中出一区| 香蕉成人伊视频在线观看| 五月天中文字幕一区二区| 午夜伦理一区二区| 国产一区二区不卡在线| 福利一区二区在线| 欧美三级乱人伦电影| 日韩电影免费一区| 国产精品一二一区| 成人精品一区二区三区中文字幕| 99久久精品国产导航| 欧美色视频一区| 91精品在线观看入口| 久久久美女毛片| 亚洲夂夂婷婷色拍ww47 | 久久99精品久久久久久动态图 | 高清国产午夜精品久久久久久| 成人动漫一区二区| 6080亚洲精品一区二区| 欧美激情艳妇裸体舞| 日韩vs国产vs欧美| 91丨porny丨最新| 日韩精品一区二区三区中文精品| 国产精品丝袜在线| 国内精品久久久久影院薰衣草| 日本丶国产丶欧美色综合| 久久久亚洲国产美女国产盗摄| 亚洲午夜免费视频| 91尤物视频在线观看| 欧美精品一区二区三区久久久| 亚洲综合色成人| av日韩在线网站| 综合色天天鬼久久鬼色| 成人小视频在线观看| 精品国产伦一区二区三区观看体验 | 成人小视频免费在线观看| 精品国产污污免费网站入口 | 亚洲一区二区三区美女| 99久久免费国产| 亚洲天堂av一区| 日本韩国视频一区二区| 一二三区精品福利视频| 欧美日韩一本到| 免费成人av在线| 亚洲精品一线二线三线无人区| 久久9热精品视频| 久久午夜色播影院免费高清 | av亚洲产国偷v产偷v自拍| 最近中文字幕一区二区三区| 国产99久久久国产精品潘金网站| 2欧美一区二区三区在线观看视频| 日韩av电影免费观看高清完整版在线观看| 丁香六月久久综合狠狠色| 日韩精品一区二区三区三区免费| 亚洲风情在线资源站| 99国产精品久久久久久久久久 | 亚洲男女毛片无遮挡| 色综合久久中文字幕综合网| 午夜激情一区二区三区| 欧美精品久久一区| 久久精品二区亚洲w码| 日韩一区二区高清| 国产精品18久久久久久vr| 国产精品久久久久久亚洲伦| 欧美高清视频一二三区| 国产中文字幕精品| 一区二区三区 在线观看视频| 国产无遮挡一区二区三区毛片日本| 亚洲综合色视频| 久久久久成人黄色影片| 3d成人h动漫网站入口| 国产精品18久久久久久久久| 亚洲美女淫视频| 亚洲天堂av一区| 久久久久久久久久美女| 欧洲人成人精品| 色乱码一区二区三区88| 国产美女一区二区| 亚洲精品久久久蜜桃| 中文字幕在线一区免费| 欧美日韩精品一区视频| 久久成人综合网| 国产精品伊人色| 久久99国产精品麻豆| 蜜桃91丨九色丨蝌蚪91桃色| 午夜av一区二区三区| 亚洲一区视频在线|