matlab上机内容及作业.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab上机内容及作业

无约束优化求解函数fminsearch和fminunc 求解无约束非线性优化问题的函数有fminsearch 函数、fminunc函数。函数fminsearch和fminunc功能相同,但fminunc函数可以得到目标函数在最优解处的梯度和Hessian矩阵值。 无约束优化数学模型为: min f(X) X∈Rn 求解无约束非线性优化问题的步骤为: 第一步: 先编写目标函数的M文件; 第二步: 再在命令窗口中调用相应的优化函数。 1、fminsearch函数调用格式为 [x, fval]=fminsearch(@myfun, x0) 输出参数的含义: x:返回最优解的设计变量的值; fval:在最优设计变量值时,目标函数的最小值; exitflag:返回算法终止的标志,有以下几种情况,>0 表示算法收敛于最优解处;=0 表示算法已经达到迭代的最大次数;<0???表示算法不收敛。 output:返回优化算法信息的一个数据结构,有以下信息: output.iteration 表示迭代次数 output.algorithm 表示所采用的算法 output.funcCount 表示函数评价次数 输入参数的含义: @myfun:目标函数的M文件,在其前要加 “@”,或表示为myfun ,myfun自己可以任意命名; x0: 在调用该优化函数时,需要先对设计变量赋一个初始值; 2、fminunc函数的调用格式 [x, fval]=fminunc (@myfun, x0) grad: 返回目标函数在最优解处的梯度信息;hessian:返回目标函数在最优解处的hessian矩阵信息。其余含义同上。 3、实例 已知某一优化问题的数学模型为: min f(X)=3x12+2x1x2+x22 X∈Rn 用MATLAB程序编写的代码为: 第一步:首先编写目标函数的.m文件,并保存为examplefsearch.m文件(先单击file菜单,后点击New命令中的M—file,即可打开M文件编辑窗口进行代码的编辑,在英文状态下输入程序代码),代码为: function f=examplefsearch(x) f=3*x(1)^ 2+2*x(1)*x(2)+x(2)^2; 第二步:在Command窗口中调用fminsearch函数,代码为: x0=[1;1]; %赋初值 [x,fval]=fminsearch(@examplefsearch,x0) %回车即可调用fminsearch函数,得到结果 输出最优解结果为: x= 1.0e-0.08* -0.7914 0.2260 %分别为x1和x2的最优点的值(近似为0) fval= 1.5722e-016 %对应最优点的最优目标函数值(近似为0) 4、作业 已知几个优化问题的数学模型分别为: (1)min f(X)=0.1935x1 x22 x32(4+6x4) X∈R4 (2)min f(X)= (x13+cos x2+log x3)/ e x1 X∈R3 (3)min f(X)=2x13+4x1x23 -10x1x2+x33 X∈R3 试用MATLAB编程分别求解上述优化问题的最优解。(分别把步骤、代码、结果写在另一张纸上,作为作业交) 其中cos x2在MATLAB应写为cos(x(2));log x3应为log(x(3));e x1应为exp(x(1))。 二、求解线性优化问题的函数linprog 1 、linprog函数要求数学模型的形式 在MATLAB优化工具箱中,用于求解线性规划的函数有linprog,要求的线性规划的数学模型的一般形式为: min f(X) =fT*X X∈Rn s.t. A*X≤b Aeq* X =beq lb≤X≤ub 上式中,f:表示目标函数中变量的系数向量,为列向量; A:表示所有线性不等式约束的系数矩阵; b:为所有线性不等式约束的不等式右面常数向量,为列向量; Aeq:表示所有线性等式约束的系数矩阵; beq:为所有线性等式约束的等式右面常数向量,为列向量; lb和ub:分别表示为变量的上下限,为列向量。 2、linprog函数的调用格式 调用格式如下: [x,fval]= linprog (f, A,b, Aeq,beq,lb,ub) 上式中,A、b、Aeq、beq、lb、ub、x0、options均为可选项,如果数学模型中无该项参数,则用[]代替。 例如如果某一数学模型中没有等式约束,即无Aeq和beq参数,则调用的格式为: [x,fval]= linprog (f, A,b,

文档评论(0)

561190791 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档