好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

一维搜索方法的MATLAB实现

姓名: 班级:信息与计算科学 学号: 实验时间: 2014/6/21 一、实验目的:

通过上机利用Matlab数学软件进行一维搜索,并学会对具体问题进行分析。并且熟悉Matlab软件的实用方法,并且做到学习与使用并存,增加学习的实际动手性,不再让学习局限于书本和纸上,而是利用计算机学习来增加我们的学习兴趣。

二、实验背景: 黄金分割法

它是一种基于区间收缩的极小点搜索算法,当用进退法确定搜索区间后,我们只知道极小点包含于搜索区间内,但是具体哪个点,无法得知。

1、算法原理

黄金分割法的思想很直接,既然极小点包含于搜索区间内,那么可以不断

的缩小搜索区间,就可以使搜索区间的端点逼近到极小点。

2、算法步骤

用黄金分割法求无约束问题minf(x),x?R的基本步骤如下:

[a,b](1)选定初始区间11及精度??0,计算试探点: ?1?a1?0.382*(b1?a1) ?1?a1?0.618*(b1?a1)。

f??k??f??k?b?ak??(2)若k,则停止计算。否则当时转步骤(3)。 当f??k??f??k?转步骤(4)。 (3) ?ak?1??k?b?b?k?1k???k?1??k???k?1?ak?1?0.382*(bk?1?ak?1)转步骤(5) (4)

转步骤(5)

(5)令k?k?1,转步骤(2)。

算法的MATLAB实现

function xmin=golden(f,a,b,e) k=0;

x1=a+0.382*(b-a); x2=a+0.618*(b-a); while b-a>e f1=subs(f,x1); f2=subs(f,x2); if f1>f2 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) fprintf('k=\\n'); disp(k);

3、实验结果(总结/方案)

黄金分割法求解极值实例。用黄金分割法求解下面函数的最小值:

f(t)??t4?t2?2t?5,其中t?[?10,10]

进退法

1. 算法原理

进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:f(x)为单谷函数(只有一个极值点),且[a,b]为其极小值点的一个搜索区间,对于任意x1,x2?[a,b],如果f?x1??f?x2?,则[a,x2]为极小值的搜索区间,如果f?x1??f?x2?,则[x1,b]为极小值的搜索区间。

因此,在给定初始点x0,及初始搜索步长h的情况下,首先以初始步长向前搜索一步,计算f?x0?h?。

(1) 如果f?x0??f?x0?h?

则可知搜索区间为[x,x0?h],其中x待求,为确定x,后退一步计算

f(x0??h),?为缩小系数,且0???1,直接找到合适的?*,使得

f(x0??*h)?f?x0?,从而确定搜索区间[x0??*h,x0?h]。 (2) 如果f?x0??f?x0?h?

则可知搜索区间为[x0,x],其中x待求,为确定x,前进一步计算f(x0??h),

?为放大系数,且??1,知道找到合适的?*,使得f?x0?h??f(x0??*h),从

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

一维搜索方法的MATLAB实现姓名:班级:信息与计算科学学号:实验时间:2014/6/21一、实验目的:通过上机利用Matlab数学软件进行一维搜索,并学会对具体问题进行分析。并且熟悉Matlab软件的实用方法,并且做到学习与使用并存,增加学习的实际动手性,不再让学习局限于书本和纸上,而
推荐度:
点击下载文档文档为doc格式
8gec00vtl968ub00wtu64vbt01gdo5005di
领取福利

微信扫码领取福利

微信扫码分享