matlab语言及应用课程设计报告可视化gui黄金分割法.docx

上传人:b****7 文档编号:25480839 上传时间:2023-06-09 格式:DOCX 页数:26 大小:303.08KB
下载 相关 举报
matlab语言及应用课程设计报告可视化gui黄金分割法.docx_第1页
第1页 / 共26页
matlab语言及应用课程设计报告可视化gui黄金分割法.docx_第2页
第2页 / 共26页
matlab语言及应用课程设计报告可视化gui黄金分割法.docx_第3页
第3页 / 共26页
matlab语言及应用课程设计报告可视化gui黄金分割法.docx_第4页
第4页 / 共26页
matlab语言及应用课程设计报告可视化gui黄金分割法.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

matlab语言及应用课程设计报告可视化gui黄金分割法.docx

《matlab语言及应用课程设计报告可视化gui黄金分割法.docx》由会员分享,可在线阅读,更多相关《matlab语言及应用课程设计报告可视化gui黄金分割法.docx(26页珍藏版)》请在冰豆网上搜索。

matlab语言及应用课程设计报告可视化gui黄金分割法.docx

matlab语言及应用课程设计报告可视化gui黄金分割法

存档资料成绩:

 

华东交通大学

课程设计报告书

 

所属课程名称MATLAB语言及应用

题目可视化(GUI)黄金分割法求极值             

·

   

院(系)软件学院 

班级软件+电气11-4 班

学  号20        

学生姓名况水云        

指导教师祝振敏     

辅导教师     

2013年月日

 

课程设计(论文)任务书

电气 学  院  电气+软件 专  业 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)课设论文装订按学校的统一要求完成

 

{

4)课设考核:

从以下几方面来考查:

(1)出勤情况及任务的饱满程度;

(2)设计任务的难易程度;

(3)完成课设任务情况;

(4)动手调试能力;

(5)论文撰写的原理分析、设计思路以及论述的层次性、条理性、格式的规范性;

{

5)课程设计进度安排

内容天数      地点

构思及收集资料1       图书馆

程序设计与调试3       机房

撰写论文1       教室

学生签名:

2013年6月30日

&

 

课程设计(论文)评审意见

(1)任务难易及完成情况:

优( )、良( )、中( )、一般( )、差( );

(2)完成调试能力评价 :

优( )、良( )、中( )、一般( )、差( );

(3)论文撰写水平评价  :

优( )、良( )、中( )、一般( )、差( );

(4)论文格式规范性评价:

优( )、良( )、中( )、一般( )、差( );

[

(5)考勤及任务饱满情况:

优( )、良( )、中( )、一般( )、差( );

评阅人:

2013年7月3日

一、matlab介绍5

~

1、matlab的简介5

2、matlab的特点5

二、GUI介绍6

1、GUI简介6

2、GUI特点6

三、黄金分割法介绍7

1、黄金分割法基本思路7

2、黄金分割法基本原理7-9

3、实验程序框图9-10

4、黄金分割法程序代码10

四、可视化(GUI)黄金分割法界面截图11-12

五、心得体会13

六、参考文献13

附录:

程序源代码14-22

一、|

二、

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)源程序的开放性。

二、GUI介绍

1、GUI简介:

GUI是GraphicalUserInterface的简称,即图形用户界面,通常人机交互图形化用户界面设计经常读做“goo-ee”,准确来说GUI就是屏幕产品的视觉体验和互动操作部分。

GUI是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。

这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。

GUI即人机交互图形化用户界面设计。

纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到GUI在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事GUI的研究与设计,同业间也成立了若干机构,以互相交流GUI设计理论与经验为目的。

随着中国IT产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。

2、GUI特点:

GUI的广泛应用是当今计算机发展的重大成就之一,他极大地方便了非专业用户的使用人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。

而嵌入式GUI具有下面几个方面的基本要求:

轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。

'

 

三、黄金分割法介绍

 

1、黄金分割法基本思路

