您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 最优化方法(黄金分割与进退法)实验报告
最优化方法上机实验第1页共6页一维搜索方法的MATLAB实现姓名:班级:信息与计算科学学号:实验时间:2014/6/21一、实验目的:通过上机利用Matlab数学软件进行一维搜索,并学会对具体问题进行分析。并且熟悉Matlab软件的实用方法,并且做到学习与使用并存,增加学习的实际动手性,不再让学习局限于书本和纸上,而是利用计算机学习来增加我们的学习兴趣。二、实验背景:黄金分割法它是一种基于区间收缩的极小点搜索算法,当用进退法确定搜索区间后,我们只知道极小点包含于搜索区间内,但是具体哪个点,无法得知。1、算法原理黄金分割法的思想很直接,既然极小点包含于搜索区间内,那么可以不断的缩小搜索区间,就可以使搜索区间的端点逼近到极小点。2、算法步骤用黄金分割法求无约束问题min(),fxxR的基本步骤如下:(1)选定初始区间11[,]ab及精度0,计算试探点:11110.382*()aba11110.618*()aba。(2)若kkba,则停止计算。否则当kkff时转步骤(3)。当kkff转步骤(4)。(3)11111110.382*()kkkkkkkkkkabbaba转步骤(5)最优化方法上机实验第2页共6页(4)转步骤(5)(5)令1kk,转步骤(2)。算法的MATLAB实现functionxmin=golden(f,a,b,e)k=0;x1=a+0.382*(b-a);x2=a+0.618*(b-a);whileb-aef1=subs(f,x1);f2=subs(f,x2);iff1f2a=x1;x1=x2;f1=f2;x2=a+0.618*(b-a);elseb=x2;x2=x1;f2=f1;x1=a+0.382*(b-a);endk=k+1;endxmin=(a+b)/2;fmin=subs(f,xmin)最优化方法上机实验第3页共6页fprintf('k=\n');disp(k);3、实验结果(总结/方案)黄金分割法求解极值实例。用黄金分割法求解下面函数的最小值:]10,10[,52)(24tttttf其中进退法1.算法原理进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:()fx为单谷函数(只有一个极值点),且[,]ab为其极小值点的一个搜索区间,对于任意12,[,]xxab,如果12fxfx,则2[,]ax为极小值的搜索区间,如果12fxfx,则1[,]xb为极小值的搜索区间。因此,在给定初始点0x,及初始搜索步长h的情况下,首先以初始步长向前搜索一步,计算0fxh。(1)如果00fxfxh则可知搜索区间为0[,]xxh,其中x待求,为确定x,后退一步计算0()fxh,为缩小系数,且01,直接找到合适的*,使得*00()fxhfx,从而确定搜索区间*00[,]xhxh。最优化方法上机实验第4页共6页(2)如果00fxfxh则可知搜索区间为0[,]xx,其中x待求,为确定x,前进一步计算0()fxh,为放大系数,且1,知道找到合适的*,使得*00()fxhfxh,从而确定搜索区间*00[,]xxh。2.算法步骤用进退法求一维无约束问题min(),fxxR的搜索区间(包含极小值点的区间)的基本算法步骤如下:(1)给定初始点(0)x,初始步长0h,令0hh,(1)(0)xx,0k;(2)令(4)(1)xxh,置1kk;(3)若(4)(1)fxfx,则转步骤(4),否则转步骤(5);(4)令(2)(1)(1)(4),xxxx,(2)(1)fxfx,(1)(4)fxfx,令2hh,转步骤(2);(5)若1k,则转步骤(6)否则转步骤(7);(6)令hh,(2)(4)xx,(2)(4)fxfx,转步骤(2);(7)令(3)(2)(2)(1)(1)(4),,xxxxxx,停止计算,极小值点包含于区间(1)(3)(3)(1)[,][,]xxxx或3.算法的MATLAB实现function[A,B]=minJT(f,x0,h0,eps)%目标函数:f;%初始点:x0;%初始步长:h0;%精度:eps;%目标函数取包含极值的区间的左端点:A;%目标函数取包含极值的区间的右端点:B;formatlong;ifnargin==3;eps=1.0e-6;endx1=x0;最优化方法上机实验第5页共6页k=0;h=h0;while1x4=x1+h;%试探步k=k+1;f4=subs(f,findsym(f),x4);f1=subs(f,findsym(f),x1);iff4f1x2=x1;x1=x4;f2=f1;f1=f4;h=2*h;%加大步长elseifk==1h=-h;%反向搜索x2=x4;f2=f4;elsex3=x2;x2=x1;x1=x4;break;endendendA=min(x1,x3);B=x1+x3-A;formatshort;例:取初始点为0,步长为0.1,用进退法求函数22242()(1)(1)325ftttttt的极值区间。最优化方法上机实验第6页共6页
本文标题:最优化方法(黄金分割与进退法)实验报告
链接地址:https://www.777doc.com/doc-4578690 .html