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

一维搜索方法的MATLAB 实现

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

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

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

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

1、算法原理

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

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

2、算法步骤

用黄金分割法求无约束问题min f (x ), x ∈R 的基本步骤如下: (1)选定初始区间[a 1, b 1]及精度ε>0,计算试探点:

λ1=a 1+0.382*(b 1-a 1)

f λ>f (μk )(2)若b k -a k

f (λk )≤f (μk )转步骤(4)。 (3) ⎧a k +1=λk ⎪b =b ⎪k +1k ⎨

⎪λk +1=μk ⎪⎩μk +1=a k +1+0.382*(b k +1-a k +1) 转步骤(5)

μ1=a 1+0.618*(b 1-a 1) 。

(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 ) ==t 4-t 2-2t +5, 其中t ∈[-10, 10]

进退法

1. 算法原理

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

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

(1) 如果f (x 0)

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

f (x 0-λh ) ,λ为缩小系数,且0

f (x 0-λ*h ) >f (x 0),从而确定搜索区间[x 0-λ*h , x 0+h ]。 (2) 如果f (x 0)>f (x 0+h )

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

λ为放大系数,且λ>1,知道找到合适的λ*,使得f (x 0+h )

2. 算法步骤

用进退法求一维无约束问题min f (x ), x ∈R 的搜索区间(包含极小值点的区间)的基本算法步骤如下:

(1) 给定初始点x (0),初始步长h 0,令h =h 0,x (1)=x (0),k =0; (2) 令x (4)=x (1)+h ,置k =k +1;

(3) 若f (x (4))

(4) 令x (2)=x (1), x (1)=x (4),f (x (2))=f (x (1)),f (x (1))=f (x (4)),令h =2h ,

转步骤(2);

(5) 若k =1,则转步骤(6)否则转步骤(7);

(6) 令h =-h ,x (2)=x (4),f (x (2))=f (x (4)),转步骤(2);

(7) 令x (3)=x (2), x (2)=x (1), x (1)=x (4),停止计算,极小值点包含于区间

[x (1), x (3)]或[x (3), x (1)]

3. 算法的MATLAB 实现

function [A,B]=minJT(f,x0,h0,eps) %目标函数:f; %初始点:x0; %初始步长:h0; %精度:eps;

%目标函数取包含极值的区间的左端点:A; %目标函数取包含极值的区间的右端点:B; format long; if nargin==3; eps=1.0e-6; end

x1=x0; k=0; h=h0; while 1

x4=x1+h;%试探步 k=k+1;

f4=subs(f,findsym(f),x4); f1=subs(f,findsym(f),x1); if f4

h=2*h;%加大步长 else if k==1

h=-h;%反向搜索 x2=x4; f2=f4; else x3=x2; x2=x1; x1=x4; break; end end end

A=min(x1,x3); B=x1+x3-A; format short; 例:

取初始点为0,步长为0.1,用进退法求函数f (t ) =(t 2-1) 2+(t -1) 2+3=t 4-t 2-2t +5的

极值区间。

最优化方法上机实验

一维搜索方法的MATLAB 实现

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

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

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

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

1、算法原理

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

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

2、算法步骤

用黄金分割法求无约束问题min f (x ), x ∈R 的基本步骤如下: (1)选定初始区间[a 1, b 1]及精度ε>0,计算试探点:

λ1=a 1+0.382*(b 1-a 1)

f λ>f (μk )(2)若b k -a k

f (λk )≤f (μk )转步骤(4)。 (3) ⎧a k +1=λk ⎪b =b ⎪k +1k ⎨

⎪λk +1=μk ⎪⎩μk +1=a k +1+0.382*(b k +1-a k +1) 转步骤(5)

μ1=a 1+0.618*(b 1-a 1) 。

(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 ) ==t 4-t 2-2t +5, 其中t ∈[-10, 10]

进退法

1. 算法原理

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

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

(1) 如果f (x 0)

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

f (x 0-λh ) ,λ为缩小系数,且0

f (x 0-λ*h ) >f (x 0),从而确定搜索区间[x 0-λ*h , x 0+h ]。 (2) 如果f (x 0)>f (x 0+h )

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

λ为放大系数,且λ>1,知道找到合适的λ*,使得f (x 0+h )

2. 算法步骤

用进退法求一维无约束问题min f (x ), x ∈R 的搜索区间(包含极小值点的区间)的基本算法步骤如下:

(1) 给定初始点x (0),初始步长h 0,令h =h 0,x (1)=x (0),k =0; (2) 令x (4)=x (1)+h ,置k =k +1;

(3) 若f (x (4))

