资源描述:
《使用精确搜索算法确定步长的最速下降法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数学与计算科学学院实验报告实验项目名称使用精确搜索算法确定步长的最速下降法所属课程名称最优化方法实验类型算法编程实验日期201班级学号姓名成绩一、实验概述:【实验目的】8(1)掌握精确搜索算法确定步长的最速下降法;(2)使用计算机语言表达最优化方法。【实验原理】最速下降法又称为梯度法,是1847年由著名数学家Cauchy给出的。他是解析法中最古老的一种,其他解析方法或是它的变形,或是受它的启发而得到的,因此它是最优化方法的基础。设无约束问题中的目标函数f:Rn®R1一阶连续可微。最速下降法的基本思想是:从当前点出发,
2、取函数f(x)在点处下降最快的方向作为我们的搜索方向.由f(x)的Taylor展式知略去t的高阶无穷小项不计,可见取时,函数值下降得最多。于是,我们可以构造出最速下降法的迭代步骤。解无约束问题的的最速下降法计算步骤第1步选取初始点,给定终止误差,令k:=0;第2步计算ÑÑf(),,若‖Ñf()‖£,停止迭代.输出.否则进行第三步第3步取;第4步进行一维搜索,求,使得令,k:=k+1,转第2步。由以上计算步骤可知,最速下降法迭代终止时,求得的是目标函数驻点的一个近似点。【实验环境】计算机VC++8二、实验内容:【实验方
3、案】1.列举例题2.手工计算3.将计算步骤等实现程序化4.实验结果分析【实验过程】例题计算步骤:88语言设计流程图:【实验结论】最小值:0.0006096631611最优解时:x1=0.0329218107X2=-0.0082304526758【实验小结】(收获体会)通过本次实验,初步了解了最优化方法在机器语言上的实现,更深刻的了解了精确线性搜索法确定步长的最速下降法,理解和掌握了他们的优缺点。同时也认识了自己的缺点,编程能力弱,需要极大的提高。在以后的实验中会努力学习,争取把这门课学好。三、指导教师评语及成绩:评语
4、评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强P2.实验方案设计合理P3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)P4实验结论正确.P成绩:指导教师签名:批阅日期:8附录1:源程序#include“math.h”#include“stdio.h”floatx[10],y[10],p[10],f,h;intn;vodfun(){inti;for(i=1,i5、urn;}main(){floatg[10],d[10],q,r,e,h1,h2,h3,h4,t,t0,c1,c2,f1,f2,f3,f4,f5,v;inti,k,u;printf(“inputn,e”);scanf(“%d,%f”,&n,&e);x[1]=0;x[2]=0;p4:g[1]=2*x[1]-x[2]-10;g[2]=2*x[2]-x[1]-4;q=0;for(i=1;i6、]/r;}if(rf2){t=t+t;u=u+1;else{t=-t;h3=h1;f3=f1;h1=h2;f1=f2;h2=h3;f2=f3;p1:h3=h2+t;h=h3;fun()f3=f;if(f2>f3){t=t+t;u=u+1;h1=h2;f1=f2;h2=h3;f2=f3;gotopl;}else{if(u>0){h4=0.5*(h
7、2+h3);h=h4;fun();f4=f;if(f4>f2){h3=h4;f3=f4;}else{h1=h2;f1=f2;h2=h4;f2=f4;}}c1=(f3-f1)/(h3-h1);c2=((f2-f1)/(h2-h1)-c1)/(h2-h3);8if(fabs(c2)8、for(i=1;if2){h1=h2;f1=f2;}else{h1=h4;f1=f4;}t0=v*t0;gotop2;}}}}p3:h0;fun();printf(“OBJ.FUNCF=%f”,f);for(i=1;i