最优化课程设计共轭梯度法算法分析与实现.docx
- 文档编号:25487477
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:11
- 大小:18.44KB
最优化课程设计共轭梯度法算法分析与实现.docx
《最优化课程设计共轭梯度法算法分析与实现.docx》由会员分享,可在线阅读,更多相关《最优化课程设计共轭梯度法算法分析与实现.docx(11页珍藏版)》请在冰豆网上搜索。
最优化课程设计共轭梯度法算法分析与实现
最优化课程设计--共轭梯度法算法分析与实现
(设计程序)
题目共轭梯度法算法分析与实现
班级/学号14140101/2011041401011学生姓名黄中武指导教师王吉波王微微
课程设计任务书
课程名称最优化方法课程设计院(系)理学院专业信息与计算科学
课程设计题目共轭梯度法算法分析与实现课程设计时间:
2014年6月16日至2014年6月27日
课程设计的要求及内容:
[要求]
1.学习态度要认真,要积极参与课程设计,锻炼独立思考能力;2.严格遵守上机时间安排;
3.按照MATLAB编程训练的任务要求来编写程序;
4.根据任务书来完成课程设计论文;
5.报告书写格式要求按照沈阳航空航天大学“课程设计报告撰写规范”;6.报告上交时间:
课程设计结束时上交报告;
7.严禁抄袭行为,一旦发现,课程设计成绩为不及格。
一、运用共轭梯度法求解无约束最优化问题
要求:
1)了解求解无约束最优化问题的共轭梯度法;
2)绘出程序流程图;
3)编写求解无约束最优化问题的共轭梯度法MATLAB程序;
4)利用编写文件求解某无约束最优化问题;
5)给出程序注释。
指导教师年月日
负责教师年月日
学生签字年月日
沈阳航空航天大学
课程设计成绩评定单
课程名称最优化理论与算法课程设计院(系)理学院专业信息与计算科学课程设计题目共轭梯度法算法分析与实现学号2011041401011姓名黄中武指导教师评语:
课程设计成绩
指导教师签字
年月日
最优化方法课程设计沈阳航空航天大学课程设计用纸目录
一、正
文1
二、总结
8参考文
献9附
录10
第I页
最优化方法课程设计沈阳航空航天大学课程设计用纸正文
一、正文
一无约束最优化问题的共轭梯度法
共轭梯度法最初是由Hesteness和Stiefel于1952年为求解线形方程组而提
出的。
后来,人们把这种方法用于求解无约束最优化问题,使之成为一种重要的最优化方法。
下面,重点介绍Fletcher-Reeves共轭梯度法,简称FR法。
共轭梯度法的基本思想是把共轭性与最速下降法相结合,利用已知点处的梯度构造一组共轭方向,并沿这组方向进行搜索,求出目标函数的极小点。
根据共轭梯度方向的基本性质,这种方法具有二次终止性。
首先讨论对于二次函数的共轭梯度法,然后再把这种方法推广到极小化一般函数的情形。
考虑问题
TTmifx(),,,0.5xAxbxcn
其中A是对称正定矩阵,c是常数。
具体求解方法如下:
(1)首先,任意给定一个初始点,计算出目变函数在这点的梯度,fx()x
g若=0,则停止计算,否则,令1
(1)
(1)dfxg,,,,,()1
(1)
(2)
(2),0沿方向搜索,得到点,计算在处的梯度,若g,则利用dxx2
(1)
(2)
(2)和构造第二个搜索方向,再沿搜索。
gddd2
()k()k()k()k一般地,若已知点和搜索方向,则从出发,沿进行xdxd搜索,得到
(1)()()kkk,xxd,,,k
其中步长满足,k
()()kk()()kkfxd(),,,fxd(),,mink
此时可求出的显式表达。
令,k
()()kk,,,()(),,fxd
,()求得极小点,令
'
(1)()kTk,,,()()0,,,fxd
第1页
最优化方法课程设计沈阳航空航天大学课程设计用纸正文根据二次函数的梯度表达式,即
(1)()kTk,()0Axbd,,
T()()kkkAxdbd(+)0,,,,,k
T()()kk(10.3.16)gAdd,,,0,,()kk
由(10.3.16)式得到
Tk()gd()()kTkk(10.3.17),,,dAdk
(1)k,计算在处的梯度,若,则停止计算;否则,用fx()g,0x,gk,1k,1
()k
(1)k,
(1)k,()k和构造下一个搜索方向,并使和关于A共轭。
按此设dddd
想,令
(1)()kk,dgd,,,,(10.3.18)kk,1
()kT上式两端左乘,并令dA
()
(1)()()()kTkkTkTk,dAddAgdAd,,,,,0kk,1
由此得到
()kT()()kTk,,dAg(10.3.19)dAd,kk1
(1)k,
(1)k,再从出发,沿方向搜索xd综上分析,在第一个搜索方向取负梯度的前提下,重复使用公式(10.3.14),
(10.3.17),(10.3.18)和(10.3.19),就能伴随计算点的增加,构造出一组搜索方向。
第2页
最优化方法课程设计沈阳航空航天大学课程设计用纸正文二程序流程图
开始
输入初始点x0
精度e继续迭代满足精度要N求
Y
输出迭代结果
结束
图一共轭梯度法程序流程图
三共轭梯度法的MATLAB程序
function[x,val,k]=frcg(fun,gfun,x0)maxk=5000;
rho=0.6;sigma=0.4;k=0;epsilon=1e-7;
n=length(x0);
while(k 第3页 最优化方法课程设计沈阳航空航天大学课程设计用纸正文itern=k-(n+1)*floor(k/(n+1)); itern=itern+1; if(itern==1) d=-g; else beta=(g'*g)/(g0'*g0); d=-g+beta*d0; gd=g'*d; if(gd>=0) d=-g; end end if(norm(g) break; end m=0; mk=0; while(m<20) if (feval(fun,x0+rho^m*d) break; end m=m+1; end x0=x0+rho^mk*d; val=feval(fun,x0); g0=g; d0=d; k=k+1; end 第4页 最优化方法课程设计沈阳航空航天大学课程设计用纸正文x=x0;val=feval(fun,x); functionf=fun(x) f=100*(x (1)^2-x (2))^2+(x (1)-1)^2; functiong=gfun(x) g=[400*x (1)*(x (1)^2-x (2))+2*(x (1)-1),-200*(x (1)^2-x (2))]' 四利用所编程序求解实际问题 222mifxxxx()100*() (1),,,,例n121 **Txfx,,(1,1),()0该问题有精确解利用所编程序求解此问题,在命令窗口输入: 运行结果为: 第5页 最优化方法课程设计沈阳航空航天大学课程设计用纸正文五程序注释 function[x,val,k]=frcg(fun,gfun,x0) %用FR共轭梯度法求解无约束问题: minf(x)%输入: x0时初始点,fun,gfun分别是目标函数和梯度%输出: x,val分别是近似最优点和最优值,k是迭代次数。 maxk=5000;%最大迭代次数rho=0.6;sigma=0.4; k=0;epsilon=1e-7; n=length(x0); while(k g=feval(gfun,x0);%计算梯度itern=k-(n+1)*floor(k/(n+1)); itern=itern+1;%计算搜索方向 if(itern==1) d=-g; else beta=(g'*g)/(g0'*g0); d=-g+beta*d0; gd=g'*d; if(gd>=0) d=-g; end end if(norm(g) break; end m=0; mk=0; while(m<20) 第6页 最优化方法课程设计沈阳航空航天大学课程设计用纸正文if (feval(fun,x0+rho^m*d) break; end m=m+1; end x0=x0+rho^mk*d; val=feval(fun,x0); g0=g; d0=d; k=k+1; end x=x0; val=feval(fun,x); functionf=fun(x) f=100*(x (1)^2-x (2))^2+(x (1)-1)^2;%需要求解的函数 functiong=gfun(x)g=[400*x (1)*(x (1)^2-x (2))+2*(x (1)-1),-200*(x (1)^2-x (2))]'%梯度第7页 最优化方法课程设计沈阳航空航天大学课程设计用纸正文 二、总结 不知不觉,一个学期就这样过去了,随着期末尾声的到来,《最优化》这门课也已经结课了,接着而来的是为期两个星期的课程设计。 作为信息与计算科学系的一员,我们在课堂上接触最多的就是理论部分,刚好课程设计可以给我们验证理论,联系实际的机会,所以,这次课程设计,我一直都在认真完成。 在拿到自己的课程设计题目的时候,我对它进行了一定时间的审题,题目中要求我用共轭梯度法求解无约束优化问题,所以我拿到课本,仔细地看了共轭梯度法的原理与例题求解,以便帮助我更好的理解共轭梯度法的应用。 我记得,再一次研究生面试中,有的老师问过考生: 你在你的大学生涯中学到了什么,如果让我回答,我会说: 我学到了一种发现问题与解决问题的方法,这种方法是在我的学习中慢慢形成的一种潜移默化的思想,关于学到的内容,我们不会一直保留太清晰的记忆,也不会在以后的生活中用到太多,就像买菜不会用到微积分,不会求导,但是,数学方法和思想给我们思考问题所带来的方法论却是大有裨益。 这次课程设计,我发现我的很多不足,比如在MATLAB上的应用上,我还不熟练,这与我在平时的练习中没有加以重视有关,而且在《最优化》的很多知识点上,自己还没有很好地掌握。 最后,我要感谢我们的任课教师王吉波老师,感谢他在给我们上课中的带来的幽默感和知识的传授。 在此,祝愿老师身体健康,工作顺利。 完稿日期: 2014年6月21日 第8页 最优化方法课程设计沈阳航空航天大学课程设计用纸参考文献 参考文献 [1]陈宝林.《最优化理论与算法》[M].北京,清华大学出版社,2013.[2]刘卫国.《MATLAB程序设计教程》[M].北京,中国水利水电出版社,2010.[3]马昌凤.《最优化方法及其MATLAB程序设计》[M].北京,科学出版社,2010. 第9页 最优化方法课程设计沈阳航空航天大学课程设计用纸附录 附录 源程序: function[x,val,k]=frcg(fun,gfun,x0) maxk=5000; rho=0.6;sigma=0.4; k=0;epsilon=1e-7; n=length(x0); while(k g=feval(gfun,x0);itern=k-(n+1)*floor(k/(n+1));itern=itern+1; if(itern==1) d=-g; else beta=(g'*g)/(g0'*g0); d=-g+beta*d0; gd=g'*d; if(gd>=0) d=-g; end end if(norm(g) break; end m=0; mk=0; while(m<20) if (feval(fun,x0+rho^m*d) 最优化方法课程设计沈阳航空航天大学课程设计用纸附录 mk=m; break; end m=m+1; end x0=x0+rho^mk*d; val=feval(fun,x0); g0=g; d0=d; k=k+1; end x=x0; val=feval(fun,x); functionf=fun(x)f=100*(x (1)^2-x (2))^2+(x (1)-1)^2; functiong=gfun(x)g=[400*x (1)*(x (1)^2-x (2))+2*(x (1)-1),-200*(x (1)^2-x (2))]'第11页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 课程设计 共轭 梯度 算法 分析 实现