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

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

?? lst_sq.m

?? matlab文獻,用于基礎的編程用,對于初學者有很大的幫助,希望能提供便利
?? M
字號:
%function [x,OPTIONS] = lst_sq(FUN,x,OPTIONS,GRADFUN,time_out,P1,P2,P3,P4,P5,P6,P7,P8,P9,
P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20,P21)
% See leastsq.m for usage. Modified to time-out after "time_out" seconds.
%
%       X=LST_SQ('FUN',X,OPTIONS,GRADFUN,time_out,P1,P2,..) allows
%       coefficients, P1, P2, ... to be passed directly to FUN:
%       F=FUN(X,P1,P2,...). Empty arguments ([]) are ignored.

% Author             Date     Predecessor   Modification
% ======             ====     ===========   ============
% B.McKay M.Willis   25/5/95  leastsq.m     use etime instead of tic/toc
% J. Elsey           31/7/95  lst_sq.m      increase the number of allowable inputs
% B.McKay	     6/10/95     -          returns latest x in case of time out (rather than initial)
% 
% Function Calls:   
% ===============    
%
% Last Modification: 6/10/95
% =================
%

function [x,OPTIONS] = lst_sq(FUN,x,OPTIONS,GRADFUN,time_out,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,
P12,P13,P14,P15,P16,P17,P18,P19,P20,P21)

global optimea optimeb optimec;

% ------------Initialization----------------
t1=clock;

x_initial = x;
XOUT=x(:);
[nvars]=length(XOUT);

evalstr = [FUN];
if ~any(FUN<48)
        evalstr=[evalstr, '(x'];
        
        optimes=clock;
        
        for i=1:nargin - 4
                evalstr = [evalstr,',P',num2str(i)];
        end
        
        optimef=clock;
        optimea=optimea+etime(optimef,optimes);
        evalstr = [evalstr, ')'];
end


if nargin < 3, OPTIONS=[]; end
if nargin < 4, GRADFUN=[]; end

if length(GRADFUN)
        evalstr2 = [GRADFUN];
        if ~any(GRADFUN<48)
                evalstr2 = [evalstr2, '(x'];
                
                optimes=clock;
                
                for i=1:nargin - 4
                    evalstr2 = [evalstr2,',P',num2str(i)];
                end
                
                optimef=clock;
                optimeb=optimeb+etime(optimef,optimes);
                
                evalstr2 = [evalstr2, ')'];
        end
end

f = eval(evalstr);
f=f(:);
nfun=length(f);
GRAD=zeros(length(XOUT),nfun);

