当前位置:文档之家› 优化设计实验指导书(完整版)

优化设计实验指导书(完整版)

优化设计实验指导书潍坊学院机电工程学院2008年10月目录实验一黄金分割法 (2)实验二二次插值法 (5)实验三 Powell法 (8)实验四复合形法 (12)实验五惩罚函数法 (19)实验一黄金分割法一、实验目的1、加深对黄金分割法的基本理论和算法框图及步骤的理解。

2、培养学生独立编制、调试黄金分割法C语言程序的能力。

3、掌握常用优化方法程序的使用方法。

4、培养学生灵活运用优化设计方法解决工程实际问题的能力。

二、实验内容1、编制调试黄金分割法C语言程序。

2、利用调试好的C语言程序进行实例计算。

3、根据实验结果写实验报告三、实验设备及工作原理1、设备简介装有Windows系统及C语言系统程序的微型计算机,每人一台。

2、黄金分割法(0.618法)原理0.618法适用于区间上任何单峰函数求极小点的问题。

对函数除“单峰”外不作其它要求,甚至可以不连续。

因此此法适用面相当广。

0.618法采用了区间消去法的基本原理,在搜索区间内适当插入两点和,它们把分为三段,通过比较和点处的函数值,就可以消去最左段或最右段,即完成一次迭代。

然后再在保留下来的区间上作同样处理,反复迭代,可将极小点所在区间无限缩小。

现在的问题是:在每次迭代中如何设置插入点的位置,才能保证简捷而迅速地找到极小点。

在0.618法中,每次迭代后留下区间内包含一个插入点,该点函数值已计算过,因此以后的每次迭代只需插入一个新点,计算出新点的函数值就可以进行比较。

设初始区间[a,b]的长为L。

为了迅速缩短区间,应考虑下述两个原则:(1)等比收缩原理——使区间每一项的缩小率不变,用表示(0<λ<1)。

(2)对称原理——使两插入点x1和x2,在[a,b]中位置对称,即消去任何一边区间[a,x1]或[x2,b],都剩下等长区间。

即有ax1=x2b如图4-7所示,这里用ax1表示区间的长,余类同。

若第一次收缩,如消去[x2,b]区间,则有:λ=(ax2)/(ab)=λL/L若第二次收缩,插入新点x3,如消去区间[x1,x2],则有λ=(ax1)/(ax2)=(1-λ)L/λL根据原理应有:(ax2)/(ab)=(ax1)/ax2即λL/L=(1-λ)L/λL可得λ^2+λ-1=0解此方程,舍去负根,取有用的根为λ=(sqrt(5)-1)/2=0.618λ=0.618这样的比例又称为黄金分割比,它是一个具有奇妙性质的数,历史上曾不断作为美学方面的最佳比而反复出现。

黄金分割比至今仍有很多应用。

3、黄金分割法计算步骤(1)确定f(x)的初始搜索区间[a,b]及终止限。

(2)计算x2=a+0.618(b-a),f2=f(x2)(3)计算x1=a+0.382(b-a),f1=f(x1).(4)若|x2-x1|<$,则输出x*=(x1+x2)/2,停机;否则,若|x2-x1|>=$,转(5)。

(5)若f1<=f2,则置b≡x2.x2=x1,,然后转(3);否则,f1>f2,则置a=x1,x1=x2,f2=f1,转(4)。

4、黄金分割法计算框图四、实验步骤:1.编制调试程序。

2.计算实例。

五、实验报告内容1、绘制程序框图。

2、记录计算结果并分析。

实验二二次插值法一、实验目的1、加深对二次插值法的基本理论和算法框图及步骤的理解。

2、培养学生独立编制、调试二次插值法C语言程序的能力。

二、实验内容1、编制调试二次插值法C语言程序。

2、利用调试好的C语言程序进行实例计算。

3、根据实验结果写实验报告三、实验设备及工作原理1、设备简介装有Windows系统及C语言系统程序的微型计算机,每人一台。

2、二次插值法原理多项式是逼近函数的一种常用工具。

利用插值多项式进行一维搜索的基本思想是构造一个较低的插值多项式P(x)来近似地代替原目标函数f(x),并以函数P(x)的极值点xp*(即P/(x)=0的根)作为目标函数f(x)的近似极值点。

再通过比较各插值点和xp*的函数值及其所在位置,设法缩减搜索区间。

从而最终逼近函数f(x)的极值点.如果P(x)是二次多项式,则称为二次插值法,若P(x)是三次多项式,则称为三次插值法。

一般来说,三次插值的收敛性要好一些,但要计算函数导数;而二次插值计算较简单且具有一定的精度,故应用广泛。

二次插值又称为抛物线法。

设原目标函数f(x)的初始单峰搜索区间[x1,x3]已确定。

函数f(x)在x1,x2,x3三点处函数值f1,f2,f3,其中x1<x2<x3,且f(x1)>f(x2)<f(x3)。

即在三点处函数值为“高——低——高”形态(或称“两头大,中间小”),见图4-9。

作二次插值多项式 P(x)=α0+α1x+α2x2根据插值条件:在插值点处函数P(x)与目标函数f(x)应具有相同函数值。

P(x)应满足P(x1)=α+α1x1+α2x12=f1P(x2)=α+α1x1+α2x22=f2……………2-1P(x3)=α+α1x1+α2x32=f3对式P(x)=α0+α1x+α2x2求导并令其等于零,得P/(x)=α1+2α2x=0或写为 x=-α1/2α2……………2-2由式2-1中相邻两方程相减消去,得到α1(x1-x2)+α2(x12-x22)=f1-f2α1(x2-x3)+α2(x23-x32)=f2-f3……………2-3由此解出α1和α2,再代入2-2,于是插值多项式P(x)的极小点为xp *=[(x22-x32)f1+(x32-x22)f2+(x12-x22)f3]/2[(x2-x3)f1+(x3-x2)f2+(x1-x2)f3] ……2-4xp*即为目标函数f(x)的极小点的一个近似点。

