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

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

?? 11111.cpp

?? 內點法的c源程序
?? CPP
字號:
//外點懲罰函數法 
//問題: minf(x)=x1*x4*(x1+x2+x3)+x3
//      s.t.  g1(x)=x1^2+x2^2+x3^2+x4^2-40=0
//            g2(x)=25-x1*x2*x3*x4
//            1<=xj<=5   j=1,2,3,4

//n-設計變量的維數;
//nc-約束條件的個數;
//ne-等式約束條件的個數;
//tt-一維搜索的初始步長;
//ff-差分法求梯度時的步長;
//ac-外點懲罰函數法和變尺度法的收斂精度;
//ad-一維搜索時的收斂精度;
//bw-懲罰因子遞增系數;
//r-初始懲罰因子;
//xk[n]-設計變量的初始點。
  
//#include"stdio.h"
#include "iostream.h"
#include"stdlib.h"
#include"math.h"
#define n 2
#define nc 5
#define tt 0.005
#define ff 0.00001
#define ac 0.000001
#define ad 0.0000001
#define bw 0.5
double r,ia;
double fun(double *x,double *c);
double *iterate(double *x,double a,double *s);
double construct(double *x);
double penalty(double *x,double a,double *s);
void finding(double a[3],double f[3],double *xk,double *s);
double lagrange(double *xk,double *ft,double *s);
double *gradient(double *xk);
double *bfgs(double *xk);
void main()
{//int j;
   int sum=0;
   double c[nc];
   double *xk1,f1,f2,q;
   double xk[n]={5,5};      
  xk1=(double *)malloc(n*sizeof(double)); 
  r=37.5;
//cout<<"請輸入初始點:";
//for(int i=0;i<n;i++)
   //cin>>xk[i];        // 輸入初始點
//for( i=0;i<n;i++)
    //cout<<xk[i]<<"\t";
   f1=fun(xk,c);
for(int k=0;;k++)
 {
    ia=0;
    xk1=bfgs(xk);
	//for(j=0;j<n;j++)
	//printf("\nxk1[%d]=%f",j,xk1[j]);
	f2=fun(xk1,c);
    //printf("\nf2=%f\n",f2);   
    double xx=0; 
  if(nc!=0)
  { q=fabs(c[0]);
      for(int i=0;i<nc;i++)
           if(fabs(c[i])<q)
                q=fabs(c[i]); 
  }
    if(q<=ac) break;
    for(int i=0;i<n;i++)
             xx+=pow((xk1[i]-xk[i]),2);
    xx=sqrt(xx); 
    if((fabs(xx)<=ac)&&(fabs(f2-f1)<=ac)) break;
  r=bw*r;
    for(i=0;i<n;i++)
            xk[i]=xk1[i];
            f1=f2;
	sum++;
 }
   if(f2>f1)
   {  f2=f1;  xk1=xk;}
   cout<<"\n\t循環次數:sum="<<sum<<"\n";
   cout<<"\n\t懲罰因子:"<<"r="<<r<<"\n";
   for(k=0;k<n;k++)
        cout<<"\n\t"<<"x*["<<k<<"]="<<xk1[k];
  //free(xk1);
   cout<<"\n\t"<<"f="<<f2<<"\n";
   for(k=0;k<nc;k++)
      cout<<"\n\t"<<"c["<<k<<"]="<<c[k];
   cout<<"\n";
}

double fun(double *x,double *c)  
{ 
   double f;
   f=60-10*x[0]-4*x[1]+pow(x[0],2)+pow(x[1],2)-x[0]*x[1];

   c[0]=-x[0];
   c[1]=-x[1];
   c[2]=x[0]-6;
   c[3]=x[1]-8;
   c[4]=x[0]+x[1]-11;
   /*f=pow((x[1]),3)*((x[0]-3)*(x[0]-3)-9)/27/sqrt(3);
 c[0]=x[1]-x[0]/sqrt(3);
 c[1]=-x[0]+x[1]/sqrt(3);
 c[2]=x[0]+x[1]/sqrt(3)-6;
 c[3]=-x[0];
 c[4]=-x[1];*/
   return(f);
 }
double *iterate(double *x,double a,double *s)
 {
      double *x1;
      x1=(double *)malloc(n*sizeof(double));
      for(int i=0;i<n;i++)
           x1[i]=x[i]+a*s[i];
      return(x1);
 }

