发布时间 : 星期日 文章机械最优化设计 - 图文更新完毕开始阅读
《机械最优化设计》作业
姓名: 陈辉 学号: 405928914106 专业: 机械工程
6-4 用最优梯度法和变尺度法对习题2-5
F(x)=100(x2-x1^2)^2+(1-x1)^2
寻优(设取初始点X0=[-1.2,1.0]’)。
注:1.该函数式1960年由Rosenbrock提出的一个检验各种算法的标准函数,称为试验函数。这个函数的特点是:每个等值面是一个窄长弯曲的谷道,外形像香蕉,又称香蕉函数,其最优点Xn=[1,1]’,最优值F(Xn)=0。
2.此题不能用手工计算,必须借助计算机才能求解。
一、最优梯度法
最优梯度法师应用目标函数的负梯度方向作为每一步迭代的搜索方向。因为每一步都取负梯度方向的最优步长,故称为最优梯度法。应用最优梯度法会使目标函数值在开头几步下降最快,故又称之为最优下降法。
1) 解题步骤:
step1:任意选择初始点X0(-1.2,1.0),给出收敛精度e>0,迭代次数k=1;
step2:计算Xk点的梯度df及梯度的模g,确定在Xk的搜索方
向,s=-df/g;
step3:判断是否满足收敛准则g Xn=Xk,最优值Fn=z(Xk);否则继续下一步迭代。 step4:从Xk点出发,沿s方向进行一维搜索,求最优步长a, 即 a=-(df'*s)/(s'*dff*s); step5:计算x2=x1+a*s'; k=k+1;x1=x2;回到step2继续迭代。 2) 流程图如下: 给出x0,e>0 k=1 计算df,g,s=-df/g; Y g 3)M文件: function [fn,xn]=OGM(x0,e) if (e<=0) error('e要大于0') error('这是最优梯度法') else k=1; x1=x0; for i=1:10000 [z,df,dff,g]=fun1(x1); s=-df/g; if (g a=-(df'*s)/(s'*dff*s); x2=x1+a*s'; k=k+1; x1=x2; end end end 4)运行效果图如下: 图中e为精度,k为迭代次数,fn为满足精度条件的最优值,xn为最优解 5)评估