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

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

ID:13217156

大小:32.50 KB

页数:3页

时间:2018-07-21

求解无约束最优化问题的共轭梯度法_第1页
求解无约束最优化问题的共轭梯度法_第2页
求解无约束最优化问题的共轭梯度法_第3页
资源描述:

《求解无约束最优化问题的共轭梯度法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、首次试做实验记录年月日实验课程名称最优化方法面向专业信息与计算科学总学时数实验项目名称求解无约束最优化问题的共轭梯度法实验学时一、实验目的、要求目的:进一步掌握解无约束最优化问题的共轭梯度法的基本思想,熟悉关于极小化正定二次函数以及非二次函数的共轭梯度法的算法,了解它们的特点,加强编程能力和编程技巧,能够上机求解一些多变量函数最优化问题。要求:针对给定的实验题目,根据共轭梯度法的算法,能够熟练地使用某种语言上机编程,给出实验结果,注意上机编程的正确性。二、实验原理共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避

2、免了牛顿法需要存储和计算Hesse矩阵并求逆的特点。共轭梯度法具有二次终止性,即对于正定二次函数,在精确线搜索的条件下,方法有限步终止。关于正定二次函数和非二次函数的共轭梯度法详见教材中的算法4.3.4和算法4.3.8。需要写算法三、实验内容:极小化函数,其中。四、实验过程原始记录(数据、图表、计算等)%首先我们给出给出针对正定二次函数的共轭梯度法的程序%该程序具有一定的适应性,适合一般的正定二次函数function[x,iter]=cgopt(G,b,x0,max_iter,tol)%Conjugategradientmethodforthefollowingposit

3、ivedefinitequadratic%function%x0:startingpoint%max_iter:maximumnumberofiterations%tol:toleranceofthegradientx=x0;fprintf('x0=');fprintf('%10.6f',x0);r=G*x-b;d=-r;fork=1:max_iterifnorm(r)<=toliter=k-1;fprintf('Algorithmfindsasolution!');returnendalpha=(r'*r)/(d'*G*d);xx=x+alpha*d;rr=r+

4、alpha*G*d;beta=(rr'*rr)/(r'*r);d=-rr+beta*d;x=xx;r=rr;fprintf('x%d=',k);fprintf('%10.6f',x);enditer=max_iter;return%下面我们给出利用共轭梯度法法求解本实验题目的主程序%该程序具有针对性,需针对具体的题目进行适当的修改functionCG_main()G=[101234;19-12-3;2-173-5;32312-1;4-3-5-115];b=[12-2714-1712]';x0=[00000]';max_iter=1000;tol=1e-6;fprint

5、f('');fprintf('ConjugateGradientMethod:');fprintf('=============');[x,iter]=cgopt(G,b,x0,max_iter,tol);fprintf('Iterativenumber:%d',iter);fprintf('Solution:');fprintf('%10.6f',x);fprintf('=============');五、实验结果及分析我们在工作窗口输入命令CG_main(),运行后得结果ConjugateGradientMethod:=========

6、====x0=0.0000000.0000000.0000000.0000000.000000x1=1.073560-2.4155101.252487-1.5208771.073560x2=1.305605-2.6279812.146636-1.6942700.442393x3=1.446618-2.2253842.448048-1.9706910.620722x4=1.086550-2.0635742.792911-2.1016450.836386x5=1.000000-2.0000003.000000-2.0000001.000000Algorithmfindsaso

7、lution!Iterativenumber:5Solution:1.000000-2.0000003.000000-2.0000001.000000=============结果分析:我们根据解针对正定二次函数的共轭梯度法的算法编写了Matla程序。上机运行后经过5次迭代后得到了精确最优解。本题中的目标函数是正定二次函数,未知变量的维数为5,理论上共轭梯度法经过5次迭代后即可得到最优解,而上机数值实验的结果也是如此。结果说明了用共轭梯度法求解无约束最优化问题的可行性,同时也表明了我们编写的程序的正确性。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。