double construct(double *x)
   {
     double y,c[nc];
     y=fun(x,c);
     if(nc==0)   return(y);
     for(int i=0;i<nc;i++)
		 y-=r/c[i];
     return(y);
     }
 
 double penalty(double *x,double a,double *s) 
  {
         double y;
         double *x1;
         x1=iterate(x,a,s);
         y=construct(x1);
         return(y);
  }
 void finding(double a[3],double f[3],double *xk,double *s)
  {
     double t=tt;
     double a1,f1;
     a[0]=0;
     f[0]=penalty(xk,a[0],s);
     for(int i=0;;i++)
       {
         a[1]=a[0]+t;     f[1]=penalty(xk,a[1],s);
         if(f[1]<f[0]) break;
         if(fabs(f[1]-f[0])>=ad)
              {   t=-t;  a[0]=a[1];  f[0]=f[1];}
         else {   if(ia==1) return;
                  t=t/2;    ia=1;     
		      }
 }
 for(i=0;;i++)
 {     a[2]=a[1]+t;    f[2]=penalty(xk,a[2],s);
       if(f[2]>f[1])  break;
       t=2*t;
       a[0]=a[1];    f[0]=f[1];
       a[1]=a[2];    f[1]=f[2];
 }
 if(a[0]>a[2])
 {   a1=a[0];    f1=f[0];
     a[0]=a[2];    f[0]=f[2];
     a[2]=a1;      f[2]=f1;  
   } //調試中問題所在 大括弧
 return;
 }
 
double lagrange(double *xk,double *ft,double *s)
   {
     double a[3],f[3];
     double b,c,d,aa;
     finding(a,f,xk,s);
     for(int i=0;;i++)
      {
       if(ia==1) { aa=a[1];  *ft=f[1];  break;  }
     d=(pow(a[0],2)-pow(a[2],2))*(a[0]-a[1])-(pow(a[0],2)-pow(a[1],2))*(a[0]-a[2]);
     if(fabs(d)==0)   break;
     c=((f[0]-f[2])*(a[0]-a[1])-(f[0]-f[1])*(a[0]-a[2]))/d;
     if(fabs(c)==0)   break; 
     b=((f[0]-f[1])-c*(pow(a[0],2)-pow(a[1],2)))/(a[0]-a[1]);
     aa=-b/(2*c);
     *ft=penalty(xk,aa,s);
     if(fabs(aa-a[1])<=ad)
        { if(*ft>f[1])  aa=a[1];
          break;   
	    }
     if(aa>a[1])
        {
           if(*ft>f[1])    {  a[2]=aa;  f[2]=*ft;  }
           else if(*ft<f[1])   
                 {  a[0]=a[1];a[1]=aa;   
		            f[0]=f[1];   f[1]=*ft;  
		         }
           else if(*ft=f[1])
                 {  a[2]=aa;   a[0]=a[1]; 
                    f[2]=*ft;  f[0]=f[1];       
                    a[1]=(a[0]+a[2])/2;  
					f[1]=penalty(xk,a[1],s);  
		         }
           }
      else
         {  if(*ft>f[1])     {    a[0]=aa;    f[0]=*ft;   }
            else if(*ft<f[1])
                  {    a[2]=a[1];     a[1]=aa;
                       f[2]=f[1];     f[1]=*ft;
                      }
           else if(*ft=f[1])
                {     a[0]=aa;    a[2]=a[1];
                      f[0]=*ft;    f[2]=f[1];
                      a[1]=(a[0]+a[2])/2;    f[1]=penalty(xk,a[1],s);
                        }
                }
            }
     if(*ft>f[1])
         {   aa=a[1];     *ft=f[1];     }
     return(aa);
   }
 double *gradient(double *xk)
 {
    double *g,f1,f2,q;
    g=(double *)malloc(n*sizeof(double));
    f1=construct(xk);
    for(int i=0;i<n;i++)
       {  q=ff;
          xk[i]=xk[i]+q;      f2=construct(xk);
          g[i]=(f2-f1)/q;  xk[i]=xk[i]-q;
       }
     return(g);
 }
