坐标轮换法C语言相关程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
坐标轮换法C语言相关程序
#include<>
#include<>
float f(float x[])
{ float z;
z=4*(x[0]-5)*(x[0]-5)+(x[1]-6)*(x[1]-6);
return z;
}
,
float y,y1,y2,y3;
float x1[2], x2[2], x3[2],s[2],a[2],b[2]; int i,n=2; huangjin() /*黄金分割法确定每轮最优值*/
{
float e=,h0=,r=,h=h0; /*外推法确定区间*/
{y1=f(x1);
for(i=0;i for(i=0;i — y2=f(x2); if(y2>y1) {for(i=0;i for(i=0;i } for(i=0;i while(y3 {for(i=0;i ) for(i=0;i } for(i=0;i } for(i=0;i y1=f(x1); y2=f(x2); * if(y1>=y2) { for(i=0;i for(i=0;i for(i=0;i else { for(i=0;i ) for(i=0;i y1=f(x1); } while(abs(y2-y1)>=e) { if(y1>=y2) { for(i=0;i ] y2=f(x2); } else { for(i=0;i for(i=0;i y1=f(x1); } , } for(i=0;i } main( ) { float x0[2],e0=,sum; x0[0]=; x0[1]=; ¥ s[0]=0; s[1]=1; do { if(s[1]<1){s[0]=1;s[1]=0;} else{s[0]=0;s[1]=1;} for(i=0;i huangjin(); : sum=0; for(i=0;i sum+=(x1[i]-x0[i])*(x1[i]-x0[i]); if(sqrt(sum) for(i=0;i printf("the best result:\n"); for(i=0;i y=f(x1);printf("y=%f\n",y); getch(); }