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

📄 powell.c

📁 内点法是从可行域内某一初始内点出发
💻 C
字号:
#include hjfgf.c
double oneoptim(double x0[],double s[],double h0,double epsg,int n,double x[])
{double a,b,ff;
a=(double )malloc(nsizeof(double));
b=(double )malloc(nsizeof(double));
jtf(x0,h0,s,n,a,b);
ff=gold(a,b,epsg,n,x);
free(a);
free(b);
return (ff);
}
double powell(double p[],double h0,double eps,double epsg,int n,double x[])
{int i,j,m;
double xx[4],ss,s;
double f,f0,f1,f2,f3,fx,dlt,df,sdx,q,d;
ss=(double )malloc(n(n+1)sizeof(double));
s=(double )malloc(nsizeof(double));
for(i=0;in;i++)
  {for(j=0;j=n;j++)
   (ss+i(n+1)+j)=0;
   (ss+i(n+1)+i)=1;
  }
  for(i=0;i4;i++)
  xx[i]=(double )malloc(nsizeof(double));
  for(i=0;in;i++)
  (xx[0]+i)=p[i];
  for(;;)
  {for(i=0;in;i++)
    {(xx[1]+i)=(xx[0]+i);
     x[i]=(xx[1]+i);
    }
   f0=f1=objf(x);
   dlt=-1;
   for(j=0;jn;j++)
    {for(i=0;in;i++)
      {(xx[0]+i)=x[i];
       (s+i)=(ss+i(n+1)+j);
      }
     f=oneoptim(xx[0],s,h0,epsg,n,x);
     df=f0-f;
     if(dfdlt)
      {dlt=df;
       m=j;
      }
    }
    sdx=0;
    for(i=0;in;i++)
     sdx=sdx+fabs(x[i]-((xx[1]+i)));
    if(sdxeps)
     {free(ss);
      free(s);
      for(i=0;i4;i++)
      free(xx[i]);
      return(f);
     }
    for(i=0;in;i++)
     (xx[2]+i)=x[i];
    f2=f;
    for(i=0;in;i++)
    {(xx[3]+i)=2((xx[2]+i)-((xx[1]+i)));
     x[i]=(xx[3]+i);
    }
    fx=objf(x);
    f3=fx;
    q=(f1-2f2+f3)(f1-f2-dlt)(f1-f2-dlt);
    d=0.5dlt(f1-f3)(f1-f3);
    if((f3f1)(qd))
     {if(f2=f3)
       for(i=0;in;i++)
        (xx[0]+i)=(xx[2]+i);
      else
       for(i=0;in;i++)
        (xx[0]+i)=(xx[3]+i);
     }
    else
    {for(i=0;in;i++)
     {(ss+(i+1)(n+1))=x[i]-((xx[1]+i));
      (s+i)=(ss+(i+1)(n+1));
     }
   f=oneoptim(xx[0],s,h0,epsg,n,x);
   for(i=0;in;i++)
    (xx[0]+i)=x[i];
   for(j=m+1;j=n;j++)
   for(i=0;in;i++)
    (ss+i(n+1)+j-1)=(ss+i(n+1)+j);
    }
  }
}

⌨️ 快捷键说明

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