网站大量收购独家精品文档,联系QQ:2885784924

优化方法课程.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
优化方法课程

优化方法课程 这是我最优化方法课程的编程作业,贴来和大家分享,后续会继续发来一些最优化的程序。、 以下程序由matlab编写 程序简介 f.m 老师测试的例子函数 运行程序中,要根据计算的不同函数,修改此文件 g.m 老师作业例子4函数求梯度 jintuifa.m 进退法,用于确定下单峰区间.根据最优化方法(天津大学出版社)20页算法1.4.3编写。 输出:[left right] 为下单峰区间 输入:x0 step(0)分别为初始点,初始步长 golddiv.m 黄金分割法。根据最优化方法(天津大学出版社)17页算法1.4.2编写。 当保留的区间长度|b-a|=epsilon时停止迭代 输出:[best_x best_fx] best_x为最优的x值,best_fx为最优的函数值 输入: a b epsilon a,b为下单峰区间[a,b],epsilon为精确度 paowuxianfa.m 抛物线法(二次插值法)。根据最优化方法(天津大学出版社)22页算法1.4.5编写。 输出:[best_x best_fx] best_x为最优的x值,best_fx为最优的函数值 输入:x1 x0 x2 epsilon1 epsilon2 x1,x0,x2为已知的三点且满足f1f0f2,epsilon为精确度 wolfe.m Wolfe不精确一维搜索。根据最优化方法(天津大学出版社)24页算法1.4.6编写。 输出:[alpha xk1] alpha为要求的步长,xk1为x(k+1)是得出的下一个点 输入:xk pk mu sigma xk为初始点,pk为方向,mu和sigma为参数. 一般mu属于(0,1/2),sigma属于(mu,1) 程序详细代码 f.m %最优化编程作业中的例子 function result = f(x) %result = x.^4+2.*x+4;%例1 区间为[-1,0] %result = exp(-x)+x.^2;%例2 区间为[0,1] result =100*(x(2)-x(1)^2)^2+(1-x(1))^2;%例4 g.m %求在点x处的梯度,对应编程作业中的例四 这里的x是向量,代表x1,x2…… %author liuxi BIT function result =g(x) syms x1 x2;%定义符号变量 f=100*(x2-x1^2)^2+(1-x1)^2; result_1=diff(f,x1);%函数f对符号变量x1求一阶微分 result_2=diff(f,x2); result(1)=subs(result_1,[x1 x2],[x(1) x(2)]);%将result_1中的符号变量x1和x2替换为普通变量x(1),x(2) result(2)=subs(result_2,[x1 x2],[x(1) x(2)]); golddiv.m %黄金分割法。根据最优化方法(天津大学出版社)17页算法1.4.2编写。 %v1.0 author: liuxi BIT %best_x为最优的x值,best_fx为最优的函数值,a,b为下单峰区间[a,b],epsilon为精确度 %当保留的区间长度|b-a|=epsilon时停止迭代 function [best_x best_fx]=golddiv(a,b,epsilon) if nargin==2 epsilon=0.0000001;;%设置默认的epsilon end x2=a+0.618*(b-a);%step1 f2=f(x2); x1=a+0.382*(b-a);%step2 f1=f(x1); while(abs(b-a)epsilon) if f1f2 %step4 b=x2;x2=x1;f2=f1; x1=a+0.382*(b-a);%转step2 f1=f(x1); elseif f1==f2 a=x1;b=x2; x2=a+0.618*(b-a);f2=f(x2);%转step1 x1=a+0.382*(b-a);f1=f(x1); else a=x1;x1=x2;f1=f2; x2=a+0.618*(b-a);%step5 f2=f(x2); end end%while best_x=(a+b)/2;%最优的x值 best_fx=f(best_x);%最优的函数值 jintuifa.m %进退法,用于确定下单峰区间.根据最优化方法(天津大学出版社)20页算法1.4.3编写。 %v1.0 autho

文档评论(0)

sy78219 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档