double *bfgs(double *xk)
  {
    double u[n],v[n],h[n][n],dx[n],dg[n],s[n];
    double aa,ib=0;
    double *ft,*xk1,*g1,*g2,*xx,*x0=xk;
    ft=(double *)malloc(sizeof(double));
    xk1=(double *)malloc(n*sizeof(double)); 
    int i,j,k;
    
    for(i=0;i<n;i++)
      { s[i]=0;
        for(j=0;j<n;j++)
       {  h[i][j]=0;
          if(j==i)  
          h[i][j]=1; 
		}
      }
    g1=gradient(xk);
   //for(j=0;j<n;j++)
	//printf("\ng1[%d]=%f\n",j,g1[j]);
    double fi=construct(xk);
    //printf("fi=%f",fi);
    x0=xk;
  for(k=0;k<n;k++)
    { int ib;
      if(ia==1 )  {  xx=xk; break; }
      ib=0; 
      for(i=0;i<n;i++)
        s[i]=0;
      for(i=0;i<n;i++)
        for(j=0;j<n;j++)
         s[i]+=-h[i][j]*g1[j];
     aa=lagrange(xk,ft,s);
    //printf("aa=%f ",aa);
     xk1=iterate(xk,aa,s);
     g2=gradient(xk1);
     for(i=0;i<n;i++)
       if((fabs(g2[i])>=ac)&&(fabs(g2[i]-g1[i])>=ac)||(fabs(*ft-fi)>=ac))
           ib=ib+1;
       if(ib==0)
         {  xx=xk1;  break;   }
       fi=*ft;
       if(k==(n-1))
        { xk=xk1;
        for(i=0;i<n;i++)
        for(int j=0;j<n;j++)
         {  h[i][j]=0;
           if(j==i) h[i][j]=1;
       }
        g1=g2;
        k=-1;
      }
       else  
     {
       for(i=0;i<n;i++)
	   { dg[i]=g2[i]-g1[i];
         dx[i]=xk1[i]-xk[i];    }
         for(i=0;i<n;i++)
        {
       u[i]=0;    v[i]=0;
       for(int j=0;j<n;j++)
      {  u[i]=u[i]+dg[j]*h[i][j];  
         v[i]=v[i]+dg[j]*h[i][j]; 
      }
      }
   double a1=0,a2=0;
   for(int j=0;j<n;j++)
    { a1+=dx[j]*dg[j];    
      a2+=v[j]*dg[j];    
    }
   if(fabs(a1)!=0)
    {a2=1+a2/a1;
   for(i=0;i<n;i++)
   for(j=0;j<n;j++)
    h[i][j]+=(a2*dx[i]*dx[j]-v[i]*dx[j]-dx[i]*u[j])/a1;
   }
   xk=xk1;g1=g2;
	   }
 }
 if(*ft>fi)
  {   *ft=fi;   xx=xk;    }
      xk=x0;
	  return(xx);
   }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区日韩| 国产伦精品一区二区三区免费迷 | 奇米精品一区二区三区在线观看| 亚洲欧美在线观看| 一区在线播放视频| 亚洲天天做日日做天天谢日日欢| 一区精品在线播放| 一区二区三区国产豹纹内裤在线| 亚洲男同1069视频| 五月婷婷激情综合| 日韩成人一级片| 精品一区二区三区免费观看 | 色综合天天性综合| 在线观看国产91| 8v天堂国产在线一区二区| 精品久久一区二区| 国产精品久久久久影院| 一区二区三区四区蜜桃| 亚欧色一区w666天堂| 久久精品国产一区二区三| 成人午夜电影久久影院| 久久无码av三级| 欧美xxxx老人做受| 中文字幕一区二区三区乱码在线| 国产精品人成在线观看免费 | 久久精品二区亚洲w码| 国产**成人网毛片九色| 欧洲中文字幕精品| 久久精品日产第一区二区三区高清版| 欧美激情一区二区三区| 亚洲va在线va天堂| 国产精品综合一区二区| 91黄色免费看| 久久久99精品免费观看| 午夜久久久久久电影| 国产高清在线精品| 欧美日韩和欧美的一区二区| 久久蜜桃一区二区| 亚洲综合免费观看高清完整版在线 | 国产精品入口麻豆原神| 三级一区在线视频先锋| va亚洲va日韩不卡在线观看| 欧美日韩在线三区| 国产精品久久毛片| 蜜臀久久久99精品久久久久久| av高清久久久| 欧美大肚乱孕交hd孕妇| 亚洲一区二区高清| av电影在线观看一区| 欧美精品一区二区三区一线天视频 | 国产一区二区视频在线播放| 欧美最新大片在线看| 欧美国产欧美综合| 麻豆精品视频在线观看| 在线观看欧美精品| 最近日韩中文字幕| 国产精品资源在线| 2024国产精品| 青青草国产精品亚洲专区无| 欧美艳星brazzers| 一区二区在线观看免费| 94-欧美-setu| 亚洲人妖av一区二区| 成人精品国产福利| 中文成人av在线| 国产v综合v亚洲欧| 久久精品一区二区三区不卡| 国产真实乱偷精品视频免| 日韩欧美国产不卡| 老司机免费视频一区二区| 精品视频一区三区九区| 亚洲成av人片一区二区| 欧美狂野另类xxxxoooo| 午夜电影一区二区三区| 91精品婷婷国产综合久久性色| 视频一区中文字幕| 日韩欧美电影在线| 免费av网站大全久久| 日韩女优电影在线观看| 国产在线不卡一卡二卡三卡四卡| 精品国产三级电影在线观看| 国产一区不卡精品| 国产精品蜜臀在线观看| 一本大道久久a久久精品综合| 亚洲精品高清在线| 欧美美女黄视频| 美美哒免费高清在线观看视频一区二区| 欧美一区二区美女| 国产精品自拍网站| 久久精品人人爽人人爽| 国产米奇在线777精品观看| 国产亚洲欧洲一区高清在线观看| 国产精品影视在线观看| 亚洲欧洲韩国日本视频| 欧美日韩精品综合在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩欧美一区在线观看| 国产成人在线视频免费播放| 亚洲欧美日韩精品久久久久| 337p亚洲精品色噜噜噜| 国产一区二区电影| 尤物视频一区二区| 精品久久五月天| av亚洲产国偷v产偷v自拍| 亚洲一级电影视频| 欧美一区二区成人| 成人不卡免费av| 午夜日韩在线电影| 欧美激情综合在线| 欧美精品国产精品| 波多野结衣中文字幕一区二区三区| 亚洲午夜免费福利视频| 精品国产免费久久| 色综合久久久久| 精品一区二区三区av| 亚洲精品亚洲人成人网在线播放| 欧美成人欧美edvon| 色综合天天综合色综合av | 综合分类小说区另类春色亚洲小说欧美 | 国产精品第四页| 日韩一区国产二区欧美三区| 成人v精品蜜桃久久一区| 久久精品国产在热久久| 日韩理论片一区二区| 久久天天做天天爱综合色| 在线观看视频一区二区| 成人免费毛片嘿嘿连载视频| 蜜臀91精品一区二区三区| 亚洲美女淫视频| 国产精品麻豆欧美日韩ww| 精品理论电影在线观看| 欧美日韩成人一区| 色婷婷综合久久久中文字幕| 国产成人自拍在线| 久久er精品视频| 日韩精品色哟哟| 亚洲va天堂va国产va久| 亚洲天堂久久久久久久| 国产日韩精品一区二区三区| 精品久久久久久亚洲综合网| 在线播放视频一区| 欧美日韩国产综合一区二区| 99久久久久免费精品国产| 成人美女视频在线看| 国产精品夜夜爽| 韩国精品一区二区| 国产一区二区不卡| 国产一区二区免费看| 国产精品羞羞答答xxdd| 国产不卡高清在线观看视频| 国产精品主播直播| 成人免费观看视频| 成人激情开心网| 91一区二区在线观看| 日本久久电影网| 欧美性猛交xxxxxxxx| 91豆麻精品91久久久久久| 在线观看免费视频综合| 欧美伦理电影网| 欧美变态tickle挠乳网站| 精品播放一区二区| 国产午夜精品久久久久久免费视 | 粉嫩久久99精品久久久久久夜 | 一区二区三区不卡在线观看| 一区二区在线免费| 日韩国产成人精品| 久久精品国产**网站演员| 国产一区二区调教| 91在线免费播放| 欧美亚洲国产怡红院影院| 911精品产国品一二三产区| 日韩欧美亚洲国产精品字幕久久久| 精品电影一区二区三区| 国产精品青草综合久久久久99| 自拍偷拍亚洲综合| 日韩中文字幕一区二区三区| 国产在线精品一区二区三区不卡 | 国产成人免费网站| 94色蜜桃网一区二区三区| 欧美日韩在线直播| 久久综合九色综合97婷婷| 亚洲欧洲精品一区二区三区 | 韩日精品视频一区| 99久久婷婷国产综合精品电影 | 日韩午夜在线观看| 国产精品三级视频| 图片区小说区区亚洲影院| 懂色av一区二区夜夜嗨| 欧美亚洲丝袜传媒另类| 久久久久久综合| 亚洲二区在线视频| 国产黄色91视频| 51精品国自产在线| 18成人在线观看| 精久久久久久久久久久| 在线欧美小视频| 久久久精品影视| 免费人成在线不卡| 91一区二区在线| 国产日韩亚洲欧美综合|