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

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

ID:38809137

大小:176.15 KB

页数:10页

时间:2019-06-19

运筹学实验报告(F-R共轭梯度法、Wolfe简约梯度法)_第1页
运筹学实验报告(F-R共轭梯度法、Wolfe简约梯度法)_第2页
运筹学实验报告(F-R共轭梯度法、Wolfe简约梯度法)_第3页
运筹学实验报告(F-R共轭梯度法、Wolfe简约梯度法)_第4页
运筹学实验报告(F-R共轭梯度法、Wolfe简约梯度法)_第5页
资源描述:

《运筹学实验报告(F-R共轭梯度法、Wolfe简约梯度法)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、运筹学课程实验报告姓名:********学号:********班级:********日期:2012/12/17一、实验目的:1、掌握求解无约束最优化问题的F-R共轭梯度法,以及约束最优化问题Wolfe简约梯度法。2、学会用MATLAB编程求解问题,并对以上方法的计算过程和结果进行分析。二、实验原理与步骤:1、F-R共轭梯度法基本步骤是在点处选取搜索方向,使其与前一次的搜索方向关于共轭,即然后从点出发,沿方向求得的极小值点,即如此下去,得到序列{}。不难求得的解为注意到的选取不唯一,我们可取由共轭的定

2、义可得:共轭梯度法的计算过程如下:第一步:取初始向量,计算第步:计算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.若

3、

4、pk

5、

6、≤ε,停止迭代,输出xk。否则进行第五步。第五步:进行有效一维搜索,求解minfx

7、k+tpk,得到最优解tk.令xk+1=xk+tkpk,k:=k+1,转入第二步。三、实验内容:1、(运筹学P153页第20题)用F-R法求解min(1-x1)2+2(x2-x12)2选取初始点x0=(0,0)T,ε=10-6.2、(运筹学P154页第25题)用Wolfe法求解以下问题:minfx1,x2=2x12+2x22-2x1x2-4x1-6x2s.t.x1+x2≤2x1+5x2≤5x1≥0,x2≥0选取初始可行点x0=(0,0)T,ε=10-6.四、问题求解:问题1求解:(F-R法)程序代码

8、如下:(1)主函数symsx1x2r;f=(1-x1)^2+2*(x2-x1^2)^2;x=[x1,x2];df=jacobian(f,x);df=df.';error=0.000001;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

9、(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=0.0125;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});

10、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},{t1});while(ft1>ft0)step=step/2;t2=t1;t1=t2-step;ft1=subs(y,{r},{t1});endendresult=[t2];黄金分割法进行一维搜索:functionresult=g

11、olden(y,r,m)a=0;b=m;e=1e-5;a1=a+0.382*(b-a);f1=subs(y,{r},{a1});a2=a+0.618*(b-a);f2=subs(y,{r},{a2});whileabs(b-a)>=eiff1

12、5*(a+b);result=[answer];运行结果如下:由上图知极值点为x*=1,1T,极小值=1.7345×10-15≈0(x*对应的理论极小值)。问题2求解:(Wolfe法)程序代码如下:error=10^-6;x0=[0,0];symsx1x2f=2*x1^2+2*x2^2-2*x1*x2-4*x1-6*x2;AB=[1,1,1,0;1,5,0,1];B=[1,0;0,1];N=[1,1;1,5];[a,b]=size(x0);initial_gradie

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

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

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