机械优化设计c语言程序_精品文档Word下载.doc
- 文档编号:13884809
- 上传时间:2022-10-14
- 格式:DOC
- 页数:5
- 大小:26KB
机械优化设计c语言程序_精品文档Word下载.doc
《机械优化设计c语言程序_精品文档Word下载.doc》由会员分享,可在线阅读,更多相关《机械优化设计c语言程序_精品文档Word下载.doc(5页珍藏版)》请在冰豆网上搜索。
x[i]=(double*)malloc(n*sizeof(double));
h=h0;
n;
*(x[0]+i)=x0[i];
f1=objf(x[0]);
*(x[1]+i)=*(x[0]+i)+h*s[i];
f2=objf(x[1]);
if(f2>
=f1)
{h=-h0;
for(i=0;
*(x[2]+i)=*(x[0]+i);
f3=f1;
{*(x[0]+i)=*(x[1]+i);
*(x[1]+i)=*(x[2]+i);
}
f1=f2;
f2=f3;
}
for(;
;
)
{h=2*h;
for(i=0;
*(x[2]+i)=*(x[1]+i)+h*s[i];
f3=objf(x[2]);
if(f2<
f3)break;
else
{for(i=0;
{*(x[0]+i)=*(x[1]+i);
*(x[1]+i)=*(x[2]+i);
}
f1=f2;
f2=f3;
if(h<
0)
{a[i]=*(x[2]+i);
b[i]=*(x[0]+i);
{a[i]=*(x[0]+i);
b[i]=*(x[2]+i);
}
for(i=0;
free(x[i]);
doublegold(doublea[],doubleb[],doubleeps,intn,doublexx[])
doublef1,f2,*x[2],ff,q,w;
2;
{*(x[0]+i)=a[i]+0.618*(b[i]-a[i]);
*(x[1]+i)=a[i]+0.382*(b[i]-a[i]);
do
{if(f1>
f2)
{for(i=0;
{b[i]=*(x[0]+i);
*(x[0]+i)=*(x[1]+i);
f1=f2;
*(x[1]+i)=a[i]+0.382*(b[i]-a[i]);
f2=objf(x[1]);
else
{for(i=0;
{a[i]=*(x[1]+i);
*(x[1]+i)=*(x[0]+i);
f2=f1;
*(x[0]+i)=a[i]+0.618*(b[i]-a[i]);
f1=objf(x[0]);
q=0;
q=q+(b[i]-a[i])*(b[i]-a[i]);
w=sqrt(q);
}while(w>
eps);
xx[i]=0.5*(a[i]+b[i]);
ff=objf(xx);
free(x[i]);
doubleoneoptim(doublex0[],doubles[],doubleh0,doubleepsg,intn,doublex[])
{double*a,*b,ff;
a=(double*)malloc(n*sizeof(double));
b=(double*)malloc(n*sizeof(double));
jtf(x0,h0,s,n,a,b);
ff=gold(a,b,epsg,n,x);
free(a);
free(b);
return(ff);
doublepowell(doublep[],doubleh0,doubleeps,doubleepsg,intn,doublex[])
{inti,j,m;
double*xx[4],*ss,*s;
doublef,f0,f1,f2,f3,fx,dlt,df,sdx,q,d;
ss=(double*)malloc(n*(n+1)*sizeof(double));
s=(double*)malloc(n*sizeof(double));
{for(j=0;
j<
=n;
j++)
*(ss+i*(n+1)+j)=0;
*(ss+i*(n+1)+i)=1;
4;
xx[i]=(double*)malloc(n*sizeof(double));
*(xx[0]+i)=p[i];
for(;
{for(i=0;
{*(xx[1]+i)=*(xx[0]+i);
x[i]=*(xx[1]+i);
f0=f1=objf(x);
dlt=-1;
for(j=0;
{for(i=0;
{*(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(df>
dlt)
{dlt=df;
m=j;
sdx=0;
sdx=sdx+fabs(x[i]-(*(xx[1]+i)));
if(sdx<
eps)
{free(ss);
free(s);
for(i=0;
free(xx[i]);
return(f);
*(xx[2]+i)=x[i];
f2=f;
{*(xx[3]+i)=2*(*(xx[2]+i)-(*(xx[1]+i)));
x[i]=*(xx[3]+i);
fx=objf(x);
f3=fx;
q=(f1-2*f2+f3)*(f1-f2-dlt)*(f1-f2-dlt);
d=0.5*dlt*(f1-f3)*(f1-f3);
if((f3<
f1)||(q<
d))
{if(f2<
=f3)
for(i=0;
*(xx[0]+i)=*(xx[2]+i);
else
*(xx[0]+i)=*(xx[3]+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);
*(xx[0]+i)=x[i];
for(j=m+1;
*(ss+i*(n+1)+j-1)=*(ss+i*(n+1)+j);
voidmain()
{doublep[]={1,2};
doubleff,x[2];
ff=powell(p,0.3,0.001,0.0001,2,x);
printf("
x[0]=%f,x[1]=%f,ff=%f\n"
x[0],x[1],ff);
getchar();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机械 优化 设计 语言 程序 精品 文档