1存档资料成绩:华东交通大学课程设计报告书所属课程名称MATLAB语言及应用题目可视化(GUI)黄金分割法求极值院(系)软件学院班级软件+电气11-4班学号20112110080415学生姓名况水云指导教师祝振敏辅导教师2013年月日2课程设计(论文)任务书电气学院电气+软件专业11级(4)班一、课程设计(论文)题目可视化(GUI)的黄金分割法求极值二、课程设计(论文)工作自2013年6月24日起至2013年6月30日止。三、课程设计(论文)内容要求:1.本课程设计的目的(1)使学生掌握用MATLAB语言来设计编写程序,应用MATLAB软件解决实际问题的能力;(2)培养学生的调试程序的基本能力;(3)培养学生分析、解决问题的能力;(4)提高学生的科技论文写作能力。2.课程设计的任务及要求1)基本要求:(1)利用matlab中的GUI设计窗口设计一个界面程序。(2)掌握黄金分割法求极值函数的编写;(3)含有一个按钮控件,它的作用能够对一个函数求极值;(4)含有多个编辑框控件显示需求极值的函数、极值点以及所求得的值;(5)含有适当的静态文本框显示编辑框的含义;。2)提高要求:在基本要求达到后,可进行创新设计,如增加软件的功能,优化程序等。3)课程设计论文编写要求(1)要按照书稿的规格誊写课设论文(2)论文包括目录、绪论、正文、小结、参考文献、附录等(3)正文中要有程序设计思路的阐述,程序流程图等(4)课设论文装订按学校的统一要求完成34)课设考核:从以下几方面来考查:(1)出勤情况及任务的饱满程度;(2)设计任务的难易程度;(3)完成课设任务情况;(4)动手调试能力;(5)论文撰写的原理分析、设计思路以及论述的层次性、条理性、格式的规范性;5)课程设计进度安排内容天数地点构思及收集资料1图书馆程序设计与调试3机房撰写论文1教室学生签名:2013年6月30日课程设计(论文)评审意见(1)任务难易及完成情况:优()、良()、中()、一般()、差();(2)完成调试能力评价:优()、良()、中()、一般()、差();(3)论文撰写水平评价:优()、良()、中()、一般()、差();(4)论文格式规范性评价:优()、良()、中()、一般()、差();(5)考勤及任务饱满情况:优()、良()、中()、一般()、差();评阅人:2013年7月3日4目录一、matlab介绍.....................................................................................................51、matlab的简介.........................................................................................................52、matlab的特点.........................................................................................................5二、GUI介绍..........................................................................................................61、GUI简介.................................................................................................................62、GUI特点.................................................................................................................6三、黄金分割法介绍...............................................................................................71、黄金分割法基本思路.............................................................................................72、黄金分割法基本原理..........................................................................................7-93、实验程序框图....................................................................................................9-104、黄金分割法程序代码...........................................................................................10四、可视化(GUI)黄金分割法界面截图........................................................11-12五、心得体会........................................................................................................13六、参考文献........................................................................................................13附录:程序源代码...........................................................................................14-225一、Matlab介绍1、MATLAB的简介MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB不仅具备卓越的数值计算能力,还具有专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多.2、MATLAB的特点:1)语言简洁紧凑,使用方便灵活,库函数极其丰富。2)运算符丰富。3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。4)程序限制不严格,程序设计自由度大。5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。6)MATLAB的图形功能强大。7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。8)功能强大的工具箱是MATLAB的另一特色。9)源程序的开放性。6二、GUI介绍1、GUI简介:GUI是GraphicalUserInterface的简称,即图形用户界面,通常人机交互图形化用户界面设计经常读做“goo-ee”,准确来说GUI就是屏幕产品的视觉体验和互动操作部分。GUI是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。GUI即人机交互图形化用户界面设计。纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到GUI在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事GUI的研究与设计,同业间也成立了若干机构,以互相交流GUI设计理论与经验为目的。随着中国IT产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。2、GUI特点:GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。7三、黄金分割法介绍1、黄金分割法基本思路黄金分割法适用于[a,b]区间上的任何单谷函数求极小值问题,对函数除要求“单谷”外不做其他要求,甚至可以不连续。因此,这种方法的适应面非常广。黄金分割法也是建立在区间消去法原理基础上的试探方法,即在搜索区间[a,b]内适当插入两点a1,a2,并计算其函数值。a1,a2将区间分成三段,应用函数的单谷性质,通过函数值大小的比较,删去其中一段,是搜索区间得以缩小。然后再在保留下来的区间上作同样的处理,如此迭代下去,是搜索区间无限缩小,从而得到极小点的数值近似解。2、黄金分割法的基本原理一维搜索是解函数极小值的方法之一,其解法思想为沿某一已知方向求目标函数的极小值点。一维搜索的解法很多,这里主要采用黄金分割法(0.618法)。该方法用不变的区间缩短率80.618代替斐波那契法每次不同的缩短率,从而可以看成是斐波那契法的近似,实现起来比较容易,也易于人们所接受。黄金分割法是用于一元函数f(x)在给定初始区间[a,b]内搜索极小点xmin的一种方法。它是优化计算中的经典算法,以算法简单、收敛速度均匀、效果较好而著称,是许多优化算法的基础,但它只适用于一维区间上的凸函数,即只在单峰区间内才能进行一维寻优,其收敛效率较低。其基本原理是:依照“去劣存优”原则、对称原则、以及等比收缩原则来逐步缩小搜索区间。具体步骤是:在区间[a,b]内取点:a1,a2把[a,b]分为三段。①如果f(a1)f(a2),令a=a1,a1=a2,a2=a+0.618*(b-a);②如果f(a1)f(a2),令b=a2,a2=a1,a1=b-0.618*(b-a);如果|(b-a)/b|和|(y1-y2)/y2|都大于收敛精度ε重新开始循环。因为[a,b]为单峰区间,这样每次可将搜索区间缩小0.618倍,处理后的区间都将包含极小点的区间缩小,然后在保留下来的区间上作同样的处理,如此迭代下去,将使搜索区[a,b]逐步缩小,9直到满足预先给定的精度时,即获得一维优化问题的近似最优解。插入点原理图如下:3、实验程序框图104、黄金分割法程序代码黄金分割法:1选定初始区间[a1,b1]及精度tol大于0,计算试探点:λ1=a1+0.382*(b1-a1)µ1=a1+0.618*(b1-a1)并令k=12若b(k)-a(k)小于tol,则停止计算,否则当f(λ(k))大于f(µ(k))时转3当f(λ(k))小于等于f(µ(k))时转43置a(k+1)=λ(k)b(k+1)=b(k)λ(k+1)=µ(k)µ(k+1)=a(k+1)+0.618*(b(k+1)-a(k+1))转54置a(k+1)=a(k)b(k+1)=µ(k)µ(k+1)=λ(k)λ(k+1)=a(k+1)+0.382*(b(k+1)-a(k+1))5令k=k+1转211四、可视化(GUI)界面截图12带入函数检验:13五、心得体会通过这次课程设计,我对黄