(4) 令x (2)=x (1), x (1)=x (4),f (x (2))=f (x (1)),f (x (1))=f (x (4)),令h =2h ,

转步骤(2);

(5) 若k =1,则转步骤(6)否则转步骤(7);

(6) 令h =-h ,x (2)=x (4),f (x (2))=f (x (4)),转步骤(2);

(7) 令x (3)=x (2), x (2)=x (1), x (1)=x (4),停止计算,极小值点包含于区间

[x (1), x (3)]或[x (3), x (1)]

3. 算法的MATLAB 实现

function [A,B]=minJT(f,x0,h0,eps) %目标函数:f; %初始点:x0; %初始步长:h0; %精度:eps;

%目标函数取包含极值的区间的左端点:A; %目标函数取包含极值的区间的右端点:B; format long; if nargin==3; eps=1.0e-6; end

x1=x0; k=0; h=h0; while 1

x4=x1+h;%试探步 k=k+1;

f4=subs(f,findsym(f),x4); f1=subs(f,findsym(f),x1); if f4

h=2*h;%加大步长 else if k==1

h=-h;%反向搜索 x2=x4; f2=f4; else x3=x2; x2=x1; x1=x4; break; end end end

A=min(x1,x3); B=x1+x3-A; format short; 例:

取初始点为0,步长为0.1,用进退法求函数f (t ) =(t 2-1) 2+(t -1) 2+3=t 4-t 2-2t +5的

极值区间。

最优化方法上机实验


相关文章

  • 机械优化设计课程大纲
  • <机械优化设计>课程教学大纲 1 课程的目的和任务 机械优化设计是针对机自专业3年级开设的专业选修课程,在人才培养中起着承上启下的重要作用. 该课程的主要目的在于让学生理解优化的本质思想,理解目标函数和约束条件,通过实例和实验进 ...查看


  • 基于VB外点惩罚函数法的实现
  • Equipment Manufactring Technology No.3,2011 基于VB外点惩罚函数法的实现 殷晓飞1,任晓丹2 (1.呼和浩特职业学院机电工程学院,内蒙古呼和浩特010051: 2.内蒙古机电职业技术学院电气工程系 ...查看


  • 共轭梯度法 1
  • 题目: 用共轭梯度法求解f (x 1, x 2) =x 12+x 22-x 1x 2-10x 1-4x 2+60 的极小值, ε≤0.001. 要求: 1.需编写一维搜索方法(进退法.黄金分割法): 2.在使用共轭梯度法梯度法进行搜索时可以 ...查看


  • 共轭梯度法c++程序
  • 最优化课程设计 姓 名:指导老师:学 号:班 级: 题目:共轭梯度法 田鑫 智红英 [1**********]6 信息与计算科学111802班 共轭梯度法(Conjugate Gradient) 是介于最速下降法与牛顿法之间的一个方法,它仅 ...查看


  • 矩阵分解及无约束最优化方法
  • 矩阵分解及无约束最优化 方法的原理和应用简介 --最优化方法课程实验报告 学 院:数学与统计学院 班 级:硕2041班 姓 名:王彭 学 号:指导教师:阮小娥 同 组 人:陈莹 钱东东 矩阵分解及无约束最优化方法的原理和应用简介 矩阵分解及 ...查看


  • 教师资格证考试目录
  • 高一上学期学必修1.3,下学期学必修2.4,高二上半学期(期中考试前)学必修5,再学选修,其中理科期中考试后期末考试前学选修2-1,文科是选修1-1,到年后第二学期理科在期中考试前学选修2-2,文科是1-2,期中考试后到期末考试理科学选修2 ...查看


  • 优化理论和最优控制
  • 分 数: ___________ 任课教师签字:___________ 华北电力大学研究生结课作业 学 年 学 期:2013-2014第二学期 课 程 名 称:优化理论和最优控制 学 生 姓 名: 学 号: 提 交 时 间:2014年4月2 ...查看


  • 运输管理系统操作实验报告
  • 实验项目三 TMS 运输管理系统操作实验报告 淮安信息职业技术学院 2012年4月 目录 一.引言----------------------------------------------- 二.什么是TMS运输管理系统 -------- ...查看


  • 黄金分割在生活中的应用
  • 黄金分割在生活中的应用 中世纪的数学家开普勒(1571-1630)对黄金分割作了很高的评价.他说:几何学有两大宝藏:一个是勾股定理,另一个是黄金分割.黄金分割是公元前六世纪古希腊数学家毕达哥拉斯所发现,后来古希腊美学家柏拉图将此称为黄金分割 ...查看


热门内容