OLDX=XOUT;
MATX=zeros(3,1);
MATL=[f'*f;0;0];
OLDF=f'*f;
FIRSTF=f'*f;
[OLDX,OLDF,OPTIONS]=lsint(XOUT,f,OPTIONS);
EstSum=0.5;
GradFactor=0; 

CHG = 1e-7*abs(XOUT)+1e-7*ones(nvars,1);

OPTIONS(10)=1;
status=-1;

while status~=1
if etime(clock,t1) > time_out; x(:)=OLDX; return; end

% Work Out Gradients
        if ~length(GRADFUN) | OPTIONS(9)
                OLDF=f;
                
                CHG = sign(CHG+eps).*min(max(abs(CHG),OPTIONS(16)),OPTIONS(17));
                
                optimes=clock;
                
                for gcnt=1:nvars
                    if XOUT==[] | any(isnan(XOUT(:)))==1 | any(XOUT(:)==inf)==1 | any(...
                       XOUT(:)==-inf)==1,
                       x=x_initial;return, end;
                    
                    temp = XOUT(gcnt);
                    XOUT(gcnt) = temp +CHG(gcnt);
                    x(:) = XOUT;
                    f(:) = eval(evalstr);
                    GRAD(gcnt,:)=(f-OLDF)'/(CHG(gcnt));
                    XOUT(gcnt) = temp;
                end
                
                optimef=clock;
                optimec=optimec+etime(optimef,optimes);
                
                f = OLDF;
                OPTIONS(10)=OPTIONS(10)+nvars;
% Gradient check
                if OPTIONS(9) == 1
                    GRADFD = GRAD;
                    x(:)=XOUT; GRAD = eval(evalstr2);
                    graderr(GRADFD, GRAD, evalstr2);
                    OPTIONS(9) = 0;
                end
        else
                x(:) = XOUT;
                OPTIONS(11)=OPTIONS(11)+1;
                GRAD = eval(evalstr2);
        end
        % Try to set difference to 1e-8 for next iteration
        if nfun==1
                CHG = nfun*1e-8./GRAD;
        else
                CHG = nfun*1e-8./sum(abs(GRAD)')';
        end

        gradf = 2*GRAD*f;
        fnew = f'*f;
%---------------Initialization of Search Direction------------------
        if status==-1
                if GRAD==[] | any(isnan(GRAD(:)))==1 | any(GRAD(:)==inf)==1 | any(...
                   GRAD(:)==-inf)==1,
                x=x_initial;return, end;
                
                if cond(GRAD)>1e8
                    SD=-(GRAD*GRAD'+(norm(GRAD)+1)*(eye(nvars)))\(GRAD*f);
                    if OPTIONS(5)==0, GradFactor=norm(GRAD)+1; end
                    how='COND';
                else
%               SD=GRAD'\(GRAD'*X-F)-X;
                    SD=-(GRAD*GRAD'+GradFactor*(eye(nvars)))\(GRAD*f);
                end
                FIRSTF=fnew;
                OLDG=GRAD;
                GDOLD=gradf'*SD;
                OPTIONS(18)=1;
                if OPTIONS(1)>0
                    disp([sprintf('%5.0f %12.3g %12.3g ',OPTIONS(10),fnew,OPTIONS(18)),
                                sprintf('%12.3g  ',GDOLD)]);
                end
                XOUT=XOUT+OPTIONS(18)*SD;
                if OPTIONS(5)==0
                    newf=GRAD'*SD+f;
                    GradFactor=newf'*newf;
                    SD=-(GRAD*GRAD'+GradFactor*(eye(nvars)))\(GRAD*f); 
                end
                newf=GRAD'*SD+f;
                XOUT=XOUT+OPTIONS(18)*SD;
                EstSum=newf'*newf;
                status=0;
                if OPTIONS(7)==0; PCNT=1; end
                
        else
%-------------Direction Update------------------
                gdnew=gradf'*SD;
                if OPTIONS(1)>0, 
                    num=[sprintf('%5.0f %12.3g %12.3g ',OPTIONS(10),fnew,OPTIONS(18))
                               ,sprintf('%12.3g  ',gdnew)];
                end
                if gdnew>0 & fnew>FIRSTF

% Case 1: New function is bigger than last and gradient w.r.t. SD -ve
% ... interpolate. 
                    how='inter';
                    [stepsize]=cubici1(fnew,FIRSTF,gdnew,GDOLD,OPTIONS(18));
                    OPTIONS(18)=0.9*stepsize;
                elseif fnew<FIRSTF

%  New function less than old fun. and OK for updating 
%         .... update and calculate new direction. 
                    [newstep,fbest] =cubici3(fnew,FIRSTF,gdnew,GDOLD,OPTIONS(18));
                    if fbest>fnew,fbest=0.9*fnew; end 
                    if gdnew<0
                        how='incstep';
                        if newstep<OPTIONS(18),  newstep=(2*OPTIONS(18)+1e-4);
                                  how=[how,'IF']; end
                        OPTIONS(18)=abs(newstep);
                    else 
                        if OPTIONS(18)>0.9
                            how='int_step';
                            OPTIONS(18)=min([1,abs(newstep)]);
                        end
                    end
% SET DIRECTION.
% Gauss-Newton Method    
                    temp=1;
                    if OPTIONS(5)==1 
                        if OPTIONS(18)>1e-8 & cond(GRAD)<1e8
                            SD=GRAD'\(GRAD'*XOUT-f)-XOUT;
                            if SD'*gradf>eps,how='ERROR- GN not descent direction',  end
                            temp=0;
                        else
                            if OPTIONS(1) > 0
                                disp('Conditioning of Gradient Poor - Switching To LM method')
                            end
                            how='CHG2LM';
                            OPTIONS(5)=0;
                            OPTIONS(18)=abs(OPTIONS(18));                               
                        end
                    end
                    
                    if (temp)      
% Levenberg_marquardt Method N.B. EstSum is the estimated sum of squares.
%                                 GradFactor is the value of lambda.
% Estimated Residual:
                        if EstSum>fbest
                            GradFactor=GradFactor/(1+OPTIONS(18));
                        else
                            GradFactor=GradFactor+(fbest-EstSum)/(OPTIONS(18)+eps);
                        end
                        SD=-(GRAD*GRAD'+GradFactor*(eye(nvars)))\(GRAD*f); 
                        OPTIONS(18)=1; 
                        estf=GRAD'*SD+f;
                        EstSum=estf'*estf;
                        if OPTIONS(1)>0, num=[num,sprintf('%12.3g ',GradFactor)]; end
                    end
                    gdnew=gradf'*SD;

                    OLDX=XOUT;
% Save Variables
                    FIRSTF=fnew;
                    OLDG=gradf;
                    GDOLD=gdnew;        

                    % If quadratic interpolation set PCNT
                    if OPTIONS(7)==0, PCNT=1; MATX=zeros(3,1);  MATL(1)=fnew; end
                else 
% Halve Step-length
                    how='Red_Step';
                    if fnew==FIRSTF,
                        if OPTIONS(1)>0,
                            disp('No improvement in search direction: Terminating')
                        end
                        status=1;
                    else
                        OPTIONS(18)=OPTIONS(18)/8;
                        if OPTIONS(18)<1e-8
                            OPTIONS(18)=-OPTIONS(18);
                        end
                    end
                end
                XOUT=OLDX+OPTIONS(18)*SD;
                if OPTIONS(1)>0,disp([num,how]),end

        end %----------End of Direction Update-------------------
        if OPTIONS(7)==0, PCNT=1; MATX=zeros(3,1);  MATL(1)=fnew; end
% Check Termination 
  if max(abs(SD))< OPTIONS(2) & (gradf'*SD) < OPTIONS(3) & max(abs(gradf)) < 
                                                              10*(OPTIONS(3)+OPTIONS(2))
                if OPTIONS(1) > 0
                    disp('Optimization Terminated Successfully')  
                end
                status=1; 
        elseif OPTIONS(10)>OPTIONS(14)
                disp('maximum number of iterations has been exceeded');
                if OPTIONS(1)>0
                    disp('Increase OPTIONS(14)')
                end
                status=1;
        else

% Line search using mixed polynomial interpolation and extrapolation.
                if PCNT~=0
                    while PCNT > 0
                    if etime(clock,t1) > time_out; x(:)=OLDX;; return; end
                    
                        x(:) = XOUT; f(:)  = eval(evalstr); OPTIONS(10)=OPTIONS(10)+1;
                        fnew = f'*f;
                        if fnew<OLDF'*OLDF, OX = XOUT; OLDF=f; end
   [PCNT,MATL,MATX,steplen,fnew,how]=searchq(PCNT,fnew,OLDX,MATL,MATX,SD,GDOLD,OPTIONS(18),how);
                        OPTIONS(18)=steplen;
                        XOUT=OLDX+steplen*SD;
                        if fnew==FIRSTF,  PCNT=0; end
                    end
                    XOUT = OX;
                    f=OLDF;
                else
                    x(:)=XOUT; f(:) = eval(evalstr); OPTIONS(10)=OPTIONS(10)+1;
                end
        end
end
OPTIONS(8) = fnew;
XOUT=OLDX;
x(:)=XOUT;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美123| 欧美一级黄色大片| 日韩av高清在线观看| 久久久精品免费免费| 欧美日韩中文另类| 盗摄精品av一区二区三区| 亚洲国产中文字幕| 国产精品丝袜91| 日韩女优av电影在线观看| 91成人国产精品| 成人午夜精品在线| 久久激情五月激情| 亚洲成人激情社区| 国产精品九色蝌蚪自拍| 精品国产制服丝袜高跟| 欧美三级韩国三级日本一级| 成人99免费视频| 国产精品综合av一区二区国产馆| 亚洲成人免费在线观看| 综合av第一页| 国产网站一区二区| 欧美草草影院在线视频| 欧美午夜精品理论片a级按摩| 成人综合在线视频| 精品一区二区在线视频| 日韩av二区在线播放| 亚洲一区二区影院| 亚洲欧美成人一区二区三区| 久久久精品黄色| 欧美精品一区二区久久久| 91精品国产入口在线| 欧美日韩精品一二三区| 在线免费观看视频一区| 91亚洲国产成人精品一区二三| 国产宾馆实践打屁股91| 国产一区二三区好的| 九一久久久久久| 久久不见久久见免费视频1| 日本特黄久久久高潮| 丝袜诱惑制服诱惑色一区在线观看| 亚洲免费伊人电影| 亚洲欧美电影院| 一区二区三区国产精品| 亚洲男人的天堂在线aⅴ视频| 国产精品理论片| 国产精品成人免费精品自在线观看| 国产婷婷精品av在线| 国产午夜精品久久久久久免费视 | 亚洲第一主播视频| 五月婷婷另类国产| 男女男精品视频| 韩国欧美一区二区| 亚洲午夜国产一区99re久久| 欧美日韩另类国产亚洲欧美一级| 99久久免费视频.com| 93久久精品日日躁夜夜躁欧美| 99精品久久只有精品| 99热这里都是精品| 91高清视频免费看| 欧美调教femdomvk| 欧美妇女性影城| 欧美v日韩v国产v| 久久久电影一区二区三区| 成人免费在线视频| 亚洲午夜在线视频| 免费观看久久久4p| 国产激情视频一区二区在线观看 | 乱中年女人伦av一区二区| 紧缚奴在线一区二区三区| 国产激情视频一区二区在线观看| 99riav久久精品riav| 欧美久久一区二区| 久久久噜噜噜久久中文字幕色伊伊 | 欧美一二三在线| 久久精品这里都是精品| 成人免费一区二区三区视频| 亚洲主播在线观看| 韩国v欧美v亚洲v日本v| 99麻豆久久久国产精品免费优播| 欧美午夜不卡在线观看免费| 日韩女优av电影| 中文字幕日本乱码精品影院| 亚洲图片欧美一区| 国产在线播放一区| 在线免费观看日本一区| 精品99久久久久久| 亚洲精品成人悠悠色影视| 奇米影视7777精品一区二区| 成人免费福利片| 7777精品伊人久久久大香线蕉的| 久久蜜臀精品av| 亚洲va国产天堂va久久en| 国产美女在线精品| 欧美私模裸体表演在线观看| 久久久99久久精品欧美| 亚洲一区在线电影| 国产91高潮流白浆在线麻豆| 欧美日韩二区三区| 亚洲欧洲av一区二区三区久久| 免费观看成人鲁鲁鲁鲁鲁视频| 色综合久久综合网欧美综合网| 欧美成人一区二区三区在线观看| 亚洲另类中文字| 国产a区久久久| 日韩一区二区三区四区五区六区| 中文字幕一区二区在线播放| 激情av综合网| 欧美另类一区二区三区| 综合婷婷亚洲小说| 国产精品一区二区在线看| 欧美精品自拍偷拍动漫精品| 亚洲日本在线视频观看| 国产精品888| 精品久久免费看| 三级欧美在线一区| 99在线精品视频| 久久综合久久99| 亚洲综合激情另类小说区| 北岛玲一区二区三区四区| 日韩一级片网址| 亚洲日本青草视频在线怡红院 | 精品影院一区二区久久久| 欧美影视一区二区三区| 日本一区二区三区电影| 日韩av中文字幕一区二区| 色香蕉成人二区免费| 欧美电影在哪看比较好| 亚洲国产成人porn| 99热国产精品| 亚洲国产高清不卡| 狠狠v欧美v日韩v亚洲ⅴ| 在线一区二区三区四区五区 | 夜夜嗨av一区二区三区网页| 国产精品亚洲一区二区三区妖精| 欧美美女一区二区三区| 亚洲男人天堂av| 91久久人澡人人添人人爽欧美| 国产色91在线| 黄一区二区三区| 日韩一区二区在线看| 三级成人在线视频| 色一情一乱一乱一91av| 综合亚洲深深色噜噜狠狠网站| 国产91清纯白嫩初高中在线观看| 日韩欧美美女一区二区三区| 手机精品视频在线观看| 欧美猛男男办公室激情| 亚洲国产精品久久久久秋霞影院| 欧洲av一区二区嗯嗯嗯啊| 亚洲另类色综合网站| 91一区一区三区| 亚洲一区二区三区激情| 欧美性大战久久| 国产精品欧美一级免费| 91亚洲午夜精品久久久久久| 亚洲免费看黄网站| 91福利精品视频| 亚洲一区二区欧美日韩| 欧美老人xxxx18| 丝袜美腿亚洲综合| 91精品婷婷国产综合久久竹菊| 午夜久久电影网| 91麻豆精品国产91久久久使用方法| 美女性感视频久久| 日韩亚洲欧美高清| 久久99精品久久久久久| 久久天天做天天爱综合色| 日韩高清在线观看| 国产欧美一区二区三区沐欲| 国产99久久久国产精品| 中文字幕亚洲在| 色吊一区二区三区| 亚洲一区二区在线观看视频| 欧美午夜在线观看| 日韩和欧美的一区| 2欧美一区二区三区在线观看视频| 婷婷丁香激情综合| 国产欧美日韩在线观看| 97久久久精品综合88久久| 亚洲激情五月婷婷| 欧美日韩免费一区二区三区视频| 肉肉av福利一精品导航| 欧美mv日韩mv国产网站| 国产成人啪免费观看软件| 日韩毛片高清在线播放| 一本大道久久a久久综合| 亚洲电影第三页| 久久精品综合网| 欧美二区在线观看| 成人一二三区视频| 亚洲国产日日夜夜| 欧美精品免费视频| av在线综合网| 日韩av电影天堂| 国产精品美女久久久久久| 欧美日韩另类一区| 99视频一区二区| 蜜桃视频第一区免费观看| 中文字幕精品一区二区三区精品| 在线视频欧美精品|