几类无约束最优化问题全局最优解的Matlab实现
2008 NO.31
职业技术研究
China Education Innovation Herald
中国科教创新导刊
几类无约束最优化问题全局最优解的Matlab实现
刘芳 钟献词
(广西大学数学与信息科学学院 南宁 530004)
摘 要:基于Matlab的数值计算和可视化功能,本文获得了几类无约束最优化问题全局最优解,为探索数学应用软件Matlab在《最
优化方法》教学中的应用提供了新的思路。
关键词:全局最优解 Matlab 最优化方法 教学
中图分类号:G642 文献标识码:A 文章编号:1673-9795(2008)11(a)-0207-02
第二次世界大战以来,最优化理论和方法获得了蓬勃发展[1],并逐步应用到生产、管理、商业以及军事和决策等领域。其基本的想法是对各种实际问题寻求最优解,构造求解的计算方法,并研究这些计算方法的理论性质和实际计算结果。最直接的做法是利用已有的物理、化学、生物、经济等各种领域中的规律,建立数学模型,然后寻求自变量范围内目标函数的最优解。在已有的一些算法中,如:最速下降法,Newton法,共轭梯度法和拟Newton法等,只能获得初始点附近的局部最优解。而一般来说,只有全局收敛性才具有实际意义,于是如何寻求目标函数的全局最优解引起了研究者的极大兴趣并取得了众多的成果[2]。另一方面,如果我们能够找到全局最优点的近似值然后把它作为初始值,再利用已有的局部最优化算法,也能获得目标函数的全局最优解,目前被广泛采用的Matlab数学软件
[3~4]
图2 两变量函数的图形
单变量函数的最优化问题的求解一般采用线性搜索法,如:Fibonacci法,黄金分割法,进退法和不精确一维搜索Wolfe算法等。Matlab最优化工具箱中求解单变量极值的函数fminbnd也只能求得某一个极值点,不能得到全局最优解。于是,我们先通过画出单变量函数的图形找到最优点的近似坐标,然后利用fminbnd函数寻求目标函数的全局最优解。我们考虑下面的最优
化
问题:
该函数有多个极值点,我们首先利用Matlab的作图功能画出其图形(图1),并找到全局最优点的近似坐标(0.9274,-1.3693),对应的Matlab程序为:
x=0∶0.01∶5; y=cos(3*x).*\exp(-x)-
1;plot(x,y);x_zuiyou=ginput(1);
再利用fminbnd函数,获得了目标函数的全局最优点(0.9399,-1.3706),Matlab程序实现如下:
y1=inline('\cos(3*x).*\exp(-x)-1','x');[x1,fval]=fminbnd(y1,0.8,1.2)
而如果直接把x的范围写为[0,5],即以上程序修改为:[x1,fval]=fminbnd(y1,0,5)
则只能得到f(x)的一个极值点(3.0340,-1.0456),不能得到f(x)的全局最小点。1.2二维最优化问题
当目标函数有两个变量时,其全局最优解的获得自然比单变量函数要复杂,但还是可以通过做图法求解。比如求解下列最优化问题:
利用Matlab的画图功能,得到三维图2,以及网格划分后的全局最小点近似坐标(0, 2.2, -5.06),然后以 (0, 2.2) 为初始值,由函数fminsearch或者fminunc可得目标函数的全局最小点为(0.0333,2.2666,-5.0633)。相应的Matlab程序为:
x=-4:0.1:4; y=x; [X,Y]=meshgrid(x,y);Z=X.*X-X.*Y+Y.*Y+2.2*X-4.5*Y;surf(X,Y,Z);Z_min=min(min(Z));[ii,jj]=find(Z==Z\_min); x0=x(jj);y0=y(ii);
y1=inline('x(1).*x(1)-x(1)*x(2)+x(2).*x(2)+2.2*x(1)-4.5*x(2)','x');[x1,fval1]=fminsearch(y1,[x0,y0]),[x2,fval2]=fminunc(y1,[x0,y0])
,从某种程度上能够实现这种想法。本文试图采用Matlab强大的数值计算
和可视化功能,先找到目标函数全局最优解的近似值,然后利用Matlab最优化工具箱中的函数,获得目标函数的全局最优解,也为增强《最优化方法》教学中的趣味性和探索性提供了一条可行的途径。
1全局最优解
下面分别考虑几类无约束最优化问题的全局最优解。1.1一维最优化问题
图
1
单变量函数的图形
中国科教创新导刊 China Education Innovation Herald207
中国科教创新导刊
1.3多维最优化问题
2008 NO.31
China Education Innovation Herald
具箱中的函数,获得了目标函数的全局最优解。
(1)+x(2)*x(2)+x(3)*x(3)','x');L=[-5,-5,-5];u=[5,5,5]; x0=[-1,0,0];TolFun=1e-9;TolX=1e-5;kmax=800;q=0.8;[xo_sa,fo_sa]=Opt_Simu(f,x0,L,u,kmax,q,TolFun).
得到全局最优解的近似值1.5187,最小值点为x1=(-1.6483,-1.5148,1.2168),进一步,取x1为初始点,采用函数fminsearch和fminunc可得目标函数的最小值1.2415,最小值点x1相应的修改为(-1.4187,-1.4187,1.4188)。
多元函数的全局最优化问题的理论和方法远没有局部最优化方法那么成熟和完善,到目前为止甚至还没有一个全局性的判断准则。然而也有一些方法能够近似的得到目标函数的全局最优解,如:区间方法,模拟退火法和遗传算法等。本文却先根据模拟退火法给出多元目标函数全局最小值的近似值,然后进一步采用局部最优
化算法获得全局最优解。如考虑下列最优
化问题:
参考文献
[1]袁亚湘,孙文瑜.最优化理论与方法[M].
北京:科学出版社,1997.
[2]申培萍.全局优化方法[M].北京:科学
出版社,2006.
[3]张志涌.精通MATLAB 6.5版[M].北
京:北京航空航天大学出版社,2003.[4]王正林,龚纯,何倩.精通MATLAB 科
学计算[M].北京:电子工业出版社,2007.
2结语
本文基于Matlab的数值计算和可视化
利用[4]中提供的模拟退火法函数Opt_Simu,编辑Matlab程序为:
f=inline('5*\cos(x(1)*x(2)*x(3))+x(1)*x
功能,对几类无约束的最优化问题,首先给出目标函数全局最优点的近似解,然后把它作为初始值,再利用Matlab最优化工
(上接206页)
性,有机地把课内探索延伸到课外,总之,尊重科学,实事求是,面对群体,以实验创新教育为前提,使学生达到掌握物理实验技能和科学方法,养成态度,学会运用实验手段解决物理问题的能力为指导思想,强化实验教学目标,要求学生在实验的全过程中自始至终抓好“七个正确”:其一,选择仪器正确;其二,安装调试实验装置正确;其三,操作规程正确;其四,观察方法正确;其五,测量读数正确;其六,处理数据正确;其七,实验结论正确。
2.4独立设课、单独考核提高了实验教学的地位
在传统实验教学中,电工与电子技术实验都是根据的教学进度和内容进行安排,完全依附于理论课。所以,学生对做实验普遍不重视、兴趣不大。为了提高学生的操作分析问题的能力,改变“重理论、轻实践”的思想,我们将电工与电子技术实验课改成独立设课,自成体系,集中训练,并且单独考核。实验课独立设课后提高了实验教学的地位,保证了教学时数,增强了实验的系统性,同时有利于各教学班实验课的合理安排和统一管理,有利于对学生进行考核,激发学生的学习热情,使实验教学与为相互联系、相互融合的两个独立教学环节。单独考核提高了学生对实验的重视程度。实验课独立设课后,应建立相应的考核机制,改变学生成绩评定办法。实验课的考核相对于理论课要复杂得多,不仅要体现公平合理,而且更重要的是要通过考核让学生看到自己的成就,认识自己的不足。为了让每个学生都了解考核项目、考核方法和评分标准,从一开始做实验就向学生公布考核的基本要求和考核项
目。考核内容采取抽签的形式确定,考核方式采取分批或分组进行,必要时还可采取答辩的形式,边做、边问、边答。这样,每个学生的操作情况教师都看得很清楚,从而使考试成绩更加真实。关于学生成绩的评定,我们采用的是分级制,即按优秀、良好、中等、及格和不及格五等记。这种实验单独考核记成绩的做法,可以引起学生对实验的重视。
实践教学是培养高等技术应用人才的重要手段,加强实践教学环节,注重学生职业技能训练与职业素质培养的有机结合,一方面可以使教师更好的了解经济社会发展对人才素质的要求及其发展趋势,促进教师对教学内容和教学方法的改革,使教学与社会实际紧密结合;另一方面,可以使学生克服理论脱离实践的弊病,提高动手能力与职业素质为将来走向工作岗位打下坚实的基础。
实际的能力,要求实践教学内容应具有实用性、应用性、针对性,实践教学课程的教学学时与理论教学学时的比例至少应为1∶1,保证学生有足够的时间进行实践能力训练。
2.2传统实践教学模式的不足
电工实验教学的基本原则没有得到充分的体现,教学方式呆板,从教学内容到教学方式没有给学生留出足够的发展空间。就分组实验来说,教材从实验目的、实验原理、仪器、操作步骤到注意事项,写得面面俱到,然而每次实验课教师还要花相当长的时间根据教材讲实验目的、原理……然后学生照着现成的实验步骤或跟着教师动几下,取几个数据,实验就算完成了。这样做实验,收获不大,再说,现阶段往往是一个班的学生同一时间做同一个实验,用同一种方法、相同的仪器,都要在规定时间内做完,得出同一结论,这样就有可能导致部分学生看别人怎么做,自己就怎么做,特别是两人合做时,有极少数学生只看不动手,也不留心实验观察,不记录有关数据,更谈不上去思考,这种教学模式不利于提高学生突破思维定势这个思维障碍,不利于学生创新思维方法的形成,不利于学生智能的发展。
2.3加强电工实践教学的探索
电工实验教学过程中确定以实验为基础,用实验来展开激发学生的实验兴趣,发挥学生参与教学的主动性和积极性,培养学生操作实验、设计实验的实践能力和创造能力。加强实验教学的研究,尽量把验证性实验改为探索性实验,把演示实验改为边讲边实验,通过挖掘教学内容的学术
参考文献
[1] 程周.电工基础[M].北京:高等教育出版
社,2004,7.
[2]王丽华.强化实践教学培养创新能力[J].
辽宁高职学报,2004,(6).
[3]杜德昌,许传清.电工电子技术及应用
[M].北京:高等教育出版社,2002,7.
208中国科教创新导刊 China Education Innovation Herald