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

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

?? srchbacxc.m

?? 神經網絡預測控制程序的源代碼
?? M
字號:
function [a,gX,perfb,retcode1,delta,tol,Ac] = srchbacxc(net,X,Pd,Tl,Ai,Q,TS,dX,gX,perfa,dperfa,delta,tol,ch_perf)
%SRCHBACXC One-dimensional minimization using backtracking.
%
%  Syntax
%  
%    [a,gX,perfb,retcode1,delta,tol,Ac] = srchbacxc(net,X,Pd,Tl,Ai,Q,TS,dX,gX,perfa,dperfa,delta,tol,ch_perf)
%
%  Description
%
%    SRCHBACXC is a linear search routine.  It searches in a given direction
%     to locate the minimum of the performance function in that direction.
%     It uses a technique called backtracking.
%
%  SRCHBAC(NET,X,Pd,Tl,Ai,Q,TS,dX,gX,PERF,DPERF,DELTA,TOL,CH_PERF) takes these inputs,
%      NET     - Neural network.
%      X       - Vector containing current values of weights and biases.
%      Pd      - Delayed input vectors.
%      Tl      - Layer target vectors.
%      Ai      - Initial input delay conditions.
%      Q       - Batch size.
%      TS      - Time steps.
%      dX      - Search direction vector.
%      gX      - Gradient vector.
%      PERFA   - Performance value at current X.
%      DPERFA  - Slope of performance value at current X in direction of dX.
%      DELTA   - Initial step size.
%      TOL     - Tolerance on search.
%      CH_PERF - Change in performance on previous step.
%    and returns,
%      A       - Step size which minimizes performance.
%      gX      - Gradient at new minimum point.
%      PERF    - Performance value at new minimum point.
%      RETCODE - Return code which has three elements. The first two elements correspond to
%                 the number of function evaluations in the two stages of the search
%                The third element is a return code. These will have different meanings
%                 for different search algorithms. Some may not be used in this function.
%                   0 - normal; 1 - minimum step taken; 2 - maximum step taken;
%                   3 - beta condition not met.
%      DELTA   - New initial step size. Based on the current step size.
%      TOL     - New tolerance on search.
%      Ac      - Final input delay conditions.
%
%    Parameters used for the backstepping algorithm are:
%      alpha     - Scale factor which determines sufficient reduction in perf.
%      beta      - Scale factor which determines sufficiently large step size.
%      low_lim   - Lower limit on change in step size.
%      up_lim    - Upper limit on change in step size.
%      maxstep   - Maximum step length.
%      minstep   - Minimum step length.
%      scale_tol - Parameter which relates the tolerance tol to the initial step
%                   size delta. Usually set to 20.
%     The defaults for these parameters are set in the training function which
%     calls it.  See TRAINCGF, TRAINCGB, TRAINCGP, TRAINBFG, TRAINOSS
%
%    Dimensions for these variables are:
%      Pd - NoxNixTS cell array, each element P{i,j,ts} is a DijxQ matrix.
%      Tl - NlxTS cell array, each element P{i,ts} is an VixQ matrix.
%    Ai - NlxLD cell array, each element Ai{i,k} is an SixQ matrix.
%    Where
%      Ni = net.numInputs
%    Nl = net.numLayers
%    LD = net.numLayerDelays
%      Ri = net.inputs{i}.size
%      Si = net.layers{i}.size
%      Vi = net.targets{i}.size
%      Dij = Ri * length(net.inputWeights{i,j}.delays)
%
%  Network Use
%
%    You can create a standard network that uses SRCHBAC with
%    NEWFF, NEWCF, or NEWELM.
%
%    To prepare a custom network to be trained with TRAINCGF using
%     the line search function SRCHBAC:
%    1) Set NET.trainFcn to 'traincgf'.
%       This will set NET.trainParam to TRAINCGF's default parameters.
%    2) Set NET.trainParam.searchFcn to 'srchbac'.
%
%    The SRCHBAC function can be used with any of the following
%     training functions: TRAINCGF, TRAINCGB, TRAINCGP, TRAINBFG, TRAINOSS.
%
%
%  Examples
%
%    Here is a problem consisting of inputs P and targets T that we would
%    like to solve with a network.
%
%      p = [0 1 2 3 4 5];
%      t = [0 0 0 1 1 1];
%
%    Here a two-layer feed-forward network is created.  The network's
%    input ranges from [0 to 10].  The first layer has two TANSIG
%    neurons, and the second layer has one LOGSIG neuron.  The TRAINCGF
%     network training function and the SRCHBAC search function are used.
%
%      % Create and Test a Network
%      net = newff([0 5],[2 1],{'tansig','logsig'},'traincgf');
%      a = sim(net,p)
%
%      % Train and Retest the Network
%       net.trainParam.searchFcn = 'srchbac';
%      net.trainParam.epochs = 50;
%      net.trainParam.show = 10;
%      net.trainParam.goal = 0.1;
%      net = train(net,p,t);
%      a = sim(net,p)
%
%
%  Algorithm
%
%    SRCHBAC locates the minimum of the performance function in
%    the search direction dX, using the backtracking algorithm 
%    described on page 126 and 328 of Dennis and Schnabel.
%     (Numerical Methods for Unconstrained Optimization and Nonlinear Equations 1983).
%
%  See also SRCHBRE, SRCHCHA, SRCHGOL, SRCHHYB
%
%   References    
%
%     Dennis and Schnabel, Numerical Methods for Unconstrained Optimization
%     and Nonlinear Equations, 1983.

