网站大量收购闲置独家精品文档,联系QQ:2885784924

Matlab机械优化设计实例教程资料.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 局限性: 1.目标函数必须是连续的。fminunc函数有时会给出局部最优解。 2.fminunc函数只对实数进行优化,即x必须为实数,而且f(x)必须返回实数。当x为复数时,必须将它分解为实部和虚部。 1.应用fminsearch函数可能会得到局部最优解。 2.fminsearch函数只对实数进行最小化,即x必须由实数组成,f(x)函数必须返回实数。如果x时复数,必须将它分为实数部和虚数部两部分。 注意:当函数的阶数大于2时,使用fminunc比fminsearch更有效,但当所选函数高度不连续时,使用fminsearch效果较好。 * 本节结束 Thank You! * * * MATLAB机械优化设计 实例指导教程 * 利用Matlab的优化工具箱,可以求解线性规划、非线性规划和多目标规划问题。具体而言,包括线性、非线性最小化,最大最小化,二次规划,半无限问题,线性、非线性方程(组)的求解,线性、非线性的最小二乘问题。另外,该工具箱还提供了线性、非线性最小化,方程求解,曲线拟合,二次规划等问题中大型课题的求解方法,为优化方法在工程中的实际应用提供了更方便快捷的途径。 概 述 * 1.1 优化工具箱中的函数 优化工具箱中的函数包括下面几类: 最小化函数 函 数 描 述 fminbnd 有边界的标量非线性最小化 linprog 线性规划 fminsearch, fminunc 无约束非线性最小化 fminimax 最大最小化 fmincon 有约束的非线性最小化 quadprog 二次规划 fgoalattain 多目标达到问题 * 1.2有边界非线性最小化 [函数] fminbnd 功能:找到固定区间内单变量函数的最小值。 [格式] x = fminbnd(fun,x1,x2) x = fminbnd(fun,x1,x2,options) [x,fval] = fminbnd(…) [x,fval,exitflag] = fminbnd(…) [x,fval,exitflag,output] = fminbnd(…) [应用背景]给定区间x1xx2,求函数f(x)的最小值。X可以是多元向量 * [说明] fun 是目标函数 x1,x2 设置优化变量给定区间的上下界 options 设置优化选项参数 fval 返回目标函数在最优解x点的函数值 exitflag 返回算法的终止标志 output是一个返回优化算法信息的结构 该参数包含下列优化信息: 1. output.iterations – 迭代次数。 2. output.algorithm – 所采用的算法。 3. output.funcCount – 函数评价次数。 1.2有边界非线性最小化 * 算法: fminbnd是一个M文件。其算法基于黄金分割法和二次插值法。 局限性: 1.目标函数必须是连续的。 2.fminbnd函数可能只给出局部最优解。 3.当问题的解位于区间边界上时,fminbnd函数的收敛 速度常常很慢。此时,fmincon函数的计算速度更快,计算精度更高。 4.fminbnd函数只用于实数变量。 1.2有边界非线性最小化 * 1.2.1 应用实例 [例一] 在区间(0,2π)上求函数sin(x)的最小值: x = fminbnd(@sin,0,2*pi) x = 4.7124 所以区间(0,2π)上函数sin(x)的最小值点位于x=4.7124处。 最小值处的函数值为: y = sin(x) y = -1.0000 1.2有边界非线性最小化 * [例二] 对边长为3m的正方形铁板,在四个角处剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大? 假设剪去的正方形的边长为x,则水槽的容积为 现在要求在区间(0,1.5)上确定一个x,使 最大化。 首先编写M文件opt21_3o.m: function f = myfun(x) f = -(3-2*x).^2 * x; 然后调用fminbnd函数(磁盘中M文件名为opt21_3.m): x = fminbnd(@opt21_3o,0,1.5) 得到问题的解: x = 0.5000 即剪掉的正方形的边长为

文档评论(0)

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

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

1亿VIP精品文档

相关文档