机械优化设计备课笔记2A_第1页
机械优化设计备课笔记2A_第2页
机械优化设计备课笔记2A_第3页
机械优化设计备课笔记2A_第4页
机械优化设计备课笔记2A_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精选优质文档-----倾情为你奉上精选优质文档-----倾情为你奉上专心---专注---专业专心---专注---专业精选优质文档-----倾情为你奉上专心---专注---专业用数值法对于维目标函数求解的过程是:①确定初始搜索区间[a,b],使该区间内仅包含有目标函数的一个极小点x*;②在初始区间内,才用分割比较将包含有目标函数极小点的区间逐渐缩短,直到该区间缩短到足够小的程度后,求出极小点x*(并不需要求出最优步长)。因此,首先来讨论初始区间的确定。§3—1初始搜索区间的确定对于所有一维优化方法,首先遇到的一个共同问题是如何确定一个初始搜索区间[a,b],使该区间内必包含有一个、且唯一的函数极小点x*。这个搜索区间就是所要确定的初始搜索区间。然后再通过一维优化方法,即区间分割法(例如格点法、黄金分割法、二次插值法),将包含有极小点在内的区间逐渐分割缩小,直至将区间缩至足够小,即可求得最优点的近似解x*。本节我们将介绍用进退法确定初始搜索区间。由一元函数的性质可知,在极小点x*左侧函数值呈单调下降,而在极小点的右侧,则函数值呈单调上升。利用这一性质,在确定一元函数的初始搜索区间时,首先任取一个初始点x0,并选取一个适当的初始进退距h0,然后进行试探运算,并根据试探运算的结果,选择作前进或后退运算。一、试探运算,以确定作向前运算还是作后退运算。先置h←h0,x1←x0,计算初始点x1和前进点x2的目标函数值y1、y2,即:y1←f(x1);x2←x1+h,y2←f(x2)根据图3.3(a)所示的情况,比较y1、y2的大小,以确定作向前运算还是作后退运算。做后退运算做前进运算①当y2<y1时,如图3.3(a)中实线的情况,则极小点x*必在x1的右侧,应再作前进搜索运算。②当y2≥y1时,如图3.3(a)中虚线的情况,则极小点x*必在x2的左侧,应作后退搜索运算。二、前进搜索运算(y2<y1时)将进退距h加倍,即:h←2h,在x1的左侧取第三个点x3,即x3←x2+h,并计算x3的函数值:y3=f(x3)比较函数值y2和y3的大小,分为如下两种情况:第一种情况,若y2<y3,如图3.3(b)中的虚线所示,则相邻的三个点x1、x2、x3处的目标函数值y1、y2、y3呈大、小、大的变化。根据函数的连续性可知,在区间内[x1,x3]必定包含有目标函数f(x)的极小点x*,即令:a←x1,b←x3,这就搜索得到了初始搜索区间[a,b]。第二种情况,若y2≥y3,如图3.3(b)中的实线所示,则极小点x*有可能位于x2的右侧,需继续作前进运算。为了使下一次作前进运算时能采用与本次前进运算相同的迭代格式,重复前进搜索运算,对各点作如下置换:x1←x2,y1←y2;x2←x3,y2←y3并再次将进退距加倍,h←2h,计算新的点x3及其对应的函数值y3:x3←x2+h,y3←f(x3)。重复上述比较y2、y3的过程,直到最后出现y2<y3,即相邻三个点x1、x2、x3的函数值y1、y2、y3呈两端大,中间小的情况时,取左、右两端点为初始点搜索区间。做后退运算做前进运算三、后退搜索运算(y2≥y1时)如图3.3(a)中虚线所示,若y2≥y1时,取向x1点的左侧搜索,即作后退运算。取进退距h置为负的初始进退距,即:h←—h0,置换点号,使他们自右向左反向排列,如图3.3(c)所示,以便采用前进搜索运算的迭代格式进行计算,作置换:x3←x1,y3←y1;(变量x3、y3仅作为置换数据的暂用单元)x1←x2,y1←y2;x2←x3,y2←y3;经过上述置换后,x1、x2从右向左排列,采用前进运算的迭代格式进行后退运算。将进退距加倍,即h←2h,计算出第三个后退点x3及其函数值y3:x3←x2+h,y3←f(x3)比较函数值y2、y3的大小。①若y2<y3时,如图3.3(c)中虚线Ⅱ所示,则初始区间已确定;a←x3,b←x1;②若y2≥y3时,如图3.3(c)中实线Ⅰ所示,则应继续作后退运算,对各点作如下置换:x1←x2,y1←y2;x2←x3,y2←y3并将进退距加倍,即h←2h,计算新的点x3及其函数值y3:x3←x2+h,y3←f(x3)重复比较函数值y2、y3的大小,直到最后出现y2<y3,即出现相邻三个点x1、x2、x3的函数值呈两端大、中间小的情况为止,取其a←x3,b←x1;可到初始搜索区间[a,b]。当已经确定了初始搜索区间[a,b]之后,接着的问题就是要在这个已确定的区间中,如何迅速找到目标函数的最优点x*。通常采用区间分割法,将包含有目标函数极小点的区间逐步分割缩小,直到区间缩小到足够小为止。取缩小到足够小的区间中点作为目标函数极小点的近似解。缩小后的区间大小可由计算者根据实际问题的需要,预先规定一个足够小的正数,称为收敛精度或迭代精度,但经过k次区间搜缩后,如果满足:│b(k)—a(k)│≤ε则终止计算,取x*=(a(k)+b(k))/2。常用的区间分割法有:格点法、黄金分割法、二次插值法等。§3—3黄金分割法黄金分割法也称为0.618法。这种方法是通过对搜索区间内插入黄金分割点,并计算分割点的函数值和比较它们的大小,将包含有最优点的区间逐次缩短,当区间缩短到小于预先给定的足够小的数值时,即可获得目标函数的极小点的近似解。一、区间缩短的基本方法如图3.8所示,设有一元函数f(x),在给定的初始搜索区间内[a,b]仅存在一个极小点x*,试在该区间内寻求目标函数的极小点,即最优点x*。为了缩短区间,在初始区间[a,b]内按一定的规则对称地插入两分割点x1、x2,且x1<x2,ax1=x2b,使区间[a,b]分为三段。分别计算两插入分割点的函数值;y1←f(x1);y2←f(x2)比较y1、y2的大小,有下列两种情况;1、若y1<y2,如图3.8(a)所示,极小点x*一定在x2的左侧,即必定在区间[a,x2]内。因此,舍去右段x2b,将区间[a,x2]作为缩短后的新搜索区间,即令:b←x2,获得新的区间[a,b]。2、若y1≥y2,如图3.8(b)所示,极小点x*一定在x1的右侧,即必定在区间[x1,b]内。因此,舍去左段ax1,将区间[x1,b]作为缩短后的新搜索区间,即令:a←x1,获得新的区间[a,b]。这样就完成了一次区间缩短(收缩)。在每次区间缩短过程中,把缩短后的新区间长度与原区间长度之比称为该次区间缩短率,用λ来表示,即:在缩短后的新区间内,我们还需要去续按照一定的规则,对称地插入新的分割点,来继续缩短新区间。经过函数值y1、y2的一次比较后,区间即可缩短一次。在缩短后的新区间内,因有一个保留点x1或x2,故下一次缩短时,只需要按一定的规则,对称地补插一个分割点,并计算该点的函数值,重复函数值y1、y2的比较,如此反复计算,区间即可逐次地加以缩短,直到满足迭代计算终止准则后,方可停止分割收缩计算。问题的关键是在每一次迭代中,补插的分割点应按什么规律确定,才能使迭代计算在次数相同的条件下,区间缩短得最快呢?二、黄金分割法的取点原则为了加快区间缩短的速率,黄金分割法的分割点选取的原则是:每次区间缩短都具有相等的区间缩短率,即在每一次区间缩短时,新区间的长度与原区间的长度之比值为λ=0.618。先推到如下:如图3.8(a)所示,设初始搜索区间的长度为L1,若经过第一次区间缩短后,新区间的长度为ax2,设第一次区间缩短率为λ1,则∵λ1=ax2/ab,∴ax2=λ1·ab=λ1L1。由于两分割点x1、x2在区间[a,b]内是对称插入的,即:ax1=x2b=ab—ax2=(1—λ1)·L1;在第二次区间缩短时,新区间[a,x2]内保留有x1点,因而,在新区间[a,x2]内,需补插一个与x1对称的新分割x3点,并计算其函数值y3,记作y3←f(x3)。通过比较y1、y3的数值大小,由于y3<y1,于是第二次区间缩短时新区间为[a,x1],设第二次区间缩短率为λ2,即:根据黄金分割法取点原则:在每次区间缩短时,都具有相等的区间缩短率,因此:λ1=λ2=λ,即:,计算出:于是,。黄金分割法的分割取点原则为:x1=a+(1-λ)L=a+0.382(b-a)x2=a+λL=a+0.618(b-a)三、迭代终止条件当区间缩短到满足迭代终止条件时,即:b(k)—a(k)<ε可终止迭代计算,其中迭代精度ε是设计者根据计算精度要求而预先给定的足够小的正数值。迭代终止条件也可写成:b(1)—a(1)=λ1(b-a),b(2)—a(2)=λ1(b(1)-a(1))=λ2(b-a),b(k)—a(k)=λk(b-a)即b(k)—a(k)=λk(b-a)≤ε或,其中λ取为0.618当最终区间长度[b(k)—a(k)]小于迭代精度ε或区间缩短次数k满足:时,即可终止迭代计算,取最终区间的中点以及相应的函数值作为目标函数的最优解输出:x*=[a(k)+b(k)]/2,F*=F(x*)四、计算步骤及程序流程图1、在初始搜索区间[a,b]内,按黄金分割法的取点原则,插入分割点:x1=a+(1-λ)L=a+0.382(b-a)x2=a+λL=a+0.618(b-a)并计算区间内插入分割点x1、x2处的函数值y1、y2,即:y1←f(x1),y2←f(x2)2、比较插入分割点处函数值y1、y2的大小:若y1<y2,如图3.8(a)所示,则舍去b点,取新区间为[a,x2],并将作如下置换:b←x2,x2←x1,y2←y1在新区间[a,b]内补插x1点,并计算其函数值y1,即:x1←a+(1-λ)L=a+0.382(b-a)y1←f(x1),转第三步;若y1≥y2,如图3.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论