鲍威尔法实验报告.doc#include ""
include ""
include ””
double objf(double x[])
{double ff;
ff=10*(x[0]+x[l]-5)*(x[0]+x[l]-5)+(x[0]-x[l])*(x[0]-x[l]); return(ff);
void jtf(double x0[],double hO,double s[],int n,double a[],double b[]) {inti;
double *x[3],h,f1,f2,f3;
for(i=0;i<3;i++)
x[i]=(double *)malloc(n*sizeof(double));
h=hO;
for(i=0;i<n;i++)
*(x[0]+i)=x0[i];
f1=objf(x[0]);
for(i=0;i<n;i++)
*(x[1]+i)=*(x[0]+i)+h*s[i];
f2=objf(x[1]);
if(f2>=f1)
{h=-hO;
for(i=0;i<n;i++)
*(x[2]+i)=*(x[0]+i);
f3=f1;
for(i=0;i<n;i++)
{*(x[0]+i)=*(x[1]+i);
*(x[1]+i)=*(x[2]+i);
}
f1=f2;
f2=f3;
}
for(;;)
{h=2*h;
for(i=0;i<n;i++)
*(x[2]+i)=*(x[1]+i)+h*s[i];
f3=objf(x[2]);
if(f2<f3) break;
else
{for(i=0;i<n;i++)
{*(x[0]+i)=*(x[1]+i);
*(x[1]+i)=*(x[2]+i);
}
f1=f2;
f2=f3;
if(h<0)
for(i=0;i vn ;i++) {a[i]=*(x[2]+i);
b[i]=*(刈 0]+i);
else for(i=0;i<n;i++) {a[i]=*(x[O]+i);
b[i]=*(x[2]+i);
} for(i=0;iv3;i++) free(x[i]);
double gold(double a[],double b[],double epsjnt n,double xx[]) {inti;
double f1 ,f2,*x[2],ff,q,w;
for(i=0;i<2;i++)
x[i]=(double *)malloc(n*sizeof(double));
for(i=0;i<n;i++)
{*(x[0]+i)=a[i]+*(b[i]-a[i]);
*(x[1]+i)=a[i]+*(b[i]-a[i]);
}
f1=objf(x[0]);
f2=objf(x[1]);
do
{if(f1>f2)
{for(i=0;i<n;i++)
{b[i]=*(x[0]+i);
*(x[0]+i)=*(x[1]+i);
}
f1=f2;
for(i=0;i<n;i++)
*(x[1]+i)=a[i]+*(b[i]-a[i]);
f2=objf(x[1]);
}
else
鲍威尔法实验报告 来自淘豆网m.daumloan.com转载请标明出处.