• 大小: 4KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: Matlab
  • 标签:

资源简介

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

评论

共有 条评论

相关资源