最优化方法 实验1 确定初始空间

  • 格式:doc
  • 大小:161.50 KB
  • 文档页数:7

实 验 报 告

实验课程名称

最优化方法

实验项目名称 确定初始空间

年 级

专 业

学生姓名

学 号

理 学 院

实验时间: 1

学生实验室守则

一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。

二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。

三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。

四、实验必须服从教师的安排和指导,认真按规程操作,未经教师允许不得擅自动用仪器设备,特别是与本实验无关的仪器设备和设施,如擅自动用或违反操作规程造成损坏,应按规定赔偿,严重者给予纪律处分。

五、实验中要节约水、电、气及其它消耗材料。

六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。

七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。

八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。

九、无故不参加实验者,应写出检查,提出申请并缴纳相应的实验费及材料消耗费,经批准后,方可补做。

十、自选实验,应事先预约,拟订出实验方案,经实验室主任同意后,在指导教师或实验技术人员的指导下进行。

十一、实验室内一切物品未经允许严禁带出室外,确需带出,必须经过批准并办理手续。

2 学生所在学院:理学院 专业: 数学与应用数学 班级:应数121

姓 名 学 号 实验组

实验时间 2015.3.23 指导教师 成 绩

实验项目名称 确定初始区间

实验目的及要求:

实验目的:用PPT(第四章) P5-6的算法确定问题

243min3xxxf

包含最优解的初始区间。

实验要求:写出算法原理,算法步骤,画出流程图,写出源程序及运行结果。用MATLAB进行编程。

实验(或算法)原理:

进退法是用来确定搜索区间(包含极小值点的区间)的算法。

其理论依据是:假设 f (x)在考察区间内为单谷函数,即只存在一个极小点。在极小点左侧,函数单调下降,在极小点右侧,函数单调上升。

如果已知该区间内的相邻三个点x1 < x2 < x3,以及函数值 f (x1), f (x2), f (x3),可以通过比较这三个函数值大小来估计极小点的方位。

如果 f (x1) > f (x2) > f (x3),极小点位于点x2的右侧

如果 f (x1) < f (x2) < f (x3),极小点位于点x2的左侧

如果 f (x1) > f (x2) < f (x3),极小点位于点x1和x2之间

实验硬件及软件平台:

计算机 MATLAB 3

实验步骤:

① 给定初始点x0,初始步长h,令x1 = x0,记 f1 = f (x1).

② 由x0和h,产生新的探测点x2 = x0 + h,记 f 2 = f (x2).

③ 比较函数值 f 1和 f 2的大小,确定向前或向后探测的策略。

如果 f 1 > f 2,则加大步长,h = 2h,转④向前探测

如果 f 1 < f 2,则调转方向,令h = -h,将x1和x2、f 1和 f 2的数值分别对调,转④向后探测

④ 产生新的探测点x3 = x1 + h,令 f 3 = f (x3)

⑤ 比较函数值 f 2和f 3的大小

如果 f 2 < f 3,则得到初始区间,令c = x2, f c = f 2,当h > 0时,令[a, b] = [x1,x3],当h < 0时,令[a, b] = [x3, x1]。

如果 f 2 > f 3,则继续加大步长,令 h = 2h,x1 = x2, x2 = x3,转④继续探测。

一般应取 h = 1。

实验内容(包括实验具体内容、算法分析、源代码等等):

一、算法流程图

4

二、算法实现

问题描述:用MATLAB软件确定

243min3xxxf

包含最优解的初始区间。

算法代码:

function [minx,maxx]=minJT(f,x0,h0,eps)

%目标函数:f;

%初始点:x0;

%初始步长:h0;

%精度:eps;

%目标函数取包含极值的区间左端点:minx;

%目标函数取包含极值的区间又端点:maxx;

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

x2=x1;

x1=x4;

f2=f1;

f1=f4;

h=2*h; %加大步长

else

if k==1

h=-h; %反向搜索

x2=x4;

f2=f4;

else

x3=x2;

x2=x1;

x1=x4;

break; 5 end

end

end

minx=min(x1,x3);

maxx=x1+x3-minx;

format short;

算法实现:

如图所示在命令窗口

其初始区间会跟随初值x0的不同选取值而不同。 6

实验结果与讨论:

初始步长 h 的大小必须选择适当,太大时,产生的点 x 可能超出单谷区间范围,太小会延长确定初始区间的过程。其初始区间会跟随初值x0的不同选取值而不同。

指导教师意见:

签名: 年 月 日