您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > 使用精确搜索算法确定步长的最速下降法
数学与计算科学学院实验报告实验项目名称使用精确搜索算法确定步长的最速下降法所属课程名称最优化方法实验类型算法编程实验日期201班级学号姓名成绩一、实验概述:【实验目的】1(1)掌握精确搜索算法确定步长的最速下降法;(2)使用计算机语言表达最优化方法。【实验原理】最速下降法又称为梯度法,是1847年由著名数学家Cauchy给出的。他是解析法中最古老的一种,其他解析方法或是它的变形,或是受它的启发而得到的,因此它是最优化方法的基础。设无约束问题中的目标函数一阶连续可微。最速下降法的基本思想是:从当前点kx出发,取函数f(x)在点kx处下降最快的方向作为我们的搜索方向kp.由f(x)的Taylor展式知()()()()kkkkTkkfxfxtptfxpotp略去t的高阶无穷小项不计,可见取()kkpfx时,函数值下降得最多。于是,我们可以构造出最速下降法的迭代步骤。解无约束问题的的最速下降法计算步骤第1步选取初始点(0)x,给定终止误差,令k:=0;第2步计算f(kx),,若‖f(kx)‖,停止迭代.输出kx.否则进行第三步第3步取()kkpfx;第4步进行一维搜索,求kt,使得1()(())min(())kkkkkkfxfxtfxfxtfx令,k:=k+1,转第2步。由以上计算步骤可知,最速下降法迭代终止时,求得的是目标函数驻点的一个近似点。【实验环境】计算机VC++2二、实验内容:【实验方案】1.列举例题2.手工计算3.将计算步骤等实现程序化4.实验结果分析【实验过程】例题222121)(xxxf0.1(0)(1,1)Tx计算步骤:34语言设计流程图:【实验结论】最小值:0.0006096631611最优解时:x1=0.0329218107X2=-0.0082304526755【实验小结】(收获体会)通过本次实验,初步了解了最优化方法在机器语言上的实现,更深刻的了解了精确线性搜索法确定步长的最速下降法,理解和掌握了他们的优缺点。同时也认识了自己的缺点,编程能力弱,需要极大的提高。在以后的实验中会努力学习,争取把这门课学好。三、指导教师评语及成绩:评语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确.成绩:指导教师签名:批阅日期:6附录1:源程序#include“math.h”#include“stdio.h”floatx[10],y[10],p[10],f,h;intn;vodfun(){inti;for(i=1,in;i++)x[i]=y[i]-h*p[i];f=1/2*x[1]*x[1]+x[2]*x[2];f=f+60;return;}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\n”);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;in;i++)q=g[i]*g[i]+q;r=sqrt(q);for(i=1;in;i++){y[i]=x[i];p[i]=g[i]/r;}if(re)gotop3;else{t0=1;v=0.1;h1=0;h=h1fun();f1=f;p2:u=0;t=t0;h2=h1+t;h=h2;fun();f2=f;if(f1f2){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(f2f3){t=t+t;u=u+1;h1=h2;f1=f2;h2=h3;f2=f3;gotopl;}else{if(u0){h4=0.5*(h2+h3);h=h4;fun();f4=f;if(f4f2){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);7if(fabs(c2)e){h1=h2;f1=f2;t0=v*t0;gotop2;}else{h4=0.5*(h1+h3-(c1/c2));h=h4;fun();f4=f;if(f21)f5=1;elsef5=f2;if((fabs(f4-f2)/f5)e){for(i=1;in;i++)x[i]=y[i]-h4*p[i];gotop4;}else{if(f4f2){h1=h2;f1=f2;}else{h1=h4;f1=f4;}t0=v*t0;gotop2;}}}}p3:h0;fun();printf(“OBJ.FUNCF=%f\n”,f);for(i=1;in;i++){printf(“X(%d”,I);printf(“)=%f\n”,x[i]);}}8附录2:实验报告填写说明1.实验项目名称:要求与实验教学大纲一致.2.实验目的:目的要明确,要抓住重点,符合实验教学大纲要求.3.实验原理:简要说明本实验项目所涉及的理论知识.4.实验环境:实验用的软、硬件环境.5.实验方案(思路、步骤和方法等):这是实验报告极其重要的内容.概括整个实验过程.对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步骤来实现其操作.对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计思路和设计方法,再配以相应的文字说明.对于创新性实验,还应注明其创新点、特色.6.实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包括实验过程中的记录、数据和相应的分析.7.实验结论(结果):根据实验过程中得到的结果,做出结论.8.实验小结:本次实验心得体会、思考和建议.9.指导教师评语及成绩:指导教师依据学生的实际报告内容,给出本次实验报告的评价.
本文标题:使用精确搜索算法确定步长的最速下降法
链接地址:https://www.777doc.com/doc-2687352 .html