使用精确搜索算法确定步长的牛顿法
数学与计算科学学院 实 验 报 告 实验项目名称实验项目名称使用精确搜索算法确定步长的牛顿法 所属课程名称所属课程名称最优化方法 实实 验验 类类 型型算法编程 实实 验验 日日 期期2015 年 11 月 13 号 班班级级信 学学号号201 姓姓名名 成成绩绩 一、实验概述:一、实验概述: 【实验目的】【实验目的】 (1) 掌握精确搜索算法确定步长的最速下降法; (2) 使用计算机语言表达最优化方法。 【实验原理】【实验原理】 设设 f f((x x)是二次可微函数,)是二次可微函数,x n,又,又x(k)设设 f f((x x)的极小点的一个估计,)的极小点的一个估计, 我们把我们把 f f((x x)在)在x(k)展开成展开成 TaylorTaylor 级数,并取二阶近似级数,并取二阶近似 1 f (x) (x) f (x(k))f (x k )T(x x(k))(x x(k))T2f (x(k))(x x(k)) 2 其中2f (x(k))是 f(x)在x(k)处的处的 HesseHesse 矩阵。为求矩阵。为求(x)的平稳点,令的平稳点,令 (x)=0=0 即即 f (x k )(x x(k))T2f (x(k)) 0 设2f (x(k))可逆,则有x k1 x k [2f (x k )]1f (x k )为牛顿法的迭代公式。这样 知道x(k)后,算出在这一点处目标函数的梯度和 Hesse 矩阵的逆,代入,便得到 x(k1),用 k+1 代替 k,再计算,又得到x(k1),以此类推,产生序列{x(k)}。 【实验环境】【实验环境】 计算机 VC++ 二、实验内容:二、实验内容: 1 【实验方案】【实验方案】 1. 列举例题 2. 手工计算 3. 将计算步骤等实现程序化 4. 实验结果分析 【实验过程】【实验过程】 例题例题 2minmin(x 1 1)4 x 2 计算步骤: 2 语言设计流程图: 开始 设定初点, k:=0 计算2f (x(k)),f (x(k)) 计算x k1 x k [2f (x k )]1f (x k ) 否 收敛于x 是 输出x 结束 【实验结论】【实验结论】 k x(k) 0 T(0,1) 11 ( ,0)T 3 25 T( ,0) 9 319 T(,0) 27 …… 3 4 【实验小结】【实验小结】 (收获体会)(收获体会) 通过本次实验, 初步解了最优化方法在机器语言上的实现,更深刻的了解了 使用精确搜索算法确定步长的牛顿法,理解和掌握了他们的优缺点。同时也认识 了自己的缺点,编程能力弱,需要极大的提高。在以后的实验中会努力学习,争 取把这门课学好。 三、指导教师评语及成绩:三、指导教师评语及成绩: 评语等级评语等级 评评语语 1.1.实验报告按时完成实验报告按时完成, ,字迹清楚字迹清楚, ,文字叙述流畅文字叙述流畅, ,逻辑逻辑 性强性强 2.2.实验方案设计合理实验方案设计合理 析透彻)析透彻) 4 4 实验结论正确实验结论正确. . 优优 良良中中及格及格 不及不及 格格 3.3.实验过程(实验步骤详细实验过程(实验步骤详细, ,记录完整记录完整, ,数据合理数据合理, ,分分 成成绩:绩: 指导教师签名:指导教师签名: 批阅日期:批阅日期: 5 附录附录 1 1:源:源 程程 序序 function [x1 k]=newton(x1,j) %x1 为初始点 x1=[8,8] ; j=1e-10; hs=inline( (x-1)^4+y^2 ); ezcontour(hs,[-10 10 -10 10]); hold on; syms x y f=(x-1)^4+y^2; grad1=jacobian(f,[x,y]);%求梯度 grad2=jacobian(grad1,[x,y]);%求 Hesse 矩阵 k=0; while 1 grad1z=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 );%牛顿迭代公式 if norm(x1-x2)j break; else plot([x1(1),x2(1)],[x1(2),x2(2)], -r* ); k=k+1;x1=x2; end 附录附录 2 2:实验报告填写说明:实验报告填写说明 6 1 1.实验项目名称:.实验项目名称:要求与实验教学大纲一致. 2 2.实验目的.实验目的:目的要明确,要抓住重点,符合实验教学大纲要求. 3 3.实验原理:.实验原理:简要说明本实验项目所涉及的理论知识. 4 4.实验环境.实验环境:实验用的软、硬件环境. 5 5.实验方案(思路、步骤和方法等).实验方案(思路、步骤和方法等):这是实验报告极其重要的内容.概括整个实验过程. 对于验证性实验,要写明依据何种原理、操作方法进行实验,要写明需要经过哪几个步 骤来实现其操作.对于设计性和综合性实验,在上述内容基础上还应该画出流程图、设计 思路和设计方法,再配以相应的文字说明.对于创新性实验,还应注明其创新点、特色. 6 6.实验过程(实验中涉及的记录、数据、分析):.实验过程(实验中涉及的记录、数据、分析):写明具体实验方案的具体实施步骤,包 括实验过程中的记录、数据和相应的分析. 7 7.实验结论(结果):.实验结论(结果):根据实验过程中得到的结果,做出结论. 8 8.实验小结:.实验小结:本次实验心得体会、思考和建议. 9 9.指导教师评语及成绩:.指导教师评语及成绩:指导教师依据学生的实际报告内容,给出本次实验报告的评价. 7