⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wolfe2.m

📁 这次上传的绝对是好东西
💻 M
字号:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Wolfe Line Search
function [alphak1,fk2,gk2,wfnum,wgnum]=wolfe2(n,m,xk,dk,fk,gk,nprob)
         rho1=0.8;rho2=0.9;sigma1=0.01;sigma2=0.0001;
         %fk1=objfcn(n,m,xk,nprob);
         %gk1=grdfcn(n,m,xk,nprob);
        
         fk1=fk;gk1=gk;
         wfnum=0;wgnum=0;
         %step 0
         %fk1=fk
         %gk1=gk
         alphak1=1;
         fk2=objfcn(n,m,xk+alphak1*dk,nprob);wfnum=wfnum+1;
         gk2=grdfcn(n,m,xk+alphak1*dk,nprob);wgnum=wgnum+1;
             if fk2-fk1<=sigma1*alphak1*gk1'*dk
                 if gk2'*dk>=sigma2*gk1'*dk
                     break;;
                 end
                 %step 0
             else
                 %step 1%%%%%%%%%%%%%%%%%%%%%
                 i=-10;
                 while 1
                     if i~=0
                         alphak1=rho1^i;
                         fk2=objfcn(n,m,xk+alphak1*dk,nprob);wfnum=wfnum+1;
                     end
                     if fk2-fk1<=sigma1*alphak1*gk1'*dk
                         i=i-1;
                         fk2=objfcn(n,m,xk+rho1^i*dk,nprob);
                         if fk2-fk1>sigma1*rho1^i*gk1'*dk
                             %alphak=alphak1
                             break;
                         end
                     else
                         i=i+1;
                     end
                    
                 end  
                 %alphak1=rho1^i
                 %step 1%%%%%%%%%%%%%%%%%%%%%%%
                 
                 j=0;
                 while 1
                     alphak1=rho2^j*alphak1;
                     if alphak1==0
                         break;
                     end
                     gk2=grdfcn(n,m,xk+alphak1*dk,nprob);wgnum=wgnum+1;
                     if gk2'*dk>=sigma2*gk1'*dk
                         %alphak=alphak1;
                         break;
                     end
                         j=j+1;
                 end
                 
                 
             end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -