📄 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 + -