% Orlando De Jesus, Martin Hagan, 1-25-00
% Copyright 1992-2002 The MathWorks, Inc.
% $Revision: 1.6 $ $Date: 2002/04/14 21:12:20 $

% ALGORITHM PARAMETERS
scale_tol = net.trainParam.scale_tol;
alpha = net.trainParam.alpha;
beta = net.trainParam.beta;
low_lim = net.trainParam.low_lim;
up_lim = net.trainParam.up_lim;
maxstep = net.trainParam.maxstep;
minstep = net.trainParam.minstep;
norm_dX = norm(dX);
% 8/8/00 ODJ New minimum lambda may depends on dperfa
minlambda = min([minstep/norm_dX minstep/norm(dperfa)]);
maxlambda = maxstep/norm_dX;
cnt1 = 0;
cnt2 = 0;
start = 1;

% TAKE INITIAL STEP
lambda = 1;
X_temp = X + lambda*dX;
net_temp = setx(net,X_temp);
  
% CALCULATE PERFORMANCE AT NEW POINT
[perfb,E,Ac,N,Zb,Zi,Zl] = calcperf2(net_temp,X_temp,Pd,Tl,Ai,Q,TS);
g_flag = 0;
cnt1 = cnt1 + 1;

count = 0;
% MINIMIZE ALONG A LINE (BACKTRACKING)
retcode = 4;

