ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:103.31KB ,
资源ID:11678590      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11678590.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(运筹学实验报告FR共轭梯度法Wolfe简约梯度法.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

运筹学实验报告FR共轭梯度法Wolfe简约梯度法.docx

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

2、法的计算过程如下:第一步:取初始向量, 计算第步:计算 2、Wolfe简约梯度法 Wolfe基本计算步骤:第一步:取初始可行点 ,给定终止误差 ,令k:=0;第二步:设是的 m 个最大分量的下标集,对矩阵A进行相应分解 ;第三步:计算 ,然后计算简约梯度;第四步:构造可行下降方向 . 若 ,停止迭代,输出。否则进行第五步。第五步:进行有效一维搜索,求解,得到最优解. 令 , k:=k+1, 转入第二步。三、实验内容: 1、(运筹学P153页第20题)用F-R法求解选取初始点, .2、(运筹学P154页第25题)用Wolfe法求解以下问题:选取初始可行点 , .四、问题求解:问题1求解:(F-R

3、法)程序代码如下:(1)主函数syms x1 x2 r;f=(1-x1)2+2*(x2-x12)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) if k=0 d=-g1; else bta=g1*g1/(g0*g0); d=-g1+bta*d0; end y=subs(f,x,x0+r*d); result=jintuifa(y,r); result2=golden(y,r,result); step=result2; x0=x0+step*d;

4、g0=g1;g1=subs(df,x,x0); d0=d;k=k+1;end;kx0(2)子函数进退法确定一维搜索区间:function result=jintuifa(y,r)t0=0; step=0.0125;t1=t0+step;ft0=subs(y,r,t0);ft1=subs(y,r,t1);if(ft1ft2) t1=t2;step=2*step;t2=t1+step;ft1=subs(y,r,t1);ft2=subs(y,r,t2); endelse step=step/2;t2=t1;t1=t2-step;ft1=subs(y,r,t1); while(ft1ft0) step

5、=step/2;t2=t1;t1=t2-step;ft1=subs(y,r,t1); endendresult=t2;黄金分割法进行一维搜索:function result=golden(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);while abs(b-a)=e if f1error & k3) x_11=x_1(1),x_1(2) gradient=gradient_my(f,x_11,b) rN=-1.25*gradient(1),0.25*gradient(

6、2) pN=-rN(1)*x_1(3),rN(2)*x_1(4) pB=-1.25*pN(1),0.25*pN(2); new_direction=pB pN; norm=0; TT=; tmax=1; for i=1:4 norm=norm+(new_direction(i)2 end for j=1:4 if (new_direction(j)0) T(j)= new_direction(j) else T(j)=0; end if (T(j)TT(uk) tmax=TT(uk) n=n+1; end end x=x_1+t*new_direction; xx=x(1),x(2); f_s

7、tep=subs(f,findsym(f),xx); F=diff(f_step,t); solve(F,t); t0=tmax; x_2=x_1+0.18*new_direction A=A;x_2; norm0=norm; search_direction=new_direction x_1=x_2; xx2=x_2(1),x_2(1); Y=subs(f,findsym(f),xx2); HSZ=HSZ;Y k=k+1; endkx_2norm程序运行结果如下初始点(0,0,2,5) earch_direction = 4 6 -10 34 tmax=0.147如果不交还B矩阵与A矩阵则

8、运行结果如下x_1 =(0.6251 0.8708 0.5077 0.0246) search_direction =3.4 4.4 -8 -25.6很显然X4已经无法再取有效值,故须交还B与Ax_1 =(0.5882 0.8824 0.5294 0) search_direction =1.8222 0 - 2.2578 -0.44tmax=0.231 x_2 =1.0962 0.8824 0.1230 0由以上结果显示: 而理论计算值为有一定的计算误差。 五、实验体会:通过这次运筹学课内实验,我对无约束优化问题及约束优化问题的思想和部分算法的求解过程有了进一步了解与掌握。这次实验使我对用进退法确定一维搜索区间,如何进行一维搜索,对求解无约束优化问题的F-R共轭梯度法和约束最优化问题 的Wolfe简约梯度法的基本思想和算法有了更深理解,对课内的所学知识进一步消化。在本次实验过程中,发现真正用Matlab求解实际问题的能力还很欠缺,对Matlab的熟练程度还不够!求解过程出现了许多错误,通过网上查找资料和利用图书馆图书资源得到解决;但是仍有部分问题还没太明白。希望自己以后加强用Matlab解决实际问题的能力,合理将运筹学所学理论知识应用到实际生活中!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1