1 / 10
文档名称:

运筹学实验报告(F-R共轭梯度法、Wolfe简约梯度法).doc

格式:doc   大小:176KB   页数:10
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

运筹学实验报告(F-R共轭梯度法、Wolfe简约梯度法).doc

上传人:cjl201702 2019/6/9 文件大小:176 KB

下载得到文件列表

运筹学实验报告(F-R共轭梯度法、Wolfe简约梯度法).doc

文档介绍

文档介绍:运筹学课程实验报告姓名:********学号:********班级:********日期:2012/12/17一、实验目的:1、掌握求解无约束最优化问题的F-R共轭梯度法,以及约束最优化问题Wolfe简约梯度法。2、学会用MATLAB编程求解问题,并对以上方法的计算过程和结果进行分析。二、实验原理与步骤: 1、F-R共轭梯度法 基本步骤是在点处选取搜索方向,使其与前一次的搜索方向关于共轭,即然后从点出发,沿方向求得的极小值点,即如此下去,得到序列{}。不难求得的解为注意到的选取不唯一,我们可取由共轭的定义可得:共轭梯度法的计算过程如下:第一步:取初始向量,计算第步:计算 2、Wolfe简约梯度法 Wolfe基本计算步骤:第一步:取初始可行点x0∈Xl,给定终止误差ε>0,令k:=0;第二步:设IBk是xk的m个最大分量的下标集,对矩阵A进行相应分解A=(Bk,Nk);第三步:计算∇fxk=∇Bfxk∇Nfxk,然后计算简约梯度rNk=-(Bk-1Nk)T∇Bfxk+∇Nfxk;第四步:||pk||≤ε,停止迭代,输出xk。否则进行第五步。第五步:进行有效一维搜索,求解minfxk+tpk,+1=xk+tkpk,k:=k+1,转入第二步。三、实验内容: 1、(运筹学P153页第20题)用F-R法求解min(1-x1)2+2(x2-x12)2选取初始点x0=(0,0)T,ε=10-、(运筹学P154页第25题)用Wolfe法求解以下问题:minfx1,x2=2x12+2x22-2x1x2-4x1-+x2≤2x1+5x2≤5x1≥0,x2≥0选取初始可行点x0=(0,0)T,ε=10-、问题求解:问题1求解:(F-R法)程序代码如下:(1)主函数symsx1x2r;f=(1-x1)^2+2*(x2-x1^2)^2;x=[x1,x2];df=jacobian(f,x);df=df.';error=;x0=[0,0]';g1=subs(df,x,x0);k=0;while(norm(g1)>error)ifk==0d=-g1;elsebta=g1'*g1/(g0'*g0);d=-g1+bta*d0;endy=subs(f,x,x0+r*d);result=jintuifa(y,r);result2=golden(y,r,result);step=result2;x0=x0+step*d;g0=g1;g1=subs(df,x,x0);d0=d;k=k+1;end;kx0(2)子函数进退法确定一维搜索区间:functionresult=jintuifa(y,r)t0=0;step=;t1=t0+step;ft0=subs(y,{r},{t0});ft1=subs(y,{r},{t1});if(ft1<=ft0)step=2*step;t2=t1+step;ft2=subs(y,{r},{t2});while(ft1>ft2)t1=t2;step=2*step;t2=t1+step;ft1=subs(y,{r},{t1});ft2=subs(y,{r},{t2});endelsestep=step/2;t2=t1;t1=t2-step;ft1=subs(y,{r}