机械最优化设计.doc

机械最优化设计.doc

ID:59185079

大小:178.50 KB

页数:10页

时间:2020-09-10

机械最优化设计.doc_第1页
机械最优化设计.doc_第2页
机械最优化设计.doc_第3页
机械最优化设计.doc_第4页
机械最优化设计.doc_第5页
资源描述:

《机械最优化设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《机械最优化设计》作业姓名:陈辉学号:6专业:机械工程6-4用最优梯度法和变尺度法对习题2-5F(x)=100(x2-x1^2)^2+(1-x1)^2寻优(设取初始点X0=[-1.2,1.0]’)。注:1.该函数式1960年由Rosenbrock提出的一个检验各种算法的标准函数,称为试验函数。这个函数的特点是:每个等值面是一个窄长弯曲的谷道,外形像香蕉,又称香蕉函数,其最优点Xn=[1,1]’,最优值F(Xn)=0。2.此题不能用手工计算,必须借助计算机才能求解。一、最优梯度法最优梯度法师应用目标函数的负梯度方向作为每一步迭代的搜索

2、方向。因为每一步都取负梯度方向的最优步长,故称为最优梯度法。应用最优梯度法会使目标函数值在开头几步下降最快,故又称之为最优下降法。1)解题步骤:step1:任意选择初始点X0(-1.2,1.0),给出收敛精度e>0,迭代次数k=1;step2:计算Xk点的梯度df及梯度的模g,确定在Xk的搜索方向,s=-df/g;step3:判断是否满足收敛准则g

3、;step5:计算x2=x1+a*s';k=k+1;x1=x2;回到step2继续迭代。2)流程图如下:k=1停xn=xkg0a=-(df'*s)/(s'*dff*s);x2=x1+a*s';k=k+1;x1=x2;YN3)M文件:function[fn,xn]=OGM(x0,e)if(e<=0)error('e要大于0')error('这是最优梯度法')elsek=1;x1=x0;fori=1:10000[z,df,dff,g]=fun1(x1);s=-df/g;if(g

4、=x1;fn=z;kbreakelsea=-(df'*s)/(s'*dff*s);x2=x1+a*s';k=k+1;x1=x2;endendend4)运行效果图如下:图中e为精度,k为迭代次数,fn为满足精度条件的最优值,xn为最优解5)评估沿负梯度方向的最优梯度法,其搜索路径实际上是成直角的锯齿形前进的,开始步长较大,越接近极小点,步长越小,收敛速度越慢。所以最优梯度法主要特点为能较快的接近于最优解的临近区域范围,一般更适用于求解问题的开局,而用作收局往往是不利的。在本题最优梯度法在编程中,将其e定为0.01,从运行效果图可以看出

5、,为达到最优值迭代次数为15次,相对较多。而且寻得的最优值和精确解有一定的误差。所以本程序把最优梯度法用于前期开局,并且将其迭代精度e定为10,以使其减少迭代次数。二、变尺度法变尺度法是由Dovidon,Fletcher和Powell于1959年提出,后经Broyden,Fletcher,Goldstein和Shanno等人于1970年进一步完善和发展的。其主要思想是充分发挥最优化梯度法和牛顿法的优点并综合而成的一种算法;或者说是为了克服这两种方法的缺点而提出的一种修正的方法。变尺度法在国内工程技术研究领域目前用得较多。也有把变尺度

6、法划归为修正牛顿法和拟牛顿法的。1)解题步骤:Step1.给定x0,e>0,nStep2.计算初始点的梯度模g,梯度矩阵df,赫森矩阵值dff,函数值f,令x1=x0;Step3.判断梯度模与迭代精度的大小,g>=e执行Step4,否则结束迭代,并且Xn=x0;fn=z;Step4.令H=[1,0;0,1];计算x1点的模g,梯度矩阵df,赫森矩阵值dff,函数值f。Step5.计算p=-H*df;求出最优步长rqr=-(df'*p)/(p'*dff*p);x2=x1+r*p';计算在x2的梯度模g。Step6.判断判断梯度模与迭代

7、精度的大小,g>=e,是执行Step7,否则xn=x2';fn=f;输出迭代次数k,结束循环。Step7.判断k与给定n值是否相等,若不等执行第Step8,否则x1=x2;k=1;回到Step4。Step8.计算detx=(x2-x1)';detg=df1-df;Z=H*detg;beta=1/(detx'*detg);miu=1/(Z'*detg);B=beta*detx*detx';C=miu*Z*Z';H=H+B-C;x1=x2;k=k+1;回到Step5;2)流程图如下:给定x0,e>0,ng>=e?停Xn=x0;fn=z;

8、H=[1,0;0,1],x1=x0;计算此时点梯度模g,函数值z。p=-H*df;求出最优步长rqr=-(df'*p)/(p'*dff*p);x2=x1+r*p';计算在x2的梯度模gg>=e?k==n?xn=x2';fn=f;输出迭

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。