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

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

?? cpp1.cpp

?? 最優化解法的運行程序大家幫忙支持下我自己做的哦!!謝謝了
?? CPP
字號:
#include<iostream.h>
#include<math.h>
#include<time.h>
 
#define N1 40
//cF54                             DIXMAANE                              
//*                             
//*                    Initial point x0=[2.,2.,2...,2.].
//*

void CALF(int n,double x[N1],double &f){
        double alpha,beta,gamma,delta;                      
        int  k1,k2,k3,k4;
    
        alpha=1.0;
        beta=0.0;
        gamma=0.1250;
        delta=0.1250;
                      
        k1=1;
        k2=0;
        k3=0;
        k4=1;
           
        int m = n/3;
        
        f=1.0;
        for(int i=0;i<n;i++)
          f=f+alpha*x[i]*x[i]*pow((float(i+1)/float(n)),k1);
   
    
        for(i=0;i<n-1;i++)
          f=f+beta*x[i]*x[i]*(x[i+1]+x[i+1]*x[i+1])*pow((float(i+1)/float(n)),k2);
   
        
        for(i=0;i<2*m;i++)
          f=f+gamma*x[i]*x[i]*(pow(x[i+m],4))*pow((float(i+1)/float(n)),k3);
    
        
       for(i=0;i<m;i++)
          f=f+delta*x[i]*x[i+2*m]*pow((float(i+1)/float(n)),k4);
}
//*-- Gradient    
void CALG(int n,double x[N1],double g[N1]){
        double alpha,beta,gamma,delta;                       
        int  k1,k2,k3,k4;
    
        alpha=1.0;
        beta=0.0;
        gamma=0.1250;
        delta=0.1250;
                      
        k1=1;
        k2=0;
        k3=0;
        k4=1;
           
        int m=n/3;

        g[0]=2.0*alpha*x[0]*pow((float(1)/float(n)),k1)+2.0*beta*x[0]*pow((x[0]+x[1]*x[1]),2)*pow((float(1)/float(n)),k2)+2.0*gamma*x[0]*pow(x[m],4)*pow((float(1)/float(n)),k3)+delta*x[2*m]*pow((float(1)/float(n)),k4);
       for(int i=1;i<m;i++)
          g[i]=2.0*alpha*x[i]*pow((float(i+1)/float(n)),k1)+2.0*beta*pow(x[i-1],2)*(x[i]+x[i]*x[i])*(1.0+2.0*x[i])*pow((float(i)/float(n)),k2)+2.0*beta*x[i]*pow((x[i+1]+pow(x[i+1],2)),2)*pow((float(i+1)/float(n)),k2)+2.0*gamma*x[i]*pow(x[i+m],4)*pow((float(i+1)/float(n)),k3)+delta*x[i+2*m]*pow((float(i+1)/float(n)),k4);
        
       for(i=m;i<2*m;i++)
          g[i]=2.0*alpha*x[i]*pow((float(i+1)/float(n)),k1)+2.0*beta*pow(x[i-1],2)*(x[i]+x[i]*x[i])*(1.0+2.0*x[i])*pow((float(i)/float(n)),k2)+2.0*beta*x[i]*pow((x[i+1]+pow(x[i+1],2)),2)*pow((float(i+1)/float(n)),k2)+2.0*gamma*x[i]*pow(x[i+m],4)*pow((float(i+1)/float(n)),k3)+4.0*gamma*pow(x[i-m],2)*pow(x[i],3)*pow((float(i-m+1)/float(n)),k3);
        
       for(i=2*m;i<n-1;i++)
          g[i]=2.0*alpha*x[i]*pow((float(i+1)/float(n)),k1)+2.0*beta*pow(x[i-1],2)*(x[i]+x[i]*x[i])*(1.0+2.0*x[i])*pow((float(i)/float(n)),k2)+2.0*beta*x[i]*pow((x[i+1]+pow(x[i+1],2)),2)*pow((float(i)/float(n)),k2)+4.0*gamma*pow(x[i-m],2)*pow(x[i],3)* pow((float(i-m+1)/float(n)),k3)+delta*x[i-2*m]*pow((float(i-2*m+1)/float(n)),k4);
        
        
        g[n-1]=2.0*alpha*x[n-1]+2.0*beta*x[n-2]*x[n-2]*(x[n-1]+x[n-1]*x[n-1])*(1.0+2.0*x[n-1])*pow((float(n-1)/float(n)),k2)+4.0*gamma*x[2*m-1]*x[2*m-1]*x[n-1]*x[n-1]*x[n-1]*pow((float(2*m)/float(n)),k3)+delta*x[m-1]*pow((float(m)/float(n)),k4);
}




int conclude1(double G[N1])
{double a=0.00;
 for(int i=0;i<N1;i++)
	{a+=G[i]*G[i];}
 if(sqrt(a)>=0.0001)    {return 1;}
 else return 0;
}

