机械优化设计c语言鲍威尔法,机械优化设计鲍威尔法

41528d3028836879cd698677c3999917.gif机械优化设计鲍威尔法

机械优化设计鲍 威 尔 法班级:0841001成员:张波2010213217 张建2010213214 潘阳瑞2010213227 2013年6月鲍威尔法 鲍威尔(Powell)法是直接利用函数值来构造共轭方向的一种方法。 基本思想:在不用导数的前提下,在迭代中逐次构造G 的共轭方向。 一.基本算法:(二维情况描述鲍威尔的基本算法) 1)任选一初始点x 0 ,再选两个线性无关的向量,如坐标轴单位向量e 1 =[1,0] T 和 e 2 =[0,1] T 作为初始搜索方向。 2)从 x 0 出发,顺次沿 、 作一维搜索,得 、 点,两点连线得一新 1 e 2 e 0 1 x 0 2 x 方向 1 d 0 0 2 1 x x d  用 代替e 1, 形成两个线性无关向量 ,e 1 ,作为下一轮迭代的搜索方向。再 1 d 1 d 从 出发,沿 作一维搜索得点 ,作为下一轮迭代的初始点。 0 2 x 1 d 0 1 x 3)从 出发,顺次沿 、 作一维搜索,得到点 、 ,两点连线得一新方向: 1 x 2 e 1 d 1 1 x 1 2 x 。 1 1 1 2 2 x x d   沿 作一维搜索得点 ,即是二维问题的极小点 。 2 d 2 x * x 把二维情况的基本算法扩展到n维,则鲍威尔基本算法的要点是:在每一轮迭代中总有一个始点(第一轮的始点是任选的初始点)和n个线性独立 的搜索方向。从始点出发顺次沿n个方向作一维搜索得一终点,由始点和终点决定了 一个新的搜索方向。用这个方向替换原来n个方向中的一个,于是形成新的搜索方向组。替换的原则 是去掉原方向组的第一个方向而将新方向排在原方向的最后。此外规定,从这一轮的 搜索终点出发沿新的搜索方向作一维搜索而得到的极小点,作为下一轮迭代的始点。 这样就形成算法的循环。图1.二维情况下的鲍威尔法 二.改进算法 在鲍威尔基本算法中,每一轮迭代都用连结始点和终点所产生出的搜索方向去替 换原向量组中的第一个向量,而不管它的“好坏” ,这是产生向量组线性相关的原因所 在。 在改进的算法中首先判断原向量组是否需要替换。如果需要替换,还要进一步判 断原向量组中哪个向量最坏,然后再用新产生的向量替换这个最坏的向量,以保证逐 次生成共轭方向。 为此,要解决两个关键问题: (1) 是否较好?是否应该进入新的方向组?即方向组是否进行更新? 1  k d (2)如果应该更新方向组, 不一定替换方向 ,而是有选择地替换某一方 1  k d k d 1 向 。 k m d 改进算法的具体步骤:(1)给定初始点 (记作 ) ,选取初始方向组,它由n个线性无关的向量 , 0 x 0 0 x 0 1 d ,., 所组成,置 。 0 2 d 0 n d 0  k(2)从 出发,顺次沿 , ,., 作一维搜索得 , ,., 。接 k x 0 k d 1 k d 2 k n d k x 1 k x 2 k n x 着以 为起点,沿方向 k n x k k n k n x x d 0 1    移动一个 的距离,得到 k k n x x 0  k k n k k n k n k n x x x x x x 0 0 1 2 ) (       、 、 分别称为一轮迭代的始点、终点和反射点。始点、终点和反射点所对应 k x 0 k n x k n x 1  的函数值分别为:) ( 0 0 k x f F ) ( 2 k n x f F ) ( 1 3 k n x f F   同时计算各中间点的函数值,并记为: (i=1,2,.,n) ) ( k i i x f f  因此有 , 0 0 f F  n f F  2 计算n个函数值之差 , ,., 。 1 0 f f  2 1 f f  n n f f  1 记作: (i=1,2,.,n) i i i f f    1 其中最大者记作: m m i n i m f f         1 1 max (3)根据是否满足判断条件 和 0 3 F F  ,来确定是否要对原方向组进行 2 3 0 2 2 0 3 2 0 ) ( 5 . 0 ) )( 2 ( F F F F F F F m m         替换。 若不满足判别条件,则下轮迭代仍使用原方向组,并以 、 中函数值小者作 k n x k n x 1  为下轮迭代的始点。 若满足上述判别条件,则下轮迭代应对原方向组进行替换,将 补充到原方向 k n d 1  组的最后位置,而除掉 。即新方向组为 作为下轮迭 k m d k n k n k m k m k k d d d d d d 1 1 1 2 1 , ,., , ,., ,    代的搜索方向。下轮迭代的始点取为沿 方向进行一维搜索的极小点 。 k n d 1  1 0  k x(4)判断是否满足收敛准则。若满足则取 为极小点,否则应置 , 1 0  k x 1  k k 返回2,继续进行下一轮迭代。这样重复迭代的结果,后面加进去的向量都彼此对G共轭,经 n轮迭代即可得到一个由n个共轭方向所组成的方向组。对于二次函数,最多n次就可 找到极小点,而对一般函数,往往要超过n次才能找到极小点(这里“n”表示设计空 间的维数) 。 图2.鲍威尔法的程序框图 题目:用改进的鲍威尔法求目标函数 的最优 2 1 1 2 2 2 1 2 1 2 4 2 ) ( x x x x x x x f    解。已知初始点[1,1]T,迭代精度 。 001 . 0   解:初始点 ,初始搜索方向, 。初始点处的函数值 ] [ 1 1 0 0  x ] [ 0 1 2 0 2  e d 。 3 ) ( 0 0 0 0     x f f F 第一轮迭代: 1)沿 方向进行一维搜索,得 : 0 1 d] [ ] [ ] [ 1 1 1 1 0 1 1 1 0 1 1 0 0 0 1          d x x 为一维搜索最佳步长,应满足极值必要条件: 1 ] 3 4 [ min ] [ min ) ( 2 0 1 1 0 0 0 1           d x f x f) ( min    0 4 2 ) ( 1       所以算出一维搜索最佳步长 2 1   得 ] [ 3 1 0 1  x 从而算出 点处的函数值及沿 走步后函数值的增量 0 1 x 0 1 d 7 ) ( 0 1 1    x f f 4 1 0 1     f f 2)再沿 方向进行一维搜索,得 0 2 d] [ ] [ ] [ 3 1 0 1 2 3 1 0 2 2 0 1 0 2 2    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值