黄金分割法适用于[a,b]区间上的任何单谷函数求极小值问题,对函数除要求“单谷”外不做其他要求,甚至可以不连续。

因此,这种方法的适应面非常广。

黄金分割法也是建立在区间消去法原理基础上的试探方法,即在搜索区间[a,b]内适当插入两点a1,a2,并计算其函数值。

a1,a2将区间分成三段,应用函数的单谷性质,通过函数值大小的比较,删去其中一段,是搜索区间得以缩小。

然后再在保留下来的区间上作同样的处理,如此迭代下去,是搜索区间无限缩小,从而得到极小点的数值近似解。

2、黄金分割法的基本原理

一维搜索是解函数极小值的方法之一,其解法思想为沿某一已知方向求目标函数的极小值点。

一维搜索的解法很多,这里主要采用黄金分割法(法)。

该方法用不变的区间缩短率代替斐波那契法每次不同的缩短率,从而可以看成是斐波那契法的近似,实现起来比较容易,也易于人们所接受。

黄金分割法是用于一元函数f(x)在给定初始区间[a,b]内搜索极小点xmin的一种方法。

它是优化计算中的经典算法,以算法简单、收敛速度均匀、效果较好而著称,是许多优化算法的基础,但它只适用于一维区间上的凸函数,即只在单峰区间内才能进行一维寻优,其收敛效率较低。

其基本原理是:

依照“去劣存优”原则、对称原则、以及等比收缩原则来逐步缩小搜索区间。

具体步骤是:

在区间[a,b]内取点:

a1,a2把[a,b]分为三段。

①如果f(a1)>f(a2),令a=a1,a1=a2,a2=a+*(b-a);

②如果f(a1)

如果|(b-a)/b|和|(y1-y2)/y2|都大于收敛精度ε重新开始循环。

因为[a,b]为单峰区间,这样每次可将搜索区间缩小倍,处理后的区间都将包含极小点的区间缩小,然后在保留下来的区间上作同样的处理,如此迭代下去,将使搜索区[a,b]逐步缩小,直到满足预先给定的精度时,即获得一维优化问题的近似最优解。

插入点原理图如下:

3、实验程序框图

4、黄金分割法程序代码

黄金分割法:

1选定初始区间[a1,b1]及精度tol大于0,计算试探点:

"

λ1=a1+*(b1-a1)

µ1=a1+*(b1-a1)并令k=1

2若b(k)-a(k)小于tol,则停止计算,

否则当f(λ(k))大于f(µ(k))时转3

当f(λ(k))小于等于f(µ(k))时转4

3置

a(k+1)=λ(k)

b(k+1)=b(k)

@

λ(k+1)=µ(k)

µ(k+1)=a(k+1)+*(b(k+1)-a(k+1))

转5

4置

a(k+1)=a(k)

b(k+1)=µ(k)

µ(k+1)=λ(k)

λ(k+1)=a(k+1)+*(b(k+1)-a(k+1))

'

5令k=k+1转2

四、可视化(GUI)界面截图

带入函数检验:

五、心得体会

通过这次课程设计,我对黄金分割法有了更深入的了解,也对C语言的作用有了更深入的了解,使我明白了有些复杂的问题可以通过计算机编程来实现,来求解,同时也使我认识到计算机工具的重要性。

同时也得感谢同学的帮助才得以顺利完成本次设计。

 

]

六、参考文献:

[1]孙靖民,梁迎春机械优化设计(第四版)北京:

机械工业出版社2006

[2]龚纯,王正林.精通MATLAB最优化计算.北京:

电子工业出版社,2009.

[3] 陈玉莲,李俊文.基于MATLAB的黄金分割法的优化设计,科技创新导报,2010

[4]王秀芳基于C语言的黄金分割法的优化设计2008

[5]薛定宇;陈阳泉高等应用数学问题的MATLAB求解2008

附录:

源代码如下

functionvarargout=num_3(varargin)

%NUM_3MATLABcodefor

%NUM_3,byitself,createsanewNUM_3orraisestheexisting

%singleton*.

%

