} }
g1=gradient(xk); fi=fny(xk); x0=xk;
for(k=0;k { } xx=xk; break; ib=0; for(i=0;i { s[i]=0; } for(i=0;i for(j=0;j s[i]+= -h[i][j]*g1[j]; } } aa=lagrange(xk,ft,s); xk1=iterate(xk,aa,s); g2=gradient(xk1); for(i=0;i if((fabs(g2[i])>=ac)&&(fabs(g2[i]-g1[i])>=ac)) { } } ib=ib+1; if(ib==0) { } xx=xk1; break; fi=*ft; if(k==n-1) { int j; xk=xk1; for(i=0;i for(j=0;j { h[i][j]=0; if(j==i) h[i][j]=1; } } g1=g2; k=-1; } else { int j; double a1=0,a2=0; for(i=0;i for(i=0;i int j; dg[i]=g2[i]-g1[i]; dx[i]=xk1[i]-xk[i]; u[i]=0;v[i]=0; for(j=0;j u[i]=u[i]+dg[j]*h[j][i]; v[i]=v[i]+dg[j]*h[i][j]; } } for(j=0;j a1+=dx[j]*dg[j]; a2+=v[j]*dg[j]; } if(fabs(a1)!=0) { a2=1+a2/a1; for(i=0;i for(j=0;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; } void main () { } int k; double *xx,f; double xk[n]={1,1}; xx=bfgs(xk); f=fny(xx); printf(\for(k=0;k printf(\getch(); printf(\ 五、计算结果及分析
机械优化设计实验报告 - 图文