while retcode>3
  
  count=count+1;

  if (perfb <= perfa + alpha*lambda*dperfa)         %CONDITION ALPHA IS SATISFIED
 
    if (g_flag == 0)
      gX_temp = -calcgxmodref(net_temp,X_temp,Pd,Zb,Zi,Zl,N,Ac,E,perfb,Q,TS);
      dperfb = gX_temp'*dX;
    end
  
    if (dperfb < beta * dperfa)                     %CONDITION BETA IS NOT SATISFIED

    if (start==1) & (norm_dX<maxstep)

    while (perfb<=perfa+alpha*lambda*dperfa)&(dperfb<beta*dperfa)&(lambda<maxlambda)

          % INCREASE STEP SIZE UNTIL BETA CONDITION IS SATISFIED

          lambda_old = lambda;
          perfb_old = perfb;
          lambda = min ([2*lambda maxlambda]);
          X_temp = X + lambda*dX;
          net_temp = setx(net,X_temp);
          [perfb,E,Ac,N,Zb,Zi,Zl] = calcperf2(net_temp,X_temp,Pd,Tl,Ai,Q,TS);
          cnt1 = cnt1 + 1;
          g_flag = 0;
          if (perfb <= perfa+alpha*lambda*dperfa)           
            gX_temp = -calcgxmodref(net_temp,X_temp,Pd,Zb,Zi,Zl,N,Ac,E,perfb,Q,TS);
            dperfb = gX_temp'*dX;
            g_flag = 1;
          end
    end
      end
    
      if (lambda<1) | ((lambda>1)&(perfb>perfa+alpha*lambda*dperfa))
      lambda_lo = min([lambda lambda_old]);
    lambda_diff = abs(lambda_old - lambda);
    
        if (lambda < lambda_old)
          perf_lo = perfb;
          perf_hi = perfb_old;
    else
          perf_lo = perfb_old;
          perf_hi = perfb;
    end
    
        while (dperfb<beta*dperfa)&(lambda_diff>minlambda)
    
          lambda_incr=-dperfb*(lambda_diff^2)/(2*(perf_hi-(perf_lo+dperfb*lambda_diff)));
          if (lambda_incr<0.2*lambda_diff)
        lambda_incr=0.2*lambda_diff;
          end
      
          %UPDATE X
          lambda = lambda_lo + lambda_incr;
          X_temp = X + lambda*dX;
          net_temp = setx(net,X_temp);
          [perfb,E,Ac,N,Zb,Zi,Zl] = calcperf2(net_temp,X_temp,Pd,Tl,Ai,Q,TS);
          g_flag = 0;
          cnt2 = cnt2 + 1;

      if (perfb>perfa+alpha*lambda*dperfa)
            lambda_diff = lambda_incr;
            perf_hi = perfb;
      else
            gX_temp = -calcgxmodref(net_temp,X_temp,Pd,Zb,Zi,Zl,N,Ac,E,perfb,Q,TS);
            dperfb = gX_temp'*dX;
            g_flag = 1;
            if (dperfb<beta*dperfa)
              lambda_lo = lambda;
              lambda_diff = lambda_diff - lambda_incr;
              perf_lo = perfb;
            end
          end

        end
    
        retcode = 0;

        if (dperfb<beta*dperfa)    %COULDN'T SATISFY BETA CONDITION
          perfb = perf_lo;
          lambda = lambda_lo;
          X_temp = X + lambda*dX;
          net_temp = setx(net,X_temp);
          [perfb,E,Ac,N,Zb,Zi,Zl] = calcperf2(net_temp,X_temp,Pd,Tl,Ai,Q,TS);
          g_flag = 0;
          cnt2 = cnt2 + 1;
          retcode = 3;
        end
            
      end

      if (lambda*norm_dX>0.99*maxstep)    % MAXIMUM STEP TAKEN
    retcode = 2;
      end

    else
      
      retcode = 0;
    
      if (lambda*norm_dX>0.99*maxstep)    % MAXIMUM STEP TAKEN
        retcode = 2;
      end

    end

  elseif (lambda<minlambda)   % MINIMUM STEPSIZE REACHED

    retcode = 1;

  else    % CONDITION ALPHA IS NOT SATISFIED - REDUCE THE STEP SIZE

    if (start == 1)
      % FIRST BACKTRACK, QUADRATIC FIT
      lambda_temp = -dperfa/(2*(perfb - perfa - dperfa));

    else
      % LOCATE THE MINIMUM OF THE CUBIC INTERPOLATION
      mat_temp = [1/lambda^2 -1/lambda_old^2; -lambda_old/lambda^2 lambda/lambda_old^2];
      mat_temp = mat_temp/(lambda - lambda_old);
      vec_temp = [perfb - perfa - dperfa*lambda; perfb_old - perfa - lambda_old*dperfa];
  
      cub_coef = mat_temp*vec_temp;
      c1 = cub_coef(1); c2 = cub_coef(2);
      disc = c2^2 - 3*c1*dperfa;
      if c1 == 0
        lambda_temp = -dperfa/(2*c2);
      else
        lambda_temp = (-c2 + sqrt(disc))/(3*c1);
      end
    
    end

    % CHECK TO SEE THAT LAMBDA DECREASES ENOUGH
  if lambda_temp > up_lim*lambda
    lambda_temp = up_lim*lambda;
  end
    
  % SAVE OLD VALUES OF LAMBDA AND FUNCTION DERIVATIVE
  lambda_old = lambda;
    perfb_old = perfb;
    
    
  % CHECK TO SEE THAT LAMBDA DOES NOT DECREASE TOO MUCH
  if lambda_temp < low_lim*lambda
    lambda = low_lim*lambda;
  else
    lambda = lambda_temp;
  end
    
  % COMPUTE PERFORMANCE AND SLOPE AT NEW END POINT
    X_temp = X + lambda*dX;
    net_temp = setx(net,X_temp);
    [perfb,E,Ac,N,Zb,Zi,Zl] = calcperf2(net_temp,X_temp,Pd,Tl,Ai,Q,TS);
    g_flag = 0;
    cnt2 = cnt2 + 1;

  end

