《优化设计作业及程序》由会员分享,可在线阅读,更多相关《优化设计作业及程序(9页珍藏版)》请在金锄头文库上搜索。
1、优化设计程序及作业1进退法求搜索区间程序:function hu=hunt(x1,h)%定义函数为hunt,x1为初始值,h为步长f=(x)x2-7*x+10;f1=f(x1);x2=x1+h;f2=f(x2);if f1f2 h=-h; x3=x1;f3=f(x3); x1=x2;f1=(x1); x2=x3;f2=f(x2);end x3=x2+h;f3=f(x3); while f3j f1=f(x1); f2=f(x2); if f1f2 b=x2;x2=x1; x1=a+(1-k)*(b-a); else a=x1; x1=x2; x2=a+k*(b-a); end enddispl
2、ay(所求最优解)x=(a+b)/2display(所求函数)y=f(x)在命令窗口运行gold(3.4,3.6,0.01)得到所求最优解:x =3.4798所求函数值:y = -2.2496黄金分割总程序function hj=hjfg(q1,h,j)%定义黄金分割法为hjfg,x1为初始值,h为初始步长,j为初始精度f=(x)x2-7*x+10;f1=f(q1);q2=q1+h;f2=f(q2);if f1f2 h=-h; q3=q1;f3=f(q3); q1=q2;f1=(q1); q2=q3;f2=f(q2);end q3=q2+h;f3=f(q3); while f3j f1=f(c
3、1); f2=f(q2); if f1j for i=1:2 if i=1 s=s1;p1=p3;p=p1; else s=s2;p=p2; end%黄金分割法子程序 f=(x)zb(p+x.*s); %进退法子程序 x1=0; x2=x1+h; f2=f(x2);f1=f(x1); if f1f2 h=-h; x3=x1;f3=f(x3); x1=x2;f1=(x1); x2=x3;f2=f(x2); end x3=x2+h;f3=f(x3); while f30.1 f1=f(c1);f2=f(c2); if f1j r=r*c; for i=1:2 if i=1 s=s1;p1=p3;p
4、=p1; else s=s2;p=p2; end%黄金分割法子程序 f=(x)cf(p+x.*s); %进退法 x1=0; x2=x1+h; f2=f(x2);f1=f(x1); if f1f2 h=-h; x3=x1;f3=f(x3); x1=x2;f1=(x1); x2=x3;f2=f(x2); end x3=x2+h;f3=f(x3); while f30.1 f1=f(c1);f2=f(c2); if f1f2 b=c2;c2=c1;c1=a+(1-k)*(b-a); else a=c1;c1=c2;c2=a+k*(b-a); end end r=(a+b)/2; if i=1 p2=p+r.*s; else p3=p+r.*s; end endenddisplay(极值点x)x=p3display(函数值y)y=2*x(1)2+2*x(2)2-2*x(1)*x(2)-4*x(1)-6*x(2)输入cfhs(1.1 0.7,0.001,4,8,0.01) 得极值点x:x =1.5000 0.2400函数值y:y =-3.5448二次插值法原始共轭法