最优化方法(黄金分割与进退法)实验报告

上传人:206****923 文档编号:37539810 上传时间:2018-04-18 格式:DOC 页数:6 大小:213.99KB
返回 下载 相关 举报
最优化方法(黄金分割与进退法)实验报告_第1页
第1页 / 共6页
最优化方法(黄金分割与进退法)实验报告_第2页
第2页 / 共6页
最优化方法(黄金分割与进退法)实验报告_第3页
第3页 / 共6页
最优化方法(黄金分割与进退法)实验报告_第4页
第4页 / 共6页
最优化方法(黄金分割与进退法)实验报告_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《最优化方法(黄金分割与进退法)实验报告》由会员分享,可在线阅读,更多相关《最优化方法(黄金分割与进退法)实验报告(6页珍藏版)》请在金锄头文库上搜索。

1、最优化方法上机实验第 0 页 共 6 页一维搜索方法的一维搜索方法的 MATLABMATLAB 实现实现姓名: 班级:信息与计算科学 学号: 实验时间: 2014/6/21一、实验目的:一、实验目的:通过上机利用 Matlab 数学软件进行一维搜索,并学会对具体问题进行分析。并且熟悉 Matlab 软件的实用方法,并且做到学习与使用并存,增加学习的实际动手性,不再让学习局限于书本和纸上,而是利用计算机学习来增加我们的学习兴趣。二、实验背景:二、实验背景:黄金分割法黄金分割法它是一种基于区间收缩的极小点搜索算法,当用进退法确定搜索区间后,我们只知道极小点包含于搜索区间内,但是具体哪个点,无法得知

2、。1、算法原理黄金分割法的思想很直接,既然极小点包含于搜索区间内,那么可以不断的缩小搜索区间,就可以使搜索区间的端点逼近到极小点。2、算法步骤用黄金分割法求无约束问题的基本步骤如下:min( ),f x xR(1)选定初始区间及精度,计算试探点:11,a b011110.382*()aba。11110.618*()aba(2)若,则停止计算。否则当时转步骤(3) 。 当kkba kkff转步骤(4) 。 kkff(3)转步骤(5)11111110.382*()kkkkkkkkkkabbaba 最优化方法上机实验第 1 页 共 6 页(4)转步骤(5)(5)令,转步骤(2) 。1kk算法的算法的

3、 MATLABMATLAB 实现实现function xmin=golden(f,a,b,e) k=0; x1=a+0.382*(b-a); x2=a+0.618*(b-a); while b-ae f1=subs(f,x1); f2=subs(f,x2); if f1f2 a=x1; x1=x2; f1=f2; x2=a+0.618*(b-a); else b=x2; x2=x1; f2=f1; x1=a+0.382*(b-a); end k=k+1; end xmin=(a+b)/2; fmin=subs(f,xmin)最优化方法上机实验第 2 页 共 6 页fprintf(k=n);di

4、sp(k); 3 3、实验结果实验结果( (总结总结/ /方案方案) )黄金分割法求解极值实例。用黄金分割法求解下面函数的最小值:10,10, 52)(24tttttf其中进退法进退法1. 算法原理进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:为单谷函数(只有一个极值点) ,且为其极小值点的一个搜索区( )f x , a b间,对于任意,如果,则为极小值的搜索区12, , x xa b 12f xf x2 ,a x间,如果,则为极小值的搜索区间。 12f xf x1 , x b因此,在给定初始点,及初始搜索步长的情况下,首先以初始步长向0xh前搜索一步,计算。0f xh(

5、1) 如果 00f xf xh则可知搜索区间为,其中待求,为确定,后退一步计算0 ,x xh%x %x %,为缩小系数,且,直接找到合适的,使得0()f xh01*,从而确定搜索区间。 * 00()f xhf x* 00,xh xh最优化方法上机实验第 3 页 共 6 页(2) 如果 00f xf xh则可知搜索区间为,其中待求,为确定,前进一步计算0, x x %x %x %,为放大系数,且,知道找到合适的,使得0()f xh1*,从而确定搜索区间。* 00()f xhf xh* 00,x xh2. 算法步骤用进退法求一维无约束问题的搜索区间(包含极小值点的min( ),f x xR区间)的

6、基本算法步骤如下:(1) 给定初始点,初始步长,令,;(0)x0h0hh(1)(0)xx0k (2) 令,置;(4)(1)xxh1kk(3) 若,则转步骤(4) ,否则转步骤(5) ; (4)(1)f xf x(4) 令,令(2)(1)(1)(4),xxxx (2)(1)f xf x (1)(4)f xf x,转步骤(2) ;2hh(5) 若,则转步骤(6)否则转步骤(7) ;1k (6) 令,转步骤(2) ;hh (2)(4)xx(2)(4)f xf x(7) 令,停止计算,极小值点包含于区间(3)(2)(2)(1)(1)(4),xxxxxx(1)(3)(3)(1),xxxx或3. 算法的

7、MATLAB 实现function A,B=minJT(f,x0,h0,eps)%目标函数:f;%初始点:x0;%初始步长:h0;%精度:eps;%目标函数取包含极值的区间的左端点:A;%目标函数取包含极值的区间的右端点:B;format long;if nargin=3;eps=1.0e-6;endx1=x0;最优化方法上机实验第 4 页 共 6 页k=0;h=h0;while 1x4=x1+h;%试探步k=k+1;f4=subs(f,findsym(f),x4);f1=subs(f,findsym(f),x1);if f4f1x2=x1;x1=x4;f2=f1;f1=f4;h=2*h;%加大步长else if k=1h=-h;%反向搜索x2=x4;f2=f4;else x3=x2;x2=x1;x1=x4;break;endendendA=min(x1,x3);B=x1+x3-A;format short;例:例:取初始点为 0,步长为 0.1,用进退法求函数的极值区间。22242( )(1)(1)325f tttttt 最优化方法上机实验第 5 页 共 6 页

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

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号