%H=NUM_3returnsthehandletoanewNUM_3orthehandleto

\

%theexistingsingleton*.

%

%NUM_3('CALLBACK',hObject,eventData,handles,...)callsthelocal

%functionnamedCALLBACKinwiththegiveninputarguments.

%

%NUM_3('Property','Value',...)createsanewNUM_3orraisesthe

%existingsingleton*.Startingfromtheleft,propertyvaluepairsare

%appliedtotheGUIbeforenum_3_OpeningFcngetscalled.An

%unrecognizedpropertynameorinvalidvaluemakespropertyapplication

%stop.Allinputsarepassedtonum_3_OpeningFcnviavarargin.

%

%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone

%instancetorun(singleton)".

%

%Seealso:

GUIDE,GUIDATA,GUIHANDLES

^

%Edittheabovetexttomodifytheresponsetohelpnum_3

%LastModifiedbyGUIDE08-Jun-201314:

52:

29

%Begininitializationcode-DONOTEDIT

gui_Singleton=1;

gui_State=struct('gui_Name',mfilename,...

'gui_Singleton',gui_Singleton,...

·

'gui_OpeningFcn',@num_3_OpeningFcn,...

'gui_OutputFcn',@num_3_OutputFcn,...

'gui_LayoutFcn',[],...

'gui_Callback',[]);

ifnargin&&ischar(varargin{1})

=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

});

end

%Endinitializationcode-DONOTEDIT

%---Executesjustbeforenum_3ismadevisible.

functionnum_3_OpeningFcn(hObject,eventdata,handles,varargin)

%Thisfunctionhasnooutputargs,seeOutputFcn.

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%varargincommandlineargumentstonum_3(seeVARARGIN)

%Choosedefaultcommandlineoutputfornum_3

=hObject;

%Updatehandlesstructure

guidata(hObject,handles);

%UIWAITmakesnum_3waitforuserresponse(seeUIRESUME)

%uiwait;

$

%---Outputsfromthisfunctionarereturnedtothecommandline.

functionvarargout=num_3_OutputFcn(hObject,eventdata,handles)

%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%Getdefaultcommandlineoutputfromhandlesstructure

varargout{1}=;

%---Executesonbuttonpressinpushbutton2.

functionpushbutton2_Callback(hObject,eventdata,handles)

%hObjecthandletopushbutton2(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

closeall;

functionedit1_Callback(hObject,eventdata,handles)

%hObjecthandletoedit1(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%Hints:

get(hObject,'String')returnscontentsofedit1astext

%str2double(get(hObject,'String'))returnscontentsofedit1asadouble

%---Executesduringobjectcreation,aftersettingallproperties.

functionedit1_CreateFcn(hObject,eventdata,handles)

%hObjecthandletoedit1(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled

%Hint:

editcontrolsusuallyhaveawhitebackgroundonWindows.

%SeeISPCandCOMPUTER.

ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

~

end

functionedit2_Callback(hObject,eventdata,handles)

%hObjecthandletoedit2(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

{

%Hints:

get(hObject,'String')returnscontentsofedit2astext

%str2double(get(hObject,'String'))returnscontentsofedit2asadouble

%---Executesduringobjectcreation,aftersettingallproperties.

functionedit2_CreateFcn(hObject,eventdata,handles)

%hObjecthandletoedit2(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled

%Hint:

editcontrolsusuallyhaveawhitebackgroundonWindows.

%SeeISPCandCOMPUTER.

ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

@

functionedit3_Callback(hObject,eventdata,handles)

%hObjecthandletoedit3(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

"

%Hints:

get(hObject,'String')returnscontentsofedit3astext

%str2double(get(hObject,'String'))returnscontentsofedit3asadouble

%---Executesduringobjectcreation,aftersettingallproperties.

functionedit3_CreateFcn(hObject,eventdata,handles)

%hObjecthandletoedit3(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled

%Hint:

editcontrolsusuallyhaveawhitebackgroundonWindows.

%SeeISPCandCOMPUTER.

ifispc&

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1