2022年黄金分割法-进退法-原理及流程图 .docx

上传人:Q****o 文档编号:38520389 上传时间:2022-09-04 格式:DOCX 页数:15 大小:312.57KB
返回 下载 相关 举报
2022年黄金分割法-进退法-原理及流程图 .docx_第1页
第1页 / 共15页
2022年黄金分割法-进退法-原理及流程图 .docx_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《2022年黄金分割法-进退法-原理及流程图 .docx》由会员分享,可在线阅读,更多相关《2022年黄金分割法-进退法-原理及流程图 .docx(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品_精品资料_1 黄金分割法的优化问题1黄金分割法基本思路:黄金分割法适用于 a ,b 区间上的任何单股函数求微小值问题, 对函数除要求“单谷”外不做其他要求,甚至可以不连续.因此,这种方 法的适应面特别广. 黄金分割法也是建立在区间消去法原理基础上的摸索方法,即在搜寻区间 a ,b 内适当插入两点 a1, a2,并运算其函数值. a1, a2 将区间分成三段,应用函数的单谷性质,通过函数值大小的比较,删去其中一段,是搜寻区间得以缩小.然后再在保留 下来的区间上作同样的处理,如此迭代下去,是搜寻区间无限缩小, 从而得到微小点的数值近似解.2 黄金分割法的基本原理一维搜寻是解函数微小值的方法之

2、一, 其解法思想为沿某一已知方向求目标函数的微小值点. 一维搜寻的解法很多, 这里主要采纳黄金分割法法.该方法用不变的区间缩短率代替斐波那契法每次不同的缩短率,从而可以看成是斐波那契法的近似,实现起来比较简洁,也易于人们所接受.可编辑资料 - - - 欢迎下载精品_精品资料_67黄金分割法是用于一元函数 fx在给定初始区间 a,b内搜寻微小点 * 的一种方法.它是优化运算中的经典算法,以算法简洁、收敛速度匀称、成效较好而著称,是很多优化算法的基础,但它只适用 于一维区间上的凸函数,即只在单峰区间内才能进行一维寻优,其收敛效率较低.其基本原理是:依照“去劣存优”原就、对称原就、 以及等比收缩原就

3、来逐步缩小搜寻区间.详细步骤是: 在区间a,b 内取点: a1 ,a2 把a,b分为三段.假如 fa1fa2,令a=a1,a1=a2,a2=a+r*b-a.假如 fa1=y2可编辑资料 - - - 欢迎下载精品_精品资料_a=a1a1=a2y1=y2b=a2a2=a1y2=y1可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_a2=a+r*b-a y2=fa2a1=b-r*b-a y1=fa1可编辑资料 - - - 欢迎下载精品_精品资料_否 b-a/b 和y2-y1 /y2 .是a*=a+b/2终止可编辑资料 - - - 欢迎下载精品_精品资料_

4、#include #include #define fx x*x+2*xdouble calcdouble *a,double *b,double e,int *n double x1,x2,s; iffabs*b-*afx2*a=x1; else*b=x2;*n=*n+1; s=calca,b,e,n;return s;main double s,a,b,e; int n=0;可编辑资料 - - - 欢迎下载精品_精品资料_scanf%lf %lf %lf,&a,&b,&e; s=calc&a,&b,e,&n; printfa=%lf,b=%lf,s=%lf,n=%dn,a,b,s,n;5

5、程序运行结果如以下图:2 进退法1算法原理可编辑资料 - - - 欢迎下载精品_精品资料_进退法是用来确定搜寻区间包含微小值点的区间的算法,其理论依据是:f x 为可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_单 谷函 数 只 有 一 个极 值 点 , 且 a, b为 其极 小 值 点 的 一 个 搜寻 区 间 , 对 于 任 意可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_x1, x2 a, b ,假如fx1fx2,就 a, x2 为微小值的搜寻区间, 假如fx1fx2,可编辑资料 - - -

6、 欢迎下载精品_精品资料_就 x1,b 为微小值的搜寻区间.可编辑资料 - - - 欢迎下载精品_精品资料_因此, 在给定初始点x0 ,及初始搜寻步长 h 的情形下, 第一以初始步长向前搜寻一步,可编辑资料 - - - 欢迎下载精品_精品资料_运算 fx0h .可编辑资料 - - - 欢迎下载精品_精品资料_( 1) 假如fx0fx0h可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_就可知搜寻区间为 x, x0h ,其中 x 待求,为确定 x ,后退一步运算f x0h ,可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎

7、下载精品_精品资料_为缩小系数,且 01,直接找到合适的* ,使得f xhfx,从而确定搜可编辑资料 - - - 欢迎下载精品_精品资料_*00可编辑资料 - - - 欢迎下载精品_精品资料_索区间 xh, xh .可编辑资料 - - - 欢迎下载精品_精品资料_*00可编辑资料 - - - 欢迎下载精品_精品资料_( 2) 假如fx0fx0h可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_就可知搜寻区间为 x0 , x ,其中 x 待求,为确定 x ,前进一步运算f x0h ,为可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - -

8、 - 欢迎下载精品_精品资料_放大系数,且1 ,知道找到合适的* ,使得fx0hf x0h ,从而确定搜寻可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_*区间 x , x*h .可编辑资料 - - - 欢迎下载精品_精品资料_00进退法求极值基本思想:对 f x 任选一个初始点 x1 及初始步长 h0, 通过比较这两点函数值的大小,确定第三点位置,比较这三点的函数值大小,确定是否为“高低 高” 形状.算法原理1. 摸索搜寻:选定初始点x1, x2 = x 1+ h0,运算 y 1 f x1, y 2 fx 2a如 y1 y2 , 转 2 向右前

9、进.b如 y1 y2 ,转 3 向左后退.加大步长h 2 h,产生新点x3= x 2 + 2h 0 .可编辑资料 - - - 欢迎下载精品_精品资料_ a如 y2y3,令 x1=x2, y1=y2.x2=x3, y2 =y3.h=2h重新构造新点 x3 =x2+h,并比较 y2、y 3 的大小,直到 y2y3 .令 h -h0 ,令 x3=x 1, y3 =y1. x1 =x2, y1 =y2. x 2=x3, y 2=y3. h=2h. 产生新点 x3 = x 2+ h.a如 y2y3,令 x 1 =x2 , y 1=y2. x 2=x3 , y2=y3. h=2h重新构造新点 x3 =x2

10、+h,并比较 y2 、y3 的大小,直到 y2y3. 令 a= x 1 , b= x 3, 搜寻区间为 a , b.2算法步骤用进退法求一维无约束问题min f x, xR的搜寻区间包含微小值点的区间的基本算法步骤如下:可编辑资料 - - - 欢迎下载精品_精品资料_( 1) 给定初始点x0 ,初始步长h0 ,令hh0 ,x1x0 , k0 .可编辑资料 - - - 欢迎下载精品_精品资料_2x4( ) 令x1h ,置 kk1 .可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_( 3) 假设fx4fx1,就转步骤 4,否就转步骤 5.可编辑资料

11、- - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_( 4) 令 x2x1 , x1x42fx,fx1fx1,fx4,令 h2h ,可编辑资料 - - - 欢迎下载精品_精品资料_转步骤 2.( 5) 假设 k1 ,就转步骤 6否就转步骤 7.可编辑资料 - - - 欢迎下载精品_精品资料_( 6) 令 hh , x2x4 ,fx2fx4,转步骤 2.可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载精品_精品资料_( 7) 令x3x2 , x2x1 , x1x4, 停 止 计 算 , 极 小 值 点 包 含 于 区 间可编辑资料

12、- - - 欢迎下载精品_精品资料_ x1 , x3 或 x3 , x1 3算法的 MATLAB实现在 MATLAB 中编程实现的进退函数为:min JT功能:用进退法求解一维函数的极值区间.可编辑资料 - - - 欢迎下载精品_精品资料_调用格式: minx,maxxminJT f, x0, h0, eps可编辑资料 - - - 欢迎下载精品_精品资料_其中, f :目标函数.x0 :初始点. h0 :初始步长. eps :精度.min x :目标函数取包含极值的区间左端点.max x :目标函数取包含极值的区间又端点.进退法的 MATLAB程序代码如下 :function minx,max

13、x=minJTf,x0,h0,eps%目标函数 :f;%初始点 :x0;%初始步长 :h0;%精度 :eps;%目标函数取包含极值的区间左端点:minx;%目标函数取包含极值的区间又端点:maxx; format long;if nargin=3eps=1.0e-6;end x1=x0; k=0;h=h0;while 1x4=x1+h;% 摸索步可编辑资料 - - - 欢迎下载精品_精品资料_k=k+1; f4=subsf,findsymf,x4; f1=subsf,findsymf,x1; if f4f1x2=x1;x1=x4; f2=f1; f1=f4;h=2*h;%加大步长可编辑资料 - - - 欢迎下载精品_精品资料_elseif k=1h=-h;% 反向搜寻x2=x4;f2=f4;可编辑资料 - - - 欢迎下载精品_精品资料_endendelseendx3=x2; x2=x1; x1=x4; break;可编辑资料 - - - 欢迎下载精品_精品资料_minx=minx1,x3; maxx=x1+x3-minx; format short;流程图如下:可编辑资料 - - - 欢迎下载精品_精品资料_可编辑资料 - - - 欢迎下载

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