⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dfp.m

📁 用matlab语言来实现DFP算法
💻 M
字号:
function opt=DFP()
%
% DFP算法求无约束优化问题的最小值
%
global x p k H
x=[2 2]';                                             %初始迭代点
H=eye(2);                                             %初始矩阵H0=E
eps=1e-32;                                            %控制误差
g=dfun(x);
k=0;                                                  %迭代次数
while 1
    p=-1*H*g;
    t_min=fminbnd(@f_search,0,10);                    %进行一维搜索求t的最小值
    temp_x=x;
    x=x+t_min*p;
    temp_g=g;
    g=dfun(x);
    if norm(g)<eps                                     %是否满足的要求的精度
        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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -