求解无约束最优化问题的共轭梯度法.doc

求解无约束最优化问题的共轭梯度法.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
求解无约束最优化问题的共轭梯度法.doc

首次试做实验记录 年 月 日 实验课程名称 最优化方法 面向专业 信息与计算科学 总学时数 实验项目名称 求解无约束最优化问题的共轭梯度法 实验学时 一、实验目的、要求 目的:进一步掌握解无约束最优化问题的共轭梯度法的基本思想,熟悉关于极小化正定二次函数以及非二次函数的共轭梯度法的算法,了解它们的特点,加强编程能力和编程技巧,能够上机求解一些多变量函数最优化问题。 要求:针对给定的实验题目,根据共轭梯度法的算法,能够熟练地使用某种语言上机编程,给出实验结果,注意上机编程的正确性。 二、实验原理 共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法需要存储和计算Hesse矩阵并求逆的特点。共轭梯度法具有二次终止性,即对于正定二次函数,在精确线搜索的条件下,方法有限步终止。关于正定二次函数和非二次函数的共轭梯度法详见教材中的算法4.3.4和算法4.3.8。需要写算法 三、实验内容: 极小化函数,其中 。 四、实验过程原始记录(数据、图表、计算等) %首先我们给出给出针对正定二次函数的共轭梯度法的程序 % 该程序具有一定的适应性,适合一般的正定二次函数 function [x,iter]=cgopt(G,b,x0,max_iter,tol) % Conjugate gradient method for the following positive definite quadratic % function % x0: starting point % max_iter: maximum number of iterations % tol: tolerance of the gradient x=x0; fprintf('\n x0= '); fprintf(' %10.6f',x0); r=G*x-b; d=-r; for k=1:max_iter if norm(r)<=tol iter=k-1; fprintf('\n Algorithm finds a solution!'); return end alpha=(r'*r)/(d'*G*d); xx=x+alpha*d; rr=r+alpha*G*d; beta=(rr'*rr)/(r'*r); d=-rr+beta*d; x=xx; r=rr; fprintf('\n x%d= ',k); fprintf(' %10.6f',x); end iter=max_iter; return %下面我们给出利用共轭梯度法法求解本实验题目的主程序 %该程序具有针对性,需针对具体的题目进行适当的修改 function CG_main() G=[10 1 2 3 4;1 9 -1 2 -3;2 -1 7 3 -5;3 2 3 12 -1;4 -3 -5 -1 15]; b=[12 -27 14 -17 12]'; x0=[0 0 0 0 0]'; max_iter=1000; tol=1e-6; fprintf('\n'); fprintf('Conjugate Gradient Method: \n'); fprintf('============= \n'); [x,iter]=cgopt(G,b,x0,max_iter,tol); fprintf('Iterative number:\n %d\n',iter); fprintf('Solution: \n'); fprintf(' %10.6f ',x); fprintf('\n============= \n'); 五、实验结果及分析 我们在工作窗口输入命令CG_main (),运行后得结果 Conjugate Gradient Method: ============= x0= 0.000000 0.000000 0.000000 0.000000 0.000000 x1= 1.073560 -2.415510 1.252487 -1.520877 1.073560 x2= 1.305605 -2.627981 2.146636 -1.694270 0.442393 x3= 1.446618 -2.225384 2.448048 -1.970691 0.620722 x4= 1

文档评论(0)

docindoc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档