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

上传人:汽*** 文档编号:548338072 上传时间:2023-11-22 格式:DOC 页数:3 大小:32.51KB
返回 下载 相关 举报
求解无约束最优化问题的共轭梯度法.doc_第1页
第1页 / 共3页
求解无约束最优化问题的共轭梯度法.doc_第2页
第2页 / 共3页
求解无约束最优化问题的共轭梯度法.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《求解无约束最优化问题的共轭梯度法.doc》由会员分享,可在线阅读,更多相关《求解无约束最优化问题的共轭梯度法.doc(3页珍藏版)》请在金锄头文库上搜索。

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

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

3、e quadratic% function% x0: starting point% max_iter: maximum number of iterations% tol: tolerance of the gradientx=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+

4、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);enditer=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

5、=1e-6;fprintf(n);fprintf(Conjugate Gradient Method: n);fprintf(= n);x,iter=cgopt(G,b,x0,max_iter,tol);fprintf(Iterative number:n %dn,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

6、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.086550 -2.063574 2.792911 -2.101645 0.836386 x5= 1.000000 -2.000000 3.000000 -2.000000 1.000000 Algorithm finds a solution!Iterative number: 5Solution: 1.000000 -2.000000 3.000000 -2.000000 1.000000 =结果分析:我们根据解针对正定二次函数的共轭梯度法的算法编写了Matla程序。上机运行后经过5次迭代后得到了精确最优解。本题中的目标函数是正定二次函数,未知变量的维数为5,理论上共轭梯度法经过5次迭代后即可得到最优解,而上机数值实验的结果也是如此。结果说明了用共轭梯度法求解无约束最优化问题的可行性,同时也表明了我们编写的程序的正确性。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号