double DDOT1(double p[N1],double Q[N1])
{double t=0.00;
 for(int i=0;i<N1;i++)
	{t+=p[i]*Q[i];}
 return t;
}



void main()
{clock_t start,end;
 start=clock();
 double k=1,kesi=0.0001;
double beta,m=0.00,n=0.00;
double X[N1],G[N1],WORK[N1],D[N1],P[N1],G1[N1]  ; 
double F,ALPHA,IPRINT=1,C1=0.01,C2=0.05; 
int NLSMAX ;
	  double FO ;
      int I; 
      double DGO; 
      double A1; 
      double F1; 
      double DG1; 
      double A2; 
      double A21; 
      double RATIO1; 
      double RATIO2; 
      int NCALFN,NCALG,NCALF; 
      double DD,XX;
	  double TRY,F2,DG,DG2;
	  double T1,T2,T3,T4;
      double  INFO=1; 
for(int i=0;i<N1;i++)
 {X[i]=2;}
CALG(N1,X,G);
for(i=0;i<N1;i++)
	{G1[i]=G[i];} 

for(i=0;i<N1;i++)
	{P[i]=-G[i];} 
//................................................................................
step1: CALG(N1,X,G);
	   //cout<<x[1]<<'\t';
	   for(i=0;i<N1;i++)
	   {D[i]=-G[i];}
step2: if(conclude1(G)){
       if(k==1)
	   {beta=0;
		for(i=0;i<N1;i++)
		{ G1[i]=G[i];} 
	   }
	   else {for(i=0;i<N1;i++)
		     {m+=G[i]*G[i];
	          n+=G1[i]*G1[i];
	   }
	   beta=m/n;
	   for(i=0;i<N1;i++)
	   { G1[i]=G[i];}
	   
	   }
	 
  for(i=0;i<N1;i++)
  {P[i]=-G[i]+beta*P[i];
  		
  }
goto step3; 
	   }
    else goto step7;
 
//=========   step 1  設初始值    ===========/
step3: NLSMAX=50;
	   FO=F;
      for( I=0;I<N1;I++)
		  WORK[I]=X[I];
       DGO=DDOT1(D,G);
       A1=0.0;
       F1=F;
       DG1=DGO;
       A2=-1.0;
       A21=0;
       RATIO1=1.0;
       RATIO2=0.1;
       NCALFN=0,NCALG=1,NCALF=1;
       ALPHA=1.0;
	   //INFO;
       if(DGO>=0.0) goto enter_1100;
       if(IPRINT!=0) goto enter_40;
	   cout<<"ENTER LINE SEARCH"<<endl;
////////////////////////////////////////////////////
//==========   step 2  計算新的試驗點  ===========//
      enter_40 : for(I=0;I<N1;I++)
					 X[I]=WORK[I]+ALPHA*D[I];
      CALF(N1,X,F);//目標函數值
      NCALFN=NCALFN+1;
      if(NCALFN>NLSMAX) goto enter_1300;
      if(F<=FO+C1*ALPHA*DGO) goto enter_200;

//==========  Step 3   如果第一個等式不成立========// 
//==========	  通過二次修正降低步長   ==========//
      RATIO1=RATIO1*0.1;
      if(DGO/(1.0+fabs(FO))<-1.0e-16)  goto enter_80;
      DD=DDOT1(D,D);
      XX=DDOT1(X,X);
      if(ALPHA*sqrt(DD)/(1.0+sqrt(XX))<=1.0e-12) goto enter_1400;
      enter_80 : A2=ALPHA;
      F2=F;
      A21=0;
      enter_90 : TRY=((F2-F1)/(A2-A1)-DG1)/(A2-A1);
      TRY=-DG1/TRY/2.0;
      goto enter_240;

//=========   Step 4 如果第一個滿足測試第二個不等式=========//
      enter_200 : CALG(N1,X,G);//函數的梯度
      NCALG=NCALG+1;
      DG=DDOT1(D,G);
      if(fabs(DG)<=-C2*DGO) goto enter_1500;
      if(DG>0.0) goto enter_210;
      if(A2<0.0) goto enter_260;
      RATIO2=RATIO2*0.1;
      A1=ALPHA;
      F1=F;
      DG1=DG;
      RATIO1=0.1;
      if(!A21) goto enter_90;
      goto enter_220;

//==========   Step 5 使用三次插值尋找===========// 
//                 在[A1,A2]內的新的點           //
      enter_210 : RATIO1=0.1;
      A2=ALPHA;
      F2=F;
      DG2=DG;
      A21=1;
      enter_220 : T1=(F2-F1)/(A2-A1)-DG1;
      T2=DG2-DG1;
      T3=3.0*T1-T2;
      T4=T2-T1-T1;
      TRY=T3*T3-3.0*T4*DG1;
      if(TRY<0.0) goto enter_230;
      if(sqrt(TRY)<=T3) goto enter_230;
      TRY=-DG1*(A2-A1)/(sqrt(TRY)+T3);
      goto enter_240;
      enter_230 : TRY=((F2-F1)/(A2-A1)-DG1)/(A2-A1);
      TRY=-DG1/TRY/2.0;

//========   如果必要去掉這步==========//
      enter_240 : if(TRY<RATIO1*(A2-A1)) TRY=RATIO1*(A2-A1);
      if(TRY>(1.0-RATIO2)*(A2-A1)) TRY=(1.0-RATIO2)*(A2-A1);
              ALPHA=TRY+A1;
      goto enter_40;

//=========   Step 6   ALPHA是最大的可行點,通過使用三次插值找到另一個可行的值使STEP>ALPHA=======//
      enter_260 : T1=(F-F1)/(ALPHA-A1)-DG;
      T2=DG1-DG;
      T3=3.0*T1-T2;
      T4=T2-T1-T1;
      TRY=T3*T3-3.0*T4*DG;
      if(TRY<0.0) goto enter_275;
      if(sqrt(TRY)<=T3) goto enter_275;
      TRY=-DG*(ALPHA-A1)/(sqrt(TRY)-T3);
      if(TRY<=1.0*10*(ALPHA-A1)) goto enter_280;
      enter_275 : TRY=1.0*10*(ALPHA-A1);
      enter_280 : if(A2<0.0) goto enter_290;
      if(TRY<0.1*(A2-A1)) TRY=0.1*(A2-A1);
      if(TRY>0.9*(A2-A1)) TRY=0.9*(A2-A1);
      enter_290 : A1=ALPHA;
      F1=F;
      DG1=DG;
      ALPHA=A1+TRY;
	  goto step6;
      goto enter_40;


//==========   使用上升方向搜索或者參量是不正確的   ===========//
      enter_1100 : //cout<<"AN UPHILL SEARCH DIRECTION IS USED!"<<endl;
      INFO=1;
      goto enter_1500;
      enter_1300 : //cout<<"LINE SEARCH FAILS AFTER NLSMAX TRIAL STEPSIZES!"<<endl;
      INFO=2;
      goto enter_1500;
      enter_1400 : CALG(N1,X,G);
      NCALG=NCALG+1;
      //cout<<"STEP IS TOO SMALL!"<<endl;
      INFO=3;
      enter_1500 : NCALF=NCALF+NCALFN;
   //return;
step6:
 k=k+1;
 goto step1;
      
step7: CALF(N1,X,F);
	   cout<<"問題的規模:"<<N1<<endl<<"迭代次數:"<<k<<endl<<"精度為:"<<kesi<<endl<<"F="<<F<<endl;
	   end=clock();
	   cout<<"計算用時:"<<(double)(end-start)/CLOCKS_PER_SEC<<"ms"<<endl;
}
	  

	

      


    
	   

	     
	   
	   
	   

        
       
       
  