start = 0;

end

% 8/8/00 ODJ We update variables if results OK.
if perfb <= perfa
   if (g_flag == 0)
      gX = -calcgxmodref(net_temp,X_temp,Pd,Zb,Zi,Zl,N,Ac,E,perfb,Q,TS);
   else
      gX = gX_temp;
   end

   a = lambda;
else
   perfb=perfa;
   % No change
   a=0;        
end

% CHANGE INITIAL STEP SIZE TO PREVIOUS STEP
delta=a;
if delta < net.trainParam.delta
  delta = net.trainParam.delta;
end
%if tol>delta/scale_tol
  tol=delta/scale_tol;
%end

retcode1 = [cnt1 cnt2 retcode];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区三区一线天视频| 国产精品久久久久久久久久久免费看 | 成人丝袜视频网| 欧美三级三级三级| 国产精品私人影院| 青青草91视频| 精品污污网站免费看| 国产精品第五页| 狠狠色丁香九九婷婷综合五月| 欧美综合色免费| 日本一区二区免费在线观看视频| 日精品一区二区| 欧美三片在线视频观看 | 国产九九视频一区二区三区| 欧美中文字幕一区二区三区亚洲| 国产亚洲精品aa| 日韩vs国产vs欧美| 欧美亚洲国产一卡| 日本成人在线电影网| 99这里只有久久精品视频| 日韩欧美电影一区| 天天av天天翘天天综合网| 日本韩国欧美国产| 中文字幕一区二区三区蜜月| 国产福利不卡视频| 精品国产电影一区二区| 免费高清视频精品| 日韩三级免费观看| 日韩和欧美一区二区三区| 欧美无乱码久久久免费午夜一区| 国产精品久久久久久久久晋中| 国产一区二区三区香蕉| 精品粉嫩超白一线天av| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美美女一区二区| 日本特黄久久久高潮| 欧美日本韩国一区二区三区视频 | 亚洲国产成人精品视频| 欧美在线一区二区三区| 亚洲尤物在线视频观看| 欧洲av一区二区嗯嗯嗯啊| 亚洲一区成人在线| 在线播放国产精品二区一二区四区| 亚洲成a天堂v人片| 日韩一区二区三区精品视频| 美女国产一区二区三区| 欧美岛国在线观看| 国产高清精品久久久久| 国产精品久久久一本精品 | 青青草精品视频| 欧美成人高清电影在线| 国产麻豆精品视频| 综合激情网...| 欧美午夜电影在线播放| 日本亚洲欧美天堂免费| 欧美tickling挠脚心丨vk| 国产一区二区免费看| 亚洲视频在线观看三级| 欧美性大战久久久久久久蜜臀| 肉丝袜脚交视频一区二区| 欧美精品一区二区在线观看| 成人黄色在线视频| 亚洲影院久久精品| 久久久蜜桃精品| 色拍拍在线精品视频8848| 日韩国产高清在线| 国产日韩欧美a| 欧美三级在线视频| 韩国v欧美v日本v亚洲v| 亚洲精品国产一区二区三区四区在线| 欧美日韩国产一区二区三区地区| 韩国欧美国产1区| 亚洲午夜激情网页| 久久久五月婷婷| 欧美日韩国产一区二区三区地区| 国产一区激情在线| 亚洲欧美日韩国产综合在线| 91麻豆精品91久久久久同性| 波波电影院一区二区三区| 五月综合激情网| 自拍偷拍亚洲欧美日韩| 欧美成人a在线| 欧美在线观看一二区| 国产盗摄一区二区| 日韩中文欧美在线| 一区二区三区自拍| 亚洲国产电影在线观看| 日韩欧美不卡在线观看视频| 色一情一伦一子一伦一区| 狠狠色丁香久久婷婷综| 亚洲va在线va天堂| 亚洲三级久久久| 中文字幕乱码久久午夜不卡| 日韩欧美成人一区| 欧美日韩国产精品成人| 91啪在线观看| 成人黄色小视频在线观看| 精品一区二区三区影院在线午夜 | 在线电影国产精品| 日本久久电影网| youjizz国产精品| 国内久久精品视频| 秋霞电影一区二区| 无吗不卡中文字幕| 婷婷国产v国产偷v亚洲高清| 亚洲一区自拍偷拍| 欧美激情一区二区三区在线| 欧美tickle裸体挠脚心vk| 日韩一区和二区| 91精品国产综合久久香蕉麻豆| 欧美日韩亚洲综合在线 | 日韩视频中午一区| 欧美日韩精品一区二区三区| 欧美亚洲一区二区在线观看| 日本电影欧美片| 色猫猫国产区一区二在线视频| 99在线精品视频| 91麻豆国产精品久久| 91亚洲男人天堂| 色94色欧美sute亚洲线路一ni | 欧美日本一区二区三区四区| 在线视频一区二区三区| 欧美三级日韩在线| 欧美一区二区在线看| 欧美成人精品1314www| 精品三级av在线| 久久久一区二区三区| 亚洲国产精品成人综合| 亚洲欧洲av另类| 亚洲午夜影视影院在线观看| 香港成人在线视频| 久久99久久久久久久久久久| 狠狠色伊人亚洲综合成人| 懂色av中文一区二区三区| 91网站视频在线观看| 在线观看视频一区二区欧美日韩| 欧美三级视频在线观看| 欧美一二三在线| 中文字幕乱码久久午夜不卡| 一区二区三区国产精品| 丝瓜av网站精品一区二区 | 亚洲国产人成综合网站| 日韩在线观看一区二区| 国产精品一二二区| 91麻豆福利精品推荐| 欧美一区二区大片| 国产日韩精品一区二区浪潮av| ㊣最新国产の精品bt伙计久久| 一区二区三区中文字幕在线观看| 日韩不卡在线观看日韩不卡视频| 国内精品免费**视频| 97精品久久久久中文字幕| 欧美美女一区二区三区| 国产人妖乱国产精品人妖| 亚洲乱码国产乱码精品精小说| 日韩av中文在线观看| 成人国产精品视频| 欧美二区三区91| 国产精品福利一区二区| 日韩av中文字幕一区二区| 成人18视频在线播放| 日韩一区二区三免费高清| 国产精品午夜春色av| 日韩国产高清在线| 97久久精品人人做人人爽50路| 91精品综合久久久久久| 综合久久久久综合| 久久国产剧场电影| 欧美在线一二三| 国产精品国模大尺度视频| 蜜臀久久99精品久久久画质超高清| 成人国产精品免费观看视频| 日韩精品在线一区| 亚洲一区二区三区四区在线免费观看| 国模娜娜一区二区三区| 欧美亚洲一区二区在线| 国产精品国产三级国产普通话蜜臀| 蜜桃精品视频在线| 欧美色偷偷大香| 亚洲三级在线免费| 成人av午夜影院| 久久精品视频在线看| 男女视频一区二区| 欧美人妇做爰xxxⅹ性高电影| 国产精品久久久久久久久晋中 | 久久日一线二线三线suv| 亚洲va在线va天堂| 欧美在线啊v一区| 亚洲欧美另类小说| 99久久国产综合精品色伊| 欧美韩国一区二区| 国产精品99久久久久久似苏梦涵| 日韩一区二区免费视频| 人人狠狠综合久久亚洲| 欧美精品 国产精品| 香蕉成人啪国产精品视频综合网 | 国产黄人亚洲片| 久久综合久久久久88| 久久精品999| 欧美va日韩va|