资源简介
无约束最优化:主要是共轭梯度法和拟牛顿法中DFP方法,很简单的程序。清晰易懂。初学者使用。
代码片段和文件信息
function alpha=conjugate(fa1b1xkdkepsM)
%alpha 为单峰函数g(x)=f(xk+x*dk)在[a1b1]的最小值点,eps为精度要求,M为迭代次数控制.
%用于求精确步长的黄金分割法,参数传递有改动
if nargin==5
eps= 1.0e-10;
M = 200;
elseif nargin<5
error
return
elseif nargin==6
M=200;
end
xsize=size(xk);
if xsize(1)==1
xk=xk‘
end
xsize=size(dk);
if xsize(1)==1
dk=dk‘
end
tau=(sqrt(5)-1)/2;
tau1=1-tau;
a=a1;
b=b1;
lambda=a+tau1*(b-a);
mu=a+tau*(b-a);
flambda=feval(fxk+lambda*dk);
fmu=feval(fxk+mu*dk);
for k=1:1:M
if flambda>fmu
if abs(b-a)<=eps
alpha=mu;
return;
else
a=lambda;
b=b;
lambda=mu;
flambda=fmu;
mu=a+tau*(b-a);
fmu=feval(fxk+mu*dk);
end
else
if abs(mu-a)<=eps
alpha=lambda;
return;
else
a=a;
b=mu;
mu=lambda;
fmu=flambda;
lambda=a+tau1*(b-a);
flambda=feval(fxk+lambda*dk);
end
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1128 2008-05-20 10:46 conjugate.m
文件 913 2005-10-31 20:28 conjugategrad.m
文件 964 2005-10-31 20:44 DFP.m
----------- --------- ---------- ----- ----
3005 3
- 上一篇:基于迂回相位编码的CGH及其再现
- 下一篇:HEVC中LCU分割 划分查看
评论
共有 条评论