文档介绍:数学与计算科学学院实验报告实验项目名称使用精确搜索算法确定步长的牛顿法所属课程名称最优化方法实验类型算法编程实验日期2015年11月13号班级信学号201姓名成绩一、实验概述:【实验目的】掌握精确搜索算法确定步长的最速下降法;使用计算机语言表达最优化方法。【实验原理】设f(x)是二次可微函数,,又设f(x)的极小点的一个估计,我们把f(x)在展开成Taylor级数,并取二阶近似其中是f(x)在处的Hesse矩阵。为求的平稳点,令=0即设可逆,则有为牛顿法的迭代公式。这样知道后,算出在这一点处目标函数的梯度和Hesse矩阵的逆,代入,便得到,用k+1代替k,再计算,又得到,以此类推,产生序列{}。【实验环境】计算机VC++二、实验容:【实验方案】列举例题手工计算将计算步骤等实现程序化实验结果分析【实验过程】例题min计算步骤:语言设计流程图:开始k:=0收敛于计算计算,设定初点,输出结束是否【实验结论】0123……【实验小结】(收获体会)通过本次实验,初步解了最优化方法在机器语言上的实现,更深刻的了解了使用精确搜索算法确定步长的牛顿法,理解和掌握了他们的优缺点。同时也认识了自己的缺点,编程能力弱,需要极大的提高。在以后的实验中会努力学习,争取把这门课学好。三、指导教师评语及成绩:,字迹清楚,文字叙述流畅,(实验步骤详细,记录完整,数据合理,分析透彻):指导教师签名:批阅日期:附录1:源程序function[x1k]=newton(x1,j)%x1为初始点x1=[8,8]';j=1e-10;hs=inline('(x-1)^4+y^2');ezcontour(hs,[-1010-1010]);holdon;symsxyf=(x-1)^4+y^2;grad1=jacobian(f,[x,y]);%求梯度grad2=jacobian(grad1,[x,y]);%求Hesse矩阵k=0;while1grad1z=subs(subs(grad1,x,x1(1)),y,x1(2));%求梯度值grad2z=subs(subs(grad2,x,x1(1)),y,x1(2));%求Hesse矩阵x2=x1-inv(grad2z)*(grad1z');%牛顿迭代公式ifnorm(x1-x2)<jbreak;elseplot([x1(1),x2(1)],