若f(x)本身为二次函数,则在理论上按式2-4一次求值就可找到最优点,xp*即为所求。

若f(x)为高于二次的函数或其它函数,则一般xp*不与原函数f(x)的极小点x*重合,如课本图示。

为了求得满足一定精度要求的f(x)的极小点x*,可采用逐步缩小区间的办法。

如课本图示,搜索区间的缩小可根据xp *和x2,f(xp*)和f(x2)的相互关系,分六种不同的情况。

图中阴影部分为消去的区间。

可将f(xp *)和f(x2)中函数值高的点作为缩小后的新区间的一个边界点。

然后以x2,xp*,x1(或x3)再次构造一条具有“高——低——高”形态的抛物线。

如此反复进行,直到搜索区间内的∣x2-xp*∣值小于规定的精度ε时,停止迭代,最后以xp *和x2中函数值较小的点作为f(x)的极值点x*。

3、二次插值法计算步骤:(1)确定初始搜索区间[x1,x3]并给定ε.在初始区间[x1,x3]内选定一点x2,应满足条件:x 1<x2<x3,f(x1)>f(x2)<f(x3),即函数值具有“两头大,中间小”的性质。

这可以采用中所述进退法完成。

(2)以x1,x2,x3三点构造新插值曲线P(x),并按式4-9求出xp*。

(3)检验∣x2-xp*∣<ε?若是终止迭代,以x2,xp*中函数值较小的点作为最优点x*;若否,转下一步。

(4)判别x2和xp*,f(x2)和f(xp*)的相互关系属于图4-10中何种情况。

舍去函数值较大的点x1(或x3)缩小区间,用x2,xp*,x3(或x1)作为新的三点(在这三点处函数值仍保持“高——低——高”形态),转向(2)重新构造新插值曲线P(x)。

4、二次插值法的计算框图见下图:四、实验步骤:1.编制调试程序。

2.计算实例。

五、实验报告内容3、绘制程序框图。

4、记录计算结果并分析。

实验三 Powell 法一、实验目的1、加深对Powell 法的基本理论和算法框图及步骤的理解。

2、熟悉、调试Powell 法语言程序。

3、巩固无约束优化方法。

二、实验内容1、调试Powell 法C 语言程序。

2、利用调试好的C 语言程序进行实例计算。

3、根据实验结果写实验报告三、实验设备及工作原理1、设备简介装有Windows 系统及C 语言系统程序的微型计算机,每人一台。

2、Powell 法原理(1) 鲍威尔共轭方向法原理 1)共轭方向的构造(以二维为例)对于某两点 ,分别沿方向 ( 不平行)一维搜索得到两个最优点 ,构成方向 ,则 与为共轭方向。

如图所示。

共轭方向法的迭代过程2010,X X1S12010,S X X-21,X X 122X X S-=1S 2S2)鲍威尔共轭方向法基本原理:a 、第一轮迭代与坐标轮换法相同。

将本轮迭代起点和N 次一维搜索的末点组成一个新的方向,沿这个方向一维搜索,得到本轮迭代的终点。

b 、从第二轮起,舍去前一轮的第一个一维搜索方向,将前一轮的后N 个一维搜索方向作为本轮迭代的前N 个方向,这N 个方向的一维搜索终点与本轮搜索的起点构成第N+1个一维搜索方向,沿这个方向做一维搜索,得到本轮搜索的终点。

c 、若不满足精度要求,则重复迭代。

(3)鲍威尔共轭方向法的特点收敛速度比坐标轮换法有明显的提高。

前提是每轮迭代所产生的新的方向与本轮前N-1个方向之间要保持线性无关。

若这些方向之间线性相关,则降低了搜索空间的维数,导致不能完全穷尽对设计空间每个方向的搜索,从而不能收敛于真正的最优解。

(2)改进的鲍威尔法 1)基本原理共轭方向法的前提是每一轮迭代中新生成的第N+1个方向与其它方向线性无关,如果出现线性相关,则导致算法不能正确收敛。

鲍威尔为了解决该问题,加入了对共轭方向的判断。

如果线性无关则采用该方向,但并不是机械的替换上一轮第一个方向,而是替换函数值下降最多的方向。

如果线性相关,则还是用上一轮迭代的方向。

2)线性相关性的判别准则其中:f1——本轮迭代起点函数值⎩⎨⎧-∆<∆---+<23122123113)(5.0))(2(f f f f f f f f f k m k mf2——本轮迭代终点函数值 f3——映射点函数值Δmk ——函数值下降最大的一步一维搜索 若满足该公式,则去掉第m 个方向,下一轮迭代的m 到N 方向采用本轮次第m+1到N+1个方向;若不满足,则本轮迭代结束,以本轮终点为下一轮起点,仍采用本轮的N 个方向进行迭代。

3、基本步骤(1)给定初始点和计算精度。

(2)置k=1,取N 个坐标轴的单位向量为搜索方向 (i=0,1,…,N -1),(3)从 出发,沿 一维搜索,得到N 个极小点,(i=1,2,…,N ),找到函数值下降最快的一次一维搜索的函数下降值和方向,记作Δkm , (4)计算反射点 , 计算f 1,f 2,f 3。

(5)若满足判别条件,构造本轮迭代第N+1个方向:由N 次一维搜索的终点沿 一维搜索得到本轮迭代终点,作为下一轮迭代(k +1轮)起点;去掉方向,将 作为下一轮迭代的第N 个方向。

相关主题