?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人牲a欧美精品| 国产成人亚洲综合a∨婷婷图片 | 欧美v日韩v国产v| 99精品国产视频| 国产成人精品免费一区二区| 亚洲制服丝袜在线| 亚洲精品五月天| 一区二区三区四区精品在线视频 | 在线免费视频一区二区| 日韩国产在线一| 日本伊人色综合网| 日韩综合小视频| 国产一区在线不卡| 国产精品自拍在线| 色综合中文字幕国产 | 久久综合九色综合97_久久久| 国产精品三级视频| 天天av天天翘天天综合网| 亚洲成人在线免费| 国产精一区二区三区| 亚洲女同一区二区| 日韩一区和二区| 91首页免费视频| 韩国女主播一区| 亚洲福中文字幕伊人影院| 国产亚洲综合性久久久影院| 色婷婷av一区| 波多野结衣中文一区| 一区二区三区加勒比av| 国产亚洲欧洲997久久综合| 欧美精品九九99久久| 国产高清视频一区| 美女一区二区视频| 午夜精品久久久久久久蜜桃app| 久久视频一区二区| 555夜色666亚洲国产免| 成人毛片视频在线观看| 精品午夜一区二区三区在线观看| 国产精品久久久久aaaa| 久久无码av三级| 日韩欧美国产电影| 色94色欧美sute亚洲线路二| 大尺度一区二区| 国产精品一区在线观看你懂的| 亚洲成人在线免费| 亚洲国产一区二区三区| 亚洲美女偷拍久久| 亚洲视频小说图片| 亚洲伦理在线精品| 亚洲日本在线天堂| 亚洲视频一区二区免费在线观看| 精品91自产拍在线观看一区| 日韩欧美三级在线| 日韩一区二区三区在线| 欧美日韩亚洲高清一区二区| 91啦中文在线观看| 色国产综合视频| av电影在线观看一区| 成人白浆超碰人人人人| www.成人网.com| 97久久人人超碰| 欧美精品18+| 久久久久久综合| 玉足女爽爽91| 另类小说图片综合网| 懂色中文一区二区在线播放| 91麻豆国产精品久久| 欧美日韩你懂得| 国产无一区二区| 亚洲夂夂婷婷色拍ww47| 久久国产剧场电影| 99re成人精品视频| 欧美一级高清片| 一区在线中文字幕| 日韩国产一区二| 成人av综合一区| 在线播放91灌醉迷j高跟美女| 精品国产污污免费网站入口 | 欧美一级夜夜爽| 国产欧美精品一区aⅴ影院| 亚洲免费观看在线视频| 麻豆极品一区二区三区| 成人午夜视频免费看| 欧美军同video69gay| 中文字幕+乱码+中文字幕一区| 亚洲va欧美va人人爽| 国产99精品视频| 这里只有精品视频在线观看| 国产精品国产自产拍高清av王其| 三级不卡在线观看| 99久久精品情趣| 日韩欧美成人一区二区| 中文字幕在线观看不卡| 免费在线成人网| 91丨porny丨户外露出| 精品99一区二区三区| 亚洲一区二区五区| 99在线视频精品| 久久日韩粉嫩一区二区三区| 五月天亚洲婷婷| 91视频在线观看免费| 国产亚洲精品bt天堂精选| 天天影视网天天综合色在线播放| 99久久婷婷国产精品综合| 久久夜色精品一区| 热久久国产精品| 欧美在线观看视频一区二区| 国产精品乱码一区二区三区软件| 奇米精品一区二区三区在线观看一 | 欧美性大战久久久久久久蜜臀| 久久久亚洲精品石原莉奈| 日韩电影免费一区| 欧美日韩小视频| 亚洲欧洲综合另类在线| 成人毛片老司机大片| 久久日韩粉嫩一区二区三区| 美女看a上一区| 日韩一区二区影院| 奇米精品一区二区三区四区| 欧美日韩国产另类一区| 夜夜精品浪潮av一区二区三区| 99视频超级精品| 中文字幕中文字幕一区| jizz一区二区| 最好看的中文字幕久久| 成人avav在线| 成人免费视频在线观看| 不卡的电视剧免费网站有什么| 国产亚洲va综合人人澡精品| 另类人妖一区二区av| 日韩久久精品一区| 国产综合色精品一区二区三区| 欧美不卡一二三| 国产一区二区免费在线| 久久久久久久免费视频了| 国产精品1区2区3区| 中文在线一区二区| 99久久精品国产毛片| 亚洲日本电影在线| 欧美在线影院一区二区| 亚洲国产日韩av| 51午夜精品国产| 久久精品久久综合| 国产日本亚洲高清| 不卡一区二区在线| 亚洲制服丝袜一区| 欧美一区二区三区日韩视频| 麻豆精品国产91久久久久久| 久久综合中文字幕| 北条麻妃国产九九精品视频| 亚洲免费av高清| 在线播放91灌醉迷j高跟美女| 卡一卡二国产精品 | 一本到不卡精品视频在线观看| 亚洲精品国产无套在线观| 欧美人妇做爰xxxⅹ性高电影| 亚洲18色成人| 欧美电影免费提供在线观看| 国产成人综合精品三级| 亚洲欧美二区三区| 欧美一区二区三区四区在线观看| 免费观看久久久4p| 亚洲国产精华液网站w | 国产午夜亚洲精品午夜鲁丝片| 国产91精品一区二区| 亚洲视频综合在线| 欧美一区二区三区不卡| 国产精品888| 亚洲午夜久久久| 久久蜜桃av一区精品变态类天堂| 91美女片黄在线观看91美女| 天涯成人国产亚洲精品一区av| 久久久亚洲高清| 欧美中文字幕不卡| 国产在线看一区| 亚洲乱码中文字幕| 亚洲精品在线观看网站| 91麻豆视频网站| 国产最新精品免费| 亚洲一区二区三区在线| 欧美精品一区二区三区四区| 91麻豆国产香蕉久久精品| 另类人妖一区二区av| 亚洲欧洲制服丝袜| 精品国产a毛片| 欧美午夜精品理论片a级按摩| 国模冰冰炮一区二区| 亚洲国产精品久久人人爱蜜臀| 久久嫩草精品久久久久| 欧美精品自拍偷拍| av在线一区二区| 狠狠色2019综合网| 婷婷综合五月天| 亚洲免费av观看| 亚洲国产精品成人综合色在线婷婷| 欧美肥大bbwbbw高潮| 91丨porny丨蝌蚪视频| 国产乱人伦偷精品视频不卡 | 成人午夜免费视频| 韩国精品久久久|