- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验MATLAB优化工具箱doc
实验报告实验目的和要求
1、掌握Matlab的优化方法;
2、了解Matlab 的基本优化命令;
实验预备知识
按下述介绍的步骤,练习并掌握使用matlab的优化方法。
开发MATLAB软件的初衷只是为了方便矩阵运算,随着其作为商业软件的推广,它不断吸收各学科各领域权威人士编写的实用程序,形成了一系列规模庞大、覆盖面极广的工具箱(Toolbox), 如优化、图形处理、信号处理、神经网络、小波分析、概率统计、偏微分方程、系统识别、鲁棒控制、模糊逻辑等工具箱,极大地方便了我们进行科学研究和工程应用。由于数学建模中很多问题都可以转化为优化问题,本节我们简单地介绍一下优化工具箱(Optimization Toolbox)中的部分函数,为大家今后熟练使用MATLAB各工具箱函数奠定基础。
函数fminbnd是用来寻找单变量函数在固定区间内的最小值点及最小值,标准数学模型为: s.t. (s.t.为subject to的缩写,其引导的部分称为约束条件;“s.t.”之前需我们寻找最小值的函数一般称为目标函数)。MATLAB各工具箱的每个函数,包括这里的优化工具箱函数,都有多种不同的调用格式。本节中我们只介绍常用的调用格式,其它调用格式请使用在线帮助系统查询。
函数fminbnd最常用的调用格式为:
[x,fval] = fminbnd(fun,x1,x2) %返回函数fun在区间上的最小值点x和对应的最小值fval,fun为目标函数的文件名句柄或目标函数的表达式字符串。
如求解函数在区间内的最小值及最小值点,使用如下命令即可:
[x,fval]=fminbnd(@sin,0,2*pi) %符号“@”表明目标函数为MATLAB自定义的正弦函数sin.m。
x =
4.7124 %最小值点赋值给x。
fval =
-1.0000 %最小值赋值给fval。
如果目标函数并不是MATLAB自定义的函数,我们需要首先定义一个函数M文件,以该文件的名称来代替上述命令行中的“sin”部分。如我们希望求出在(-3,2)内的最小值及最小值点,我们首先编写目标函数的函数M文件opt1.m:
function f=myfun(x) %编写函数M文件时,此行的”myfun”并不一定与文件名相同。
f=(log(x^2+1))/x;
然后调用fminbnd函数:
[x,fval]=fminbnd(@opt1,-3,2) %注意此处使用“opt1”而不是“myfun”。
x =
-1.9803
fval =
-0.8047
如果目标函数的表达式较为简单,我们也可以使用表达式的字符串而不必编写目标函数。如上例我们也可以使用[x,fval]=fminbnd((log(x^2+1))/x,-3,2)实现。
fminsearch和fminunc都是用来求无约束多元函数的最小值的函数,标准数学模型为: 。两函数的调用格式相同,常用格式为:
[x,fval] = fminsearch(fun,x0) %从初值x0开始搜索函数fun的最小值点和对应的最小值,并返回最小值点x和对应的最小值fval;x0需事先给定,格式同自变量x;fun同前。
[x,fval] = fminunc(fun,x0) %同fminsearch。
当目标函数的阶数大于2时,使用fminunc比fminsearch更有效,但当目标函数高度不连续时,使用fminsearch效果较好。如我们希望求出的最小值,首先编写目标函数的函数M文件opt2.m:
function f=myfun(x) %注意此处只有一个形式参数x,形参可以是向量或矩阵。
f=(exp(x(1)))*(4*x(1)^2+2*x(2)^2+3*x(1)*x(2)+2*x(2)+3);
然后调用fminsearch或finunc函数:
[x,fval]=fminunc(@opt2,[0,0]) %从初值[0,0]开始搜索最小值点。
x =
-0.2941 -0.2791
fval =
2.3771
[x,fval]=fminsearch(@opt2,[0,0]) %从初值[0,0]开始搜索最小值点。
x =
-0.2936 -0.2798
fval =
2.3771
可以看到虽然两函数均从[0,0]开始搜索,得到的最小值点却不同,这是由于两函数各自的搜索方向不同造成的,这也说明这两个函数可能只能得到初值点附近的局部最小值(点),而不一定得到全局最小值(点)。事实上,前述
您可能关注的文档
最近下载
- 小学体育_队列队形教学设计学情分析教材分析课后反思.doc
- 中建项目商务策划汇报模板.pptx
- 公路中小跨径钢-混组合梁桥标准图集(制订)》技术方案报告.docx
- “设计思维与方法”教案.ppt
- 大职赛生涯闯关参考答案.docx VIP
- 2022《美宜佳公司营运资金管理存在的问题及对策研究》开题报告文献综述(含提纲)3200字.docx VIP
- 长垣市人民医院西学中培训班《方剂学》考试.pdf VIP
- 苏教版一年级科学上册4.1《自然物与人造物》(课件).pptx
- 电子商务招聘简章模板.pdf
- 统编版小学语文二年级上册第六单元 先辈伟人 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx
文档评论(0)