www.pudn.com > dcx_final.rar > dcx.cpp
#include#include double fxy1(double *p) //目标函数外部给出,变量用指针表示:*(p+i),i=0,1,2…… { return(4*(*p-5)*(*p-5)+(*(p+1)-6)*(*(p+1)-6)+((*(p+2)-10)*(*(p+2)-10))); } double fxy2(double *p) { return(10*(*p+*(p+1)-5)*(*p+*(p+1)-5)+(*p-*(p+1))*(*p-*(p+1))); } double fxy3(double *p) { return(*p**p+4**(p+1)**(p+1)); } double fxy4(double *p) { return(*p**p+*(p+1)**(p+1)-*p**(p+1)-10**p-4**(p+1)+60); } double fxy(double *p) { return(4*(*p)*(*p)+(*(p+1)-1)*(*(p+1)-1)+1.0/(*p+*(p+1)-6)); } class dcx { private: double xl,xh,xg,xc; int n,f_xl,f_xh,f_xg,k; public: void paixu(double *m) { int i; xl = *m; xh = *m; xg = *m; f_xl = 0; f_xh = 0; f_xg = 0; for(i=0;i xh) { xh = *(m+i); f_xh = i; } } xg = xl; f_xg = f_xl; for(i=0;i jing) //sqrt(1.0/(n+1)*ass) { for(j=0;j xh) { for(i=0;i