资源描述:
《现代设计方法上机.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、现代设计方法上机一、黄金搜索法1.程序框图2.参考程序:function[xstar,minvalue,a,b]=golden(f,a,b,e)%golden为黄金搜索方法,本程序只针对一元函数%[xstar,fminvalue]=golden(f,a,b,eps)为输入函数f为函数eps为允许误差(a,b)为初始点,xstar为极小值点,fminvalue为极值;%昆明理工大学机电工程学院机械工程系刘孝保2012年11月a1=a+0.382*(b-a);a2=a+0.618*(b-a);y1=subs(f,'x',a1);y2=subs(
2、f,'x',a2);flag=true;k=0;disp(['黄金搜索过程如下:']);while(flag)disp(['k='num2str(k)';a='num2str(a)';a1='num2str(a1)';a2='num2str(a2)';b='num2str(b)';y1='num2str(subs(f,'x',a1))';y2='num2str(subs(f,'x',a2))]);if(y13、a2;y1=y2;a2=a+0.618*(b-a);y2=subs(f,'x',a2);endlength=b-a;if(length4、unction[xstar,fminvalue]=fsxsteep(f,e,a,b)%fsxsteep为最速下降法,本程序只针对二元函数%[xstar,fminvalue]=fsxsteep(f,e,a,b)为输入函数f为函数e为允许误差(a,b)为初始点,xstar为绩效指点,fminvalue为极值;%昆明理工大学机电工程学院机设系刘孝保disp(['================================================================']);disp(['******************2
5、.无约束优化之最速下降法************************']);disp(['================================================================']);x1=a;x2=b;xx0=[x1,x2]';k=0;fx1=diff(f,'x1');%对x1求偏导数fx2=diff(f,'x2');%对x2求偏导数g=[fx1fx2]';%梯度g1=subs(g);%把符号变量转为数值d=-g1;fig=figure();plot(x1,x2,'o')%画初始点text(x
6、1,x2,['('num2str(x1)','num2str(x2)')'])%画初始点坐标holdon;axisequalff=f-subs(f);hhh=ezplot(ff);%画目标函数等值线set(hhh,'linewidth',3);holdon;pause(1);alpha=YJFC(f,x1,x2,d);%求第一步最优步长disp(['初始迭代方向为:('mat2str(d)')。']);disp(['初始迭代的最优步长为alpha='num2str(alpha)'。']);while(abs(norm(g1))>=e)dis
7、p(['*******************第'num2str(k)'次迭代*********************']);xx1=subs(xx0+alpha*d);x1=xx1(1);x2=xx1(2);xx1=subs(xx1);plot([xx0(1)xx1(1)],[xx0(2)xx1(2)],'red','linewidth',3)%画搜索方向和步长xx0=xx1;%变量换号g1=subs(g);%把符号变量转为数值d=-subs(g);if(abs(norm(g1))~=0)alpha=YJFC(f,x1,x2,d);%求
8、第一步最优步长enddisp(['新的迭代方向为:('mat2str(d)')。']);disp(['最优步长alpha='num2str(alpha)'。']);disp(['