最优化方法 实验1 确定初始空间
- 格式:doc
- 大小:161.50 KB
- 文档页数:7
实 验 报 告
实验课程名称
最优化方法
实验项目名称 确定初始空间
年 级
专 业
学生姓名
学 号
理 学 院
实验时间: 1
学生实验室守则
一、按教学安排准时到实验室上实验课,不得迟到、早退和旷课。
二、进入实验室必须遵守实验室的各项规章制度,保持室内安静、整洁,不准在室内打闹、喧哗、吸烟、吃食物、随地吐痰、乱扔杂物,不准做与实验内容无关的事,非实验用品一律不准带进实验室。
三、实验前必须做好预习(或按要求写好预习报告),未做预习者不准参加实验。
四、实验必须服从教师的安排和指导,认真按规程操作,未经教师允许不得擅自动用仪器设备,特别是与本实验无关的仪器设备和设施,如擅自动用或违反操作规程造成损坏,应按规定赔偿,严重者给予纪律处分。
五、实验中要节约水、电、气及其它消耗材料。
六、细心观察、如实记录实验现象和结果,不得抄袭或随意更改原始记录和数据,不得擅离操作岗位和干扰他人实验。
七、使用易燃、易爆、腐蚀性、有毒有害物品或接触带电设备进行实验,应特别注意规范操作,注意防护;若发生意外,要保持冷静,并及时向指导教师和管理人员报告,不得自行处理。仪器设备发生故障和损坏,应立即停止实验,并主动向指导教师报告,不得自行拆卸查看和拼装。
八、实验完毕,应清理好实验仪器设备并放回原位,清扫好实验现场,经指导教师检查认可并将实验记录交指导教师检查签字后方可离去。
九、无故不参加实验者,应写出检查,提出申请并缴纳相应的实验费及材料消耗费,经批准后,方可补做。
十、自选实验,应事先预约,拟订出实验方案,经实验室主任同意后,在指导教师或实验技术人员的指导下进行。
十一、实验室内一切物品未经允许严禁带出室外,确需带出,必须经过批准并办理手续。
2 学生所在学院:理学院 专业: 数学与应用数学 班级:应数121
姓 名 学 号 实验组
实验时间 2015.3.23 指导教师 成 绩
实验项目名称 确定初始区间
实验目的及要求:
实验目的:用PPT(第四章) P5-6的算法确定问题
243min3xxxf
包含最优解的初始区间。
实验要求:写出算法原理,算法步骤,画出流程图,写出源程序及运行结果。用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软件确定
243min3xxxf
包含最优解的初始区间。
算法代码:
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的不同选取值而不同。 指导教师意见: 签名: 年 月 日