最优化课程设计--共轭梯度法算法分析与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最优化课程设计--共轭梯度法算法分析与实现
(设计程序)
题目共轭梯度法算法分析与实现
班级 / 学号 14140101/11 学生姓名黄中武指导教师王吉波王微微
课程设计任务书
课程名称最优化方法课程设计院(系) 理学院专业信息与计算科学
课程设计题目共轭梯度法算法分析与实现课程设计时间: 2014 年 6月 16日至2014 年 6月 27日
课程设计的要求及容:
[要求]
1. 学习态度要认真,要积极参与课程设计,锻炼独立思考能力;
2. 严格遵守上机时间安排;
3. 按照MATLAB编程训练的任务要求来编写程序;
4. 根据任务书来完成课程设计论文;
5. 报告书写格式要求按照航空航天大学“课程设计报告撰写规”;
6. 报告上交时间:课程设计结束时上交报告;
7. 严禁抄袭行为,一旦发现,课程设计成绩为不及格。
一、运用共轭梯度法求解无约束最优化问题
要求:1)了解求解无约束最优化问题的共轭梯度法;
2)绘出程序流程图;
3)编写求解无约束最优化问题的共轭梯度法MATLAB程序;
4)利用编写文件求解某无约束最优化问题;
5)给出程序注释。
指导教师年月日
负责教师年月日
学生签字年月日
航空航天大学
课程设计成绩评定单
课程名称最优化理论与算法课程设计院(系) 理学院专业信息与计算科学课程设计题目共轭梯度法算法分析与实现学号 11 黄中武指导教师评语: 课程设计成绩
指导教师签字
年月日
最优化方法课程设计航空航天大学课程设计用纸目录
目录
一、正文 ............................................................... 1 二、总
结 ............................................................... 8 参考文
献 ............................................................... 9 附
录 (10)
第 I 页
最优化方法课程设计航空航天大学课程设计用纸正文
一、正文
一无约束最优化问题的共轭梯度法
共轭梯度法最初是由Hesteness和Stiefel于1952年为求解线形方程组而提出的。后来,人们把这种方法用于求解无约束最优化问题,使之成为一种重要的最优化方法。
下面,重点介绍Fletcher-Reeves共轭梯度法,简称FR法。
共轭梯度法的基本思想是把共轭性与最速下降法相结合,利用已知点处的梯度构造一组共轭方向,并沿这组方向进行搜索,求出目标函数的极小点。根据共轭梯度方向的基本性质,这种方法具有二次终止性。首先讨论对于二次函数的共轭梯度法,然后再把这种方法推广到极小化一般函数的情形。考虑问题
TTmi fx(),,,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(),,min k
此时可求出的显式表达。令 ,k
()()kk,,,()(),,fxd
,,()求得极小点,令
'(1)()kTk,,,()()0,,,fxd
第 1 页
最优化方法课程设计航空航天大学课程设计用纸正文根据二次函数的梯度表达式,即
(1)()kTk, ()0Axbd,,
T()()kkk Axdbd(+)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,,,,,0 kk,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 g=feval(gfun,x0); 第 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;