资源简介
M代码的罚函数程序,包括DFP法以及进退法确定搜索区间。
代码片段和文件信息
function opt=DFP()
%
% DFP算法求无约束优化问题的最小值
%
global x p k H t
H=eye(2); %初始矩阵H0=E
eps=1e-4; %控制误差
g=dfun(x);
k=0; %迭代次数
while 1
p=-1*H*g;
sch=f_search2();
syms t;
[leftright]=jintuifa(scht);
t_min=fminbnd(@f_searchleftright); %进行一维搜索求t的最小值
temp_x=x;
x=x+t_min*p;
temp_g=g;
g=dfun(x);
% norm(g)
if norm(g) opt=x; %求得最优值opt
break;
end
s=x-temp_x;
y=g-temp_g;
H=H-(1/(y‘*H*y))*(H*y*y‘*H)+(1/(y‘*s))*(s*s‘); %对H进行修正
k=k+1;
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-01-20 18:03 punish\
文件 845 2013-03-12 03:58 punish\DFP.m
文件 106 2013-03-10 23:33 punish\dfun.m
文件 95 2013-03-11 01:44 punish\equal_limit.m
文件 210 2013-03-11 17:27 punish\fun.m
文件 103 2013-03-11 17:16 punish\f_search.m
文件 111 2013-03-12 03:54 punish\f_search2.m
文件 156 2013-03-11 01:36 punish\grad.m
文件 867 2013-03-12 03:54 punish\jintuifa.m
文件 257 2013-03-11 01:42 punish\main_pun.m
文件 169 2013-03-10 21:58 punish\punish.m
文件 148 2013-03-11 01:42 punish\unequal_limit.m
- 上一篇:MATLAB对目标特征提取的程序
- 下一篇:一个混沌神经网络的matlab程序
评论
共有 条评论