下载此文档

精通MATLAB最优化计算--进退法.docx


文档分类:汽车/机械/制造 | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
2)
3)
进退法
2)
3)

进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:f(X)为
单谷函数(只有一个极值点),且[a,b]为其极小值点的一个搜索区间,对于任意
2)
3)
进退法
2)
3)

进退法是用来确定搜索区间(包含极小值点的区间)的算法,其理论依据是:f(X)为
单谷函数(只有一个极值点),且[a,b]为其极小值点的一个搜索区间,对于任意
x,xe[a,b],如果f(x)<f(x),则[aX为极小值的搜索区间,如果f(x)>f(x),
1212212
则[x,b]为极小值的搜索区间。
1
因此,在给定初始点x,及初始搜索步长h的情况下,首先以初始步长向前搜索一步,0
计算f(x+h)。
0
如果f(x)<f(x+h)
00
则可知搜索区间为[元x+h],其中x待求,为确定x,后退一步计算f(x-九h),九00
为缩小系数,且0<九<1,直接找到合适的九*,使得f(x—九*h)>f(x),从而确定搜索00
区间[x一九*h,x+h]。
00
如果f(x)>f(x+h)
00
则可知搜索区间为[x,x],其中x待求,为确定x,前进一步计算f(x+Xh),九为00
放大系数,且九〉1,知道找到合适的九*,使得f(x+h)<f(x+X*h),从而确定搜索00
区间[x,x+九*h]。
00

用进退法求一维无约束问题minf(x),xeR的搜索区间(包含极小值点的区间)的基
本算法步骤如下:
1)
4)
给定初始点x(0),初始步长h0,令h=h0,x⑴=x(0),k=°;
2)
3)
令x⑷=x(i)+h,置k=k+1;
若f(w))<f(x(i)),则转步骤(4),否则转步骤(5);
令x⑵=x(i),x(i)=x⑷,fC(2))=fC(i)),fC(i))=fC(4)),令h=2h,
2)
3)
转步骤(2);
5)
6)
若k=1,则转步骤(6)否则转步骤(7);
转步骤(2);
(7)令x(3)二x⑵,x⑵二x(i),x(i)=x⑷,停止计算,极小值点包含于区间
[x(1),x(或3])[x(,3x)]

在MATLAB中编程实现的进退函数为:minJT功能:用进退法求解一维函数的极值区间。
调用格式:[minx,maxx]=minJT(f,x0,h0,eps)
其中,f:目标函数;
x0:初始点;
h0:初始步长;
eps精度;
mirx:目标函数取包含极值的区间左端点;maxx:目标函数取包含极值的区间又端点。
进退法的MATLAB程序代码如下:
function[minx,maxx]=minJT(f,x0,h0,eps)
%目标函数:f;
%初始点:x0;
%初始步长:hO;
%精度:eps;
%目标函数取包含极值的区间左端点:minx;
%目标函数取包含

精通MATLAB最优化计算--进退法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息