- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 4 章 一维搜索方法
2. 进退法的MATLAB程序
该程序是按照寻找最佳步长编写的,其数学模型为式(4-2)。
程序说明如下:
函数opt_range_serach(xk0,dir0,th)中输入参数;
xk0:初始点;
dir0:给定的搜索方向;
th:步长增量。
%opt_range_serach1.m
function [opt_step,fo,xx] = opt_range_serach1(f,xk0,dir0,th)
%用进退法搜索三个点,使中点函数值最小;输出步长,函数值,设计变量值
%xk0:初始点
%th:步长
t1=0;t2=th;
xk1=xk0;xk2=xk1+t2*dir0;
x0=xk1;
f1=feval(f,x0);
x0=xk2;
f2=feval(f,x0);
if f2f1
t3=t2+th;
xk3=xk1+t3*dir0;
x0=xk3;
f3=feval(f,x0);
else
th=-2*th;t3=t1;f3=f1;t1=t2;f1=f2;t2=t3;f2=f3;
t3=th;
xk3=xk1+t3*dir0;
x0=xk3;
f3=feval(f,x0);
end
ii=0;
while f2f3
t1=t2;f1=f2;t2=t3;f2=f3;
t3=t2+th;
xk3=xk1+t3*dir0;
x0=xk3;
f3=feval(f,x0);
end
xx1=xk1+t1*dir0;
xx2=xk1+t2*dir0;
xx3=xk1+t3*dir0;
if th0
opt_step=[t3 t2 t1];
xx=[xx3 xx2 xx1];
fo=[f3 f2 f1];
else
opt_step=[t1 t2 t3];
xx=[xx1 xx2 xx3];
fo=[f1 f2 f3];
end
end
【例4-1】用进退法计算函数
的单峰区间,初始点。
解:用户程序如下:
%range_search_test1
clc;
f=inline(2+x^2,x);
xk0=2;th=0.5;dir0=1;
[opt_step,fo,xx] = opt_range_serach1(f,xk0,dir0,th)
opt_step =
结果为:
opt_step=[-3 -2 -1]
xo=[-1 0 1]
fo=[3 2 3]
1. 黄金分割法的计算框图
图黄金分割法的计算图中为给定的任意小的精度为次数2. MATLAB程序%golden_search
function [xo,fo] =golden_search(f,a,b,r,TolX,TolFun,k)
kk=1;
while kk0
h = b - a; rh = r*h; c = b - rh; d = a + rh;
fc = feval(f,c); fd = feval(f,d);
if k = 0 || abs(h) TolX abs(fc - fd) TolFun
if fc = fd
xo = c;fo = fc;
kk=0;
else
xo = d;fo = fd;
kk=0;
end
if k == 0;fprintf(达到计算次数);kk=0; end
else
if fc fd
b=d;k=k-1;
else
a=c;k=k-1;
end
end
end
【例4-2】计算目标函数
在区间内的极小点。
解:用户程序如下:
%golden_s_test1.m
function golden_s_test1
clc;
clear all;
gs_fun = inline(2+x^2,x);
a =-2; b = 2; r =(sqrt(5)-1)/2; TolX =1e-7; TolFun = 1e-7; MaxIter =50;
[xo,fo]=fminbnd(gs_fun,a,b)
[xo,fo] =golden_search(gs_fun,a,b,r,TolX,TolFun,MaxIter)
计算结果:
xo= 1.4142e-0082; fo=2
第 5 章 无约束优化问题的导数解法
5.1.2 最速下降法的Matalb程序
根据最速下降法步骤,编制下面的Matalb程序。
% opt_grad.m
function [xo,fo] = opt_grad(f,x0,TolX,TolFun,alpha0,MaxIter)
x = x0; fx0 = feval(f,x0); fx = fx0;
alpha = alpha0; km
您可能关注的文档
最近下载
- Rexroth lndraMotion MTX micro简明调试手册04版本.pdf VIP
- 海南省“三医联动一张网”项目建设工程招标(简称:海南省三医联动信 息平台)第三章用户需求书.PDF VIP
- 客户经理业绩考核分析系统数据库设计说明.doc
- 最新人教版一年级上册数语文同步练习册及单元试卷.doc VIP
- 人教版高中物理高考总复习全册知识点考点梳理、重点题型分类巩固练习提高版.doc VIP
- 人教版高中物理必修3基础知识自测小纸条(含答案及解析).pdf VIP
- GB50575-2010 1Kv及以下配线工程施工与验收规范.pdf VIP
- 食源性疾病事件应急处置桌面推演脚本.doc VIP
- 智慧校园智能学习环境对城市初中生创新思维培养的实证研究教学研究课题报告.docx
- 人教版高中物理选修3-5全册知识点考点梳理、重点题型分类巩固练习提高版.doc VIP
文档评论(0)