单纯形法解决无约束优化问题.doc

单纯形法解决无约束优化问题.doc

ID:49975641

大小:168.60 KB

页数:7页

时间:2020-03-03

单纯形法解决无约束优化问题.doc_第1页
单纯形法解决无约束优化问题.doc_第2页
单纯形法解决无约束优化问题.doc_第3页
单纯形法解决无约束优化问题.doc_第4页
单纯形法解决无约束优化问题.doc_第5页
资源描述:

《单纯形法解决无约束优化问题.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、分数:___________任课教师签字:___________课程作业学年学期:2017——2018学年第二学期课程名称:优化理论作业名称:作业三学生姓名:学号:提交时间:一、问题重述形如的问题称为无约束优化问题,常用下降算法来解决这类问题。下降算法的关键在于步长和搜索方向的选取。步长的求取可以借助前面作业中提到的一维搜索等方法求取,而搜索方向算法可以分为两大类,解析法和直接法。解析法借助了目标函数的导数进行搜索,这类算法搜索速度快、效率高,但是对目标函数的要求更为严格。常用的方法有最速下降法、Newton法、共轭梯度法、拟Newton法等。直接法不使用导数,也不需要得到目

2、标函数的明确解析式,只需要能够得到某些函数上的点即可。因此直接法的适用范围更广,但相应的收敛速度会较慢,计算量也会随着问题维数的增加而迅速增大。常用的方法有单纯形法、Powell方向加速法以及Powell改进算法。本作业以直接法的Powell法为例,解决具体的无约束优化问题,并对将Powell方向加速法和Powell改进算法解决结果进行对比。二、算法原理对于n维正定二次函数,设关于G共轭,与为任意不同点。分别从与出发,依次沿作一维搜索。如果最后找到两个互不相同的极小点与,则与关于G共轭。Powell方向加速法正是基于这一原理,每次迭代过程作n+1次一维搜索。第一次沿给定的n个

3、线性无关的方向依次作一维搜索,之后沿由这一阶段的起点到第n次搜索所得到的点的方向P再做一次一维搜索,并把这次所得点作为下一阶段的起点,下一阶段的n个搜索方向为。以此直到找到最优解。此算法是在迭代中逐次生成共轭方向,而共轭方向又是较好的搜索方向,所以称之为方向加速法。但是,此算法产生的n个向量可能线性或近似线性相关,这时张不成n维空间,可能得不到真正的极小点。因此,Powell原始算法存在一定的缺陷。Powell改进算法虽然不再具有二次终止性,但克服了搜索方向的线性相关的不利情形,是解决无约束优化问题较有效的直接法之一。本次作业一维搜索的过程是利用函数求导,求得最小值。经过试验

4、发现,α是允许为负数的。否则最终寻优得到的极值点与实际结果存在很大的偏差,而且寻优的效率特别低下。三、算法流程Powell算法流程图:图1Powell算法流程图Powell改进算法流程图:图2Powell改进算法流程图四、实验验证1、设目标函数,收敛精度为0.001,初始点(-2,2)。利用Matlab自带的函数求二元函数极值点函数fminsearch,求得极值点为(-0.630,-1.500),最小值为-1.722。以此为标准,检验Powell方向加速法和Powell改进算法的寻优结果。Powell方向加速法经过2次迭代,求得极值点(-0.630,-1.500),对应的最小

5、值-1.722;Powell改进方向加速法经过2次迭代,求得极值点(-0.630,-1.500),对应的最小值1.722。2、设目标函数,收敛精度为0.001,初始点(-2,2)。利用Matlab自带的函数求二元函数极值点函数fminsearch,求得极值点为(0.5827,-1.7913),最小值为-1.5109。以此为标准,检验Powell方向加速法和Powell改进算法的寻优结果。Powell方向加速法经过4次迭代,求得极值点(0.5827,-1.7912),对应的最小值-1.5109;Powell改进方向加速法经过2次迭代,求得极值点(-0.630,-1.500),对

6、应的最小值1.722。两种方法对应的寻优过程如下图所示。图3Powell直接与改进法寻优过程四、算法程序1、Powell方向加速关键部分算法:error=0.001;x_process=[-2,2];dimensions=2;P=[eye(dimensions);zeros(1,dimensions)];%初始搜索方向symsaerfa;while(1)x_zero=x_process;fori=1:dimensions%沿着P(i,:)方向进行一维搜索f=F_Object(x_process+aerfa*P(i,:));aerfa_process_all=double(re

7、al(solve(diff(f))));F_process_j=[];forj=1:length(aerfa_process_all)aerfa_process=aerfa_process_all(j);x_process_j=x_process+aerfa_process*P(i,:);F_process_j=[F_process_jF_Object(x_process_j)];end[~,j]=min(F_process_j);aerfa_process=aerfa_process_all(j);x

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

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

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