- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章一维搜素讲解
优化设计 一维搜索方法 4.一维问题的解析算法 迭代 迭代是重复反馈过程的活动, 其目的通常是为了逼近所需目标或结果。 每一次对过程的重复称为一次“迭代”, 而每一次迭代得到的结果会作为下一次迭代的初始值。 迭代 确定变量 在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。 建立关系式 所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。 迭代 过程控制 在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地重复执行下去。 迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。 对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件。 迭代 %求第十个斐波那契数 a0=0 a1=1 for i=2:10 a2=a0+a1 a0=a1;a1=a2; end %求不大于100的最大斐波那契数 a0=0 a1=1 while(a2100) a2=a0+a1 a0=a1;a1=a2; end 二、搜索区间的确定 确定搜索区间的原则: 利用单峰函数值高-低-高的特征 进退法: 已知搜索起点和初始步长 然后从起点开始以初始步长向前试探,如果函数值变大,则改变步长方向。 如果函数值下降,则维持原来的试探方向,并将步长加倍。 (3)产生新的探测点a3=a2+h,y3=f(a3); (4)比较函数值 y2与y3: (a)如y2y3, 加大步长 h=2h ,a1=a2,a2=a3, 转(3)继续探测。 (b)如y2y3, 则初始区间得到: a=min[a1,a3], b=max[a3,a1], 函数最小值所在的区间为[a, b] 。 1.黄金分割法 最常用的一维搜索试探法是黄金分割法,又称0.618法。 黄金分割法适用于确定区间上的任何单谷函数求极小值的问题。对函数除要求“单谷”之外没有任何其他要求。甚至可以不连续或者没有明确的函数表达式。 黄金分割法是建立在区间消去法原理基础上的试探法。 1、要求插入点a1、a2的位置相对于区间[a,b]两端点具有对称性。 2、要求在保留下来的区间再插入一点所形成的区间新三段,与原来区间的三段具有相同的比例分布。 3.平分法 取具有极小点的单峰函数的搜索区间 的中点 ,计算目标函数在该点的导数来判断舍去的区间。(函数在极值点导数为零,在其左侧为负、右侧为正) 4.格点法(全面搜索法) 5.成功-失败法 四、插值法(函数逼近法、曲线拟合法) 在某一确定区间内寻求函数的极小点位置,可以根据某些点处的函数值,利用插值方法建立函数的某种近似表达式,进而求出函数的极小点,并用它作为原来函数极小点的近似值。 多项式(二次或三次)是函数逼近的一种常用工具。在搜索区间内我们可以利用若干试验点处的函数值来构造低次多项式,用它作为函数的近似表达式,并用这个多项式的极小点作为原函数的极小点的近似。 1、切线法(牛顿法) 令: 则: 可以得到牛顿法的迭代公式 2、三点二次插值法(抛物线法) 三点二次插值法(抛物线法) 利用函数在单谷区间中的三点 且函数值 构造二次函数: 从极值的必要条件得: 代入在单谷区间中的三点 ,则有: 解得: 为便于计算,可写为: 3、一点二次插值法(切线法) 利用函数在单谷区间中的一个点: 4、二点二次插值法 利用函数在单谷区间中的两个端点的函数值和一个端点的导数值: 解之,得: 5、二点二次插值法II (割线法) 利用函数在单谷区间中的两个端点的导数值: 解之,得: 6、三次插值法 极值的条件: 极值充分条件为: 程序打包上传至 研究生信息平台-课程作业 () 注意:雷同太多,按未交处理 作业组成: 1、求搜索区间的函数 2、6种搜索方法的函数 3、一个统一的求一维极值函数,方法名由参数传入 例如:fmin(方法,目标函数,初始点,精度) 4、一个主程序,根据不同的目标函数、不同的方法、 不同的精度(0.001或0.000001等)调用求一维极值函数。 5、一个实验报告(重要!!),包括 (1)运行条件(例如机器的型号、CP
文档评论(0)