资源描述:
《坐标轮换法c程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、//1.cpp:Definestheentrypointfortheconsoleapplication.////用坐标轮换法求得函数的最优解//#include"stdafx.h"#include"math.h"#include"conio.h"#include"stdlib.h"#definee0.1doublefuntion(doublex[],inta){doublef1;f1=pow(pow(x[0],2)+x[1]-11,2)+pow(x[0]+pow(x[1],2)-7,2);returnf1;}intmain(inta
2、rgc,char*argv[]){ints1[2],s2[2],i,j;doublex[100][2],xl[2],h1,t,m,f1,f2,fl,p,f3,f4;h1=0.005,t=0.005,p=2;s1[0]=1,s1[1]=0;s2[0]=0,s2[1]=1;x[0][0]=1.000000,x[0][1]=1.000000;f1=funtion(x[0],2);x[1][0]=x[0][0]+h1*s1[0];x[1][1]=x[0][1]+h1*s1[1];f2=funtion(x[1],2);for(j=1;;j++)
3、{if(f1>f2){for(i=2;;i++){h1=p*h1;f3=funtion(x[i-1],2);x[i][0]=x[i-1][0]+h1*s1[0];x[i][1]=x[i-1][1]+h1*s1[1];f4=funtion(x[i],2);if(f34、=x[i-1][0]+h1*s1[0];x[i][1]=x[i-1][1]+h1*s1[1];f4=funtion(x[i],2);h1=p*h1;if(f3f2){for(i=
5、2;;i++){t=p*t;f3=funtion(x[i-1],2);x[i][0]=x[i-1][0]+t*s2[0];x[i][1]=x[i-1][1]+t*s2[1];f4=funtion(x[i+1],2);if(f36、i][1]=x[i-1][1]+t*s2[1];f4=funtion(x[i],2);t=p*t;if(f37、f,%f)最优解的函数值为:fl=%f",xl[0],xl[1],fl);exit(0);}else{h1=0.005,t=0.005,p=0.95*p;x[0][0]=1.000000,x[0][1]=1.000000;f1=funtion(x[0],2);x[1][0]=x[0][0]+h1*s1[0];x[1][1]=x[0][1]+h1*s1[1];f2=funtion(x[1